Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.uml')
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.uml19364
1 files changed, 19364 insertions, 0 deletions
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.uml b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.uml
new file mode 100644
index 00000000000..a3b621ff653
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.uml
@@ -0,0 +1,19364 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:PapyrusDSMLValidationRule="http://www.eclipse.org/papyrus/dsmlvalidation" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="SoaML" name="SoaML" metaclassReference="_zzpk8KbwEeSZVKXq5L0J5A _zzqMAKbwEeSZVKXq5L0J5A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lWQd8AD5EeO_SKgrbXd_6g" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_EUh00L6AEeSvUdl1XXO70w" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh00b6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh00r6AEeSvUdl1XXO70w" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh0076AEeSvUdl1XXO70w" name="Agent" eSuperTypes="_EUh05L6AEeSvUdl1XXO70w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh01L6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh01b6AEeSvUdl1XXO70w" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh01r6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh0176AEeSvUdl1XXO70w" key="body" value="base_Class.isActive"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh02b6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh02r6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh0276AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh03b6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh03r6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh0376AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh04L6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh04b6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh04r6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh05L6AEeSvUdl1XXO70w" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh05b6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh05r6AEeSvUdl1XXO70w" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh0576AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh06L6AEeSvUdl1XXO70w" key="body" value="Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh06r6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh0676AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh07L6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh07r6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh0776AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh08L6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh08b6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh08r6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh0876AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh09L6AEeSvUdl1XXO70w" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh09b6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh09r6AEeSvUdl1XXO70w" key="body" value=" let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh0-L6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh0-b6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh0-r6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh0_L6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh0_b6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh0_r6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh0_76AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1AL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1Ab6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1Ar6AEeSvUdl1XXO70w" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1BL6AEeSvUdl1XXO70w" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Bb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1Br6AEeSvUdl1XXO70w" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_EUh1CL6AEeSvUdl1XXO70w" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1Cr6AEeSvUdl1XXO70w" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1C76AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1DL6AEeSvUdl1XXO70w" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Db6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1Dr6AEeSvUdl1XXO70w" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1EL6AEeSvUdl1XXO70w" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1Er6AEeSvUdl1XXO70w" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1E76AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1FL6AEeSvUdl1XXO70w" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1Fr6AEeSvUdl1XXO70w" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1F76AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh1GL6AEeSvUdl1XXO70w" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Gb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1Gr6AEeSvUdl1XXO70w" key="body" value="self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1HL6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Hb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1Hr6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1IL6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Ib6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1Ir6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh1I76AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1JL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1Jb6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh1Jr6AEeSvUdl1XXO70w" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1J76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1KL6AEeSvUdl1XXO70w" key="body" value="if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1Kr6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1K76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1LL6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1Lr6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1L76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1ML6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh1Mb6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1Mr6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1M76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh1NL6AEeSvUdl1XXO70w" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Nb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1Nr6AEeSvUdl1XXO70w" key="body" value="if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1OL6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Ob6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1Or6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1PL6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Pb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1Pr6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh1P76AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1QL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1Qb6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1Qr6AEeSvUdl1XXO70w" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_EUh1RL6AEeSvUdl1XXO70w" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1Rr6AEeSvUdl1XXO70w" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1SL6AEeSvUdl1XXO70w" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1Sr6AEeSvUdl1XXO70w" name="Category" eSuperTypes="_EUh1Tb6AEeSvUdl1XXO70w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1S76AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1Tb6AEeSvUdl1XXO70w" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Tr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1T76AEeSvUdl1XXO70w" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1Ub6AEeSvUdl1XXO70w" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Ur6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1U76AEeSvUdl1XXO70w" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_EUh1Vb6AEeSvUdl1XXO70w" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1V76AEeSvUdl1XXO70w" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1Wb6AEeSvUdl1XXO70w" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1W76AEeSvUdl1XXO70w" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1XL6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1Xb6AEeSvUdl1XXO70w" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1X76AEeSvUdl1XXO70w" name="CategoryValue" eSuperTypes="_EUh1Er6AEeSvUdl1XXO70w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1YL6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1Yr6AEeSvUdl1XXO70w" name="ServiceContract" eSuperTypes="_EUh1BL6AEeSvUdl1XXO70w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Y76AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh1ZL6AEeSvUdl1XXO70w" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1Zb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1Zr6AEeSvUdl1XXO70w" key="body" value=" self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1aL6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1ab6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1ar6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1bL6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1bb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1br6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh1b76AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1cL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1cb6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh1cr6AEeSvUdl1XXO70w" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1c76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1dL6AEeSvUdl1XXO70w" key="body" value=" self.base_Collaboration.ownedBehavior->size()>0 implies (&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages&#xD;&#xA;&#x9;&#x9;--->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent.oclAsType(MessageOccurrenceSpecification).covered->flatten()->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->select(oclIsTypeOf(Signal))->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1dr6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1d76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1eL6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1er6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1e76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1fL6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh1fb6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1fr6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1f76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1gb6AEeSvUdl1XXO70w" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1gr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh1g76AEeSvUdl1XXO70w" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1hL6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1hb6AEeSvUdl1XXO70w" key="body" value=" let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1h76AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1iL6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1ib6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1i76AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1jL6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1jb6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh1jr6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1j76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1kL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUh1kb6AEeSvUdl1XXO70w" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1kr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1k76AEeSvUdl1XXO70w" key="body" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1lb6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1lr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1l76AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUh1mb6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1mr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUh1m76AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUh1nL6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1nb6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUh1nr6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1n76AEeSvUdl1XXO70w" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUh1ob6AEeSvUdl1XXO70w" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUh1or6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1o76AEeSvUdl1XXO70w" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUh1pb6AEeSvUdl1XXO70w" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUib4L6AEeSvUdl1XXO70w" name="Catalog" eSuperTypes="_EUh1Tb6AEeSvUdl1XXO70w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUib4b6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUib4r6AEeSvUdl1XXO70w" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUib5b6AEeSvUdl1XXO70w" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUib5r6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUib576AEeSvUdl1XXO70w" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUib6b6AEeSvUdl1XXO70w" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUib6r6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUib676AEeSvUdl1XXO70w" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUib7b6AEeSvUdl1XXO70w" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUib7r6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUib776AEeSvUdl1XXO70w" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUib8b6AEeSvUdl1XXO70w" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUib8r6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUib876AEeSvUdl1XXO70w" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUib9L6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUib9b6AEeSvUdl1XXO70w" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUib976AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUib-L6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUib-b6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUib-76AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUib_L6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUib_b6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUib_r6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUib_76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicAL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicAb6AEeSvUdl1XXO70w" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicA76AEeSvUdl1XXO70w" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUicBb6AEeSvUdl1XXO70w" name="ServicesArchitecture" eSuperTypes="_EUh1BL6AEeSvUdl1XXO70w">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicBr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUicB76AEeSvUdl1XXO70w" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicCL6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicCb6AEeSvUdl1XXO70w" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicC76AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicDL6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicDb6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicD76AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicEL6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicEb6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUicEr6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicE76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicFL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUicFb6AEeSvUdl1XXO70w" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicFr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicF76AEeSvUdl1XXO70w" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability' or s.name='Agent' )->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicGb6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicGr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicG76AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicHb6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicHr6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicH76AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUicIL6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicIb6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicIr6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUicJL6AEeSvUdl1XXO70w" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicJb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_EUicJr6AEeSvUdl1XXO70w" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicKL6AEeSvUdl1XXO70w" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_EUicKr6AEeSvUdl1XXO70w" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUicLL6AEeSvUdl1XXO70w" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicLb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUicLr6AEeSvUdl1XXO70w" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicL76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicML6AEeSvUdl1XXO70w" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicMr6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicM76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicNL6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicNr6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicN76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicOL6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUicOb6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicOr6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicO76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicPL6AEeSvUdl1XXO70w" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_EUicPr6AEeSvUdl1XXO70w" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUicQL6AEeSvUdl1XXO70w" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicQb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUicQr6AEeSvUdl1XXO70w" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicQ76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicRL6AEeSvUdl1XXO70w" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicRr6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicR76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicSL6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicSr6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicS76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicTL6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUicTb6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicTr6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicT76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUicUL6AEeSvUdl1XXO70w" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicUb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicUr6AEeSvUdl1XXO70w" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicVL6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicVb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicVr6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicWL6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicWb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicWr6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUicW76AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicXL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicXb6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUicXr6AEeSvUdl1XXO70w" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicX76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicYL6AEeSvUdl1XXO70w" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicYr6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicY76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicZL6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicZr6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicZ76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicaL6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUicab6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicar6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUica76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicbL6AEeSvUdl1XXO70w" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUicbr6AEeSvUdl1XXO70w" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicb76AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUiccL6AEeSvUdl1XXO70w" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUiccb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUiccr6AEeSvUdl1XXO70w" key="body" value=" if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicdL6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicdb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicdr6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUiceL6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUiceb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicer6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUice76AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicfL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicfb6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUicfr6AEeSvUdl1XXO70w" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicf76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicgL6AEeSvUdl1XXO70w" key="body" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicgr6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicg76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUichL6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUichr6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUich76AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUiciL6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUicib6AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicir6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUici76AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicjL6AEeSvUdl1XXO70w" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUicjr6AEeSvUdl1XXO70w" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicj76AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_EUickL6AEeSvUdl1XXO70w" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUickb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUickr6AEeSvUdl1XXO70w" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUiclL6AEeSvUdl1XXO70w" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUiclb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUiclr6AEeSvUdl1XXO70w" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_EUicmL6AEeSvUdl1XXO70w" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicmb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EUicmr6AEeSvUdl1XXO70w" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_EUicm76AEeSvUdl1XXO70w">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicnL6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_EUicnb6AEeSvUdl1XXO70w">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicnr6AEeSvUdl1XXO70w" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_EUicoL6AEeSvUdl1XXO70w" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUicor6AEeSvUdl1XXO70w" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUico76AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_EUicpL6AEeSvUdl1XXO70w" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicpr6AEeSvUdl1XXO70w" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_EUicqL6AEeSvUdl1XXO70w" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EUicqb6AEeSvUdl1XXO70w" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_EUicqr6AEeSvUdl1XXO70w" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_7MjIQLtAEeS1hc9noFXniA" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIQbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIQrtAEeS1hc9noFXniA" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIQ7tAEeS1hc9noFXniA" name="Agent" eSuperTypes="_7MjIVLtAEeS1hc9noFXniA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIRLtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjIRbtAEeS1hc9noFXniA" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIRrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIR7tAEeS1hc9noFXniA" key="body" value="base_Class.isActive"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjISbtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjISrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIS7tAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjITbtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjITrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIT7tAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjIULtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIUbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIUrtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIVLtAEeS1hc9noFXniA" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIVbtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjIVrtAEeS1hc9noFXniA" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIV7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIWLtAEeS1hc9noFXniA" key="body" value="Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjIWrtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIW7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIXLtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjIXrtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIX7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIYLtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjIYbtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIYrtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIY7tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjIZLtAEeS1hc9noFXniA" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIZbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIZrtAEeS1hc9noFXniA" key="body" value=" let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjIaLtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIabtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIartAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjIbLtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIbbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIbrtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjIb7tAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIcLtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIcbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIcrtAEeS1hc9noFXniA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIdLtAEeS1hc9noFXniA" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIdbtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIdrtAEeS1hc9noFXniA" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7MjIeLtAEeS1hc9noFXniA" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIertAEeS1hc9noFXniA" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIe7tAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIfLtAEeS1hc9noFXniA" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIfbtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIfrtAEeS1hc9noFXniA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIgLtAEeS1hc9noFXniA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIgrtAEeS1hc9noFXniA" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIg7tAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIhLtAEeS1hc9noFXniA" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIhrtAEeS1hc9noFXniA" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIh7tAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjIiLtAEeS1hc9noFXniA" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIibtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIirtAEeS1hc9noFXniA" key="body" value="self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjIjLtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIjbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIjrtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjIkLtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIkbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIkrtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjIk7tAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIlLtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIlbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjIlrtAEeS1hc9noFXniA" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIl7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjImLtAEeS1hc9noFXniA" key="body" value="if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjImrtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIm7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjInLtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjInrtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIn7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIoLtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjIobtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIortAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIo7tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjIpLtAEeS1hc9noFXniA" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIpbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIprtAEeS1hc9noFXniA" key="body" value="if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjIqLtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIqbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIqrtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjIrLtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIrbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjIrrtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjIr7tAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIsLtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjIsbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIsrtAEeS1hc9noFXniA" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7MjItLtAEeS1hc9noFXniA" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjItrtAEeS1hc9noFXniA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIuLtAEeS1hc9noFXniA" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIurtAEeS1hc9noFXniA" name="Category" eSuperTypes="_7MjIvbtAEeS1hc9noFXniA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIu7tAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIvbtAEeS1hc9noFXniA" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIvrtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIv7tAEeS1hc9noFXniA" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIwbtAEeS1hc9noFXniA" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIwrtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIw7tAEeS1hc9noFXniA" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7MjIxbtAEeS1hc9noFXniA" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIx7tAEeS1hc9noFXniA" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIybtAEeS1hc9noFXniA" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIy7tAEeS1hc9noFXniA" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjIzLtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjIzbtAEeS1hc9noFXniA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjIz7tAEeS1hc9noFXniA" name="CategoryValue" eSuperTypes="_7MjIgrtAEeS1hc9noFXniA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI0LtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjI0rtAEeS1hc9noFXniA" name="ServiceContract" eSuperTypes="_7MjIdLtAEeS1hc9noFXniA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI07tAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjI1LtAEeS1hc9noFXniA" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI1btAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI1rtAEeS1hc9noFXniA" key="body" value=" self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjI2LtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI2btAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI2rtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjI3LtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI3btAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI3rtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjI37tAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjI4LtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjI4btAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjI4rtAEeS1hc9noFXniA" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI47tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI5LtAEeS1hc9noFXniA" key="body" value=" self.base_Collaboration.ownedBehavior->size()>0 implies (&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages&#xD;&#xA;&#x9;&#x9;--->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent.oclAsType(MessageOccurrenceSpecification).covered->flatten()->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->select(oclIsTypeOf(Signal))->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjI5rtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI57tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI6LtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjI6rtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI67tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI7LtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjI7btAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjI7rtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjI77tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjI8btAEeS1hc9noFXniA" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI8rtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjI87tAEeS1hc9noFXniA" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI9LtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI9btAEeS1hc9noFXniA" key="body" value=" let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjI97tAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI-LtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI-btAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjI-7tAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjI_LtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjI_btAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjI_rtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjI_7tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjJALtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjJAbtAEeS1hc9noFXniA" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJArtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjJA7tAEeS1hc9noFXniA" key="body" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjJBbtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJBrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjJB7tAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjJCbtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJCrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjJC7tAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjJDLtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjJDbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjJDrtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjJD7tAEeS1hc9noFXniA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjJEbtAEeS1hc9noFXniA" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJErtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjJE7tAEeS1hc9noFXniA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjJFbtAEeS1hc9noFXniA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjJF7tAEeS1hc9noFXniA" name="Catalog" eSuperTypes="_7MjIvbtAEeS1hc9noFXniA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJGLtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjJGbtAEeS1hc9noFXniA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjJHLtAEeS1hc9noFXniA" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJHbtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjJHrtAEeS1hc9noFXniA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjJILtAEeS1hc9noFXniA" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJIbtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjJIrtAEeS1hc9noFXniA" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjJJLtAEeS1hc9noFXniA" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJJbtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjJJrtAEeS1hc9noFXniA" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjJKLtAEeS1hc9noFXniA" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJKbtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjJKrtAEeS1hc9noFXniA" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjJK7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvULtAEeS1hc9noFXniA" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvUrtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvU7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvVLtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvVrtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvV7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvWLtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjvWbtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvWrtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvW7tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjvXLtAEeS1hc9noFXniA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjvXrtAEeS1hc9noFXniA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjvYLtAEeS1hc9noFXniA" name="ServicesArchitecture" eSuperTypes="_7MjIdLtAEeS1hc9noFXniA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvYbtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjvYrtAEeS1hc9noFXniA" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvY7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvZLtAEeS1hc9noFXniA" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvZrtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvZ7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvaLtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvartAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjva7tAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvbLtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjvbbtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvbrtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7Mjvb7tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjvcLtAEeS1hc9noFXniA" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvcbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvcrtAEeS1hc9noFXniA" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability' or s.name='Agent' )->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvdLtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvdbtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvdrtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjveLtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvebtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvertAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7Mjve7tAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvfLtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvfbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7Mjvf7tAEeS1hc9noFXniA" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvgLtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7MjvgbtAEeS1hc9noFXniA" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7Mjvg7tAEeS1hc9noFXniA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7MjvhbtAEeS1hc9noFXniA" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7Mjvh7tAEeS1hc9noFXniA" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjviLtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjvibtAEeS1hc9noFXniA" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvirtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvi7tAEeS1hc9noFXniA" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvjbtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvjrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvj7tAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvkbtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvkrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvk7tAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjvlLtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvlbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvlrtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7Mjvl7tAEeS1hc9noFXniA" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7MjvmbtAEeS1hc9noFXniA" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7Mjvm7tAEeS1hc9noFXniA" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvnLtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjvnbtAEeS1hc9noFXniA" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvnrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvn7tAEeS1hc9noFXniA" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvobtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvortAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvo7tAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvpbtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvprtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvp7tAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjvqLtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvqbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvqrtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7Mjvq7tAEeS1hc9noFXniA" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvrLtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvrbtAEeS1hc9noFXniA" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7Mjvr7tAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvsLtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvsbtAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7Mjvs7tAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvtLtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvtbtAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjvtrtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7Mjvt7tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvuLtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7MjvubtAEeS1hc9noFXniA" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvurtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvu7tAEeS1hc9noFXniA" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvvbtAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvvrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvv7tAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7MjvwbtAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvwrtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjvw7tAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7MjvxLtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvxbtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7MjvxrtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7Mjvx7tAEeS1hc9noFXniA" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjvybtAEeS1hc9noFXniA" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvyrtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7Mjvy7tAEeS1hc9noFXniA" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjvzLtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7MjvzbtAEeS1hc9noFXniA" key="body" value=" if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7Mjvz7tAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv0LtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjv0btAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7Mjv07tAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv1LtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjv1btAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7Mjv1rtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7Mjv17tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7Mjv2LtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7Mjv2btAEeS1hc9noFXniA" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv2rtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjv27tAEeS1hc9noFXniA" key="body" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7Mjv3btAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv3rtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjv37tAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7Mjv4btAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv4rtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjv47tAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7Mjv5LtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7Mjv5btAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7Mjv5rtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7Mjv57tAEeS1hc9noFXniA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7Mjv6btAEeS1hc9noFXniA" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv6rtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_7Mjv67tAEeS1hc9noFXniA" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv7LtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjv7btAEeS1hc9noFXniA" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7Mjv77tAEeS1hc9noFXniA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv8LtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjv8btAEeS1hc9noFXniA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_7Mjv87tAEeS1hc9noFXniA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv9LtAEeS1hc9noFXniA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7Mjv9btAEeS1hc9noFXniA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_7Mjv9rtAEeS1hc9noFXniA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7Mjv97tAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_7Mjv-LtAEeS1hc9noFXniA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7Mjv-btAEeS1hc9noFXniA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7Mjv-7tAEeS1hc9noFXniA" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7Mjv_btAEeS1hc9noFXniA" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7Mjv_rtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7Mjv_7tAEeS1hc9noFXniA" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjwAbtAEeS1hc9noFXniA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_7MjwA7tAEeS1hc9noFXniA" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7MjwBLtAEeS1hc9noFXniA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7MjwBbtAEeS1hc9noFXniA" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_I0eRsLa7EeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRsba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eRsra7EeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eRs7a7EeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_I0eRxLa7EeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRtLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eRtba7EeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRtra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eRt7a7EeSBk8ZDbVpaMQ" key="body" value="base_Class.isActive"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eRuba7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRura7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eRu7a7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eRvba7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRvra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eRv7a7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eRwLa7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eRwba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eRwra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eRxLa7EeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRxba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eRxra7EeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRx7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eRyLa7EeSBk8ZDbVpaMQ" key="body" value="Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eRyra7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRy7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eRzLa7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eRzra7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eRz7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eR0La7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eR0ba7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eR0ra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eR07a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eR1La7EeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR1ba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eR1ra7EeSBk8ZDbVpaMQ" key="body" value=" let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eR2La7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR2ba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eR2ra7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eR3La7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR3ba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eR3ra7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eR37a7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eR4La7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eR4ba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eR4ra7EeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eR5La7EeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR5ba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eR5ra7EeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_I0eR6La7EeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eR6ra7EeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR67a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eR7La7EeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR7ba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eR7ra7EeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eR8La7EeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eR8ra7EeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR87a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eR9La7EeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eR9ra7EeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR97a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eR-La7EeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR-ba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eR-ra7EeSBk8ZDbVpaMQ" key="body" value="self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eR_La7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eR_ba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eR_ra7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSALa7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSAba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSAra7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSA7a7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSBLa7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSBba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eSBra7EeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSB7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSCLa7EeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSCra7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSC7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSDLa7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSDra7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSD7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSELa7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSEba7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSEra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSE7a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eSFLa7EeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSFba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSFra7EeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSGLa7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSGba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSGra7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSHLa7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSHba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSHra7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSH7a7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSILa7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSIba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSIra7EeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_I0eSJLa7EeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSJra7EeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSKLa7EeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSKra7EeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_I0eSLba7EeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSK7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSLba7EeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSLra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSL7a7EeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSMba7EeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSMra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSM7a7EeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_I0eSNba7EeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSN7a7EeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSOba7EeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSO7a7EeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSPLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSPba7EeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSP7a7EeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_I0eR8ra7EeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSQLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSQra7EeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_I0eR5La7EeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSQ7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eSRLa7EeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSRba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSRra7EeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSSLa7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSSba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSSra7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSTLa7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSTba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSTra7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eST7a7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSULa7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSUba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eSUra7EeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSU7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSVLa7EeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()>0 implies (&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages&#xD;&#xA;&#x9;&#x9;--->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSVra7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSV7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSWLa7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSWra7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSW7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSXLa7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSXba7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSXra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSX7a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSYba7EeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSYra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eSY7a7EeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSZLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSZba7EeSBk8ZDbVpaMQ" key="body" value=" let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSZ7a7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSaLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSaba7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSa7a7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSbLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSbba7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSbra7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSb7a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eScLa7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eScba7EeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eScra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSc7a7EeSBk8ZDbVpaMQ" key="body" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSdba7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSdra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSd7a7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSeba7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSera7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSe7a7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSfLa7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSfba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSfra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSf7a7EeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSgba7EeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSgra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSg7a7EeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eShba7EeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSh7a7EeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_I0eSLba7EeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSiLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSiba7EeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSjLa7EeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSjba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSjra7EeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSkLa7EeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSkba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSkra7EeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSlLa7EeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSlba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSlra7EeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSmLa7EeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSmba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eSmra7EeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSm7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSnLa7EeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSnra7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSn7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSoLa7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSora7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSo7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSpLa7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSpba7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSpra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSp7a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSqLa7EeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSqra7EeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSrLa7EeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_I0eR5La7EeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSrba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eSrra7EeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSr7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSsLa7EeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSsra7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSs7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eStLa7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eStra7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSt7a7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSuLa7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSuba7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSura7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSu7a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eSvLa7EeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSvba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSvra7EeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability' or s.name='Agent' )->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSwLa7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSwba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSwra7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eSxLa7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSxba7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eSxra7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eSx7a7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSyLa7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eSyba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eSy7a7EeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eSzLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_I0eSzba7EeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eSz7a7EeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_I0eS0ba7EeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eS07a7EeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS1La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eS1ba7EeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS1ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eS17a7EeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eS2ba7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS2ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eS27a7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eS3ba7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS3ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eS37a7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eS4La7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eS4ba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eS4ra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0eS47a7EeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_I0eS5ba7EeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0eS57a7EeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS6La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eS6ba7EeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS6ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eS67a7EeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eS7ba7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS7ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eS77a7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eS8ba7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS8ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eS87a7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eS9La7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eS9ba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eS9ra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0eS97a7EeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS-La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eS-ba7EeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eS-7a7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eS_La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eS_ba7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0eS_7a7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0eTALa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0eTAba7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0eTAra7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0eTA7a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e4wLa7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0e4wba7EeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e4wra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e4w7a7EeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0e4xba7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e4xra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e4x7a7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0e4yba7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e4yra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e4y7a7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0e4zLa7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e4zba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e4zra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0e4z7a7EeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0e40ba7EeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e40ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0e407a7EeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e41La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e41ba7EeSBk8ZDbVpaMQ" key="body" value=" if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0e417a7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e42La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e42ba7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0e427a7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e43La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e43ba7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0e43ra7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e437a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e44La7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0e44ba7EeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e44ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e447a7EeSBk8ZDbVpaMQ" key="body" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0e45ba7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e45ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e457a7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0e46ba7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e46ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e467a7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0e47La7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e47ba7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e47ra7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0e477a7EeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0e48ba7EeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e48ra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_I0e487a7EeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e49La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e49ba7EeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0e497a7EeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e4-La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e4-ba7EeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_I0e4-7a7EeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e4_La7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I0e4_ba7EeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_I0e4_ra7EeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e4_7a7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_I0e5ALa7EeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0e5Aba7EeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_I0e5A7a7EeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0e5Bba7EeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e5Bra7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_I0e5B7a7EeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0e5Cba7EeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_I0e5C7a7EeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I0e5DLa7EeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_I0e5Dba7EeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_kYONgLauEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONgbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONgrauEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYONg7auEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_kYONlLauEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONhLauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYONhbauEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONhrauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONh7auEeSBk8ZDbVpaMQ" key="body" value="base_Class.isActive"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYONibauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONirauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONi7auEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYONjbauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONjrauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONj7auEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYONkLauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYONkbauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYONkrauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYONlLauEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONlbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYONlrauEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONl7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONmLauEeSBk8ZDbVpaMQ" key="body" value="Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYONmrauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONm7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONnLauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYONnrauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONn7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONoLauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYONobauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYONorauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYONo7auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYONpLauEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONpbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONprauEeSBk8ZDbVpaMQ" key="body" value=" let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYONqLauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONqbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONqrauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYONrLauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONrbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONrrauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYONr7auEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYONsLauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYONsbauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYONsrauEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYONtLauEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONtbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYONtrauEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kYONuLauEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYONurauEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONu7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYONvLauEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONvbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYONvrauEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYONwLauEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYONwrauEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONw7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYONxLauEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYONxrauEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONx7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYONyLauEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONybauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONyrauEeSBk8ZDbVpaMQ" key="body" value="self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYONzLauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYONzbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYONzrauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYON0LauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON0bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYON0rauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYON07auEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYON1LauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYON1bauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYON1rauEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON17auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYON2LauEeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYON2rauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON27auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYON3LauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYON3rauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON37auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYON4LauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYON4bauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYON4rauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYON47auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYON5LauEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON5bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYON5rauEeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYON6LauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON6bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYON6rauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYON7LauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON7bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYON7rauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYON77auEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYON8LauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYON8bauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYON8rauEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kYON9LauEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYON9rauEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYON-LauEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYON-rauEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_kYON_bauEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON-7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYON_bauEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYON_rauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYON_7auEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOAbauEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOArauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOA7auEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kYOOBbauEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOB7auEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOCbauEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOC7auEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOODLauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOODbauEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOD7auEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_kYONwrauEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOELauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOErauEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_kYONtLauEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOE7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYOOFLauEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOFbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOFrauEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOGLauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOGbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOGrauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOHLauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOHbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOHrauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYOOH7auEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOILauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOIbauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYOOIrauEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOI7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOJLauEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()>0 implies (&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOJrauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOJ7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOKLauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOKrauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOK7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOLLauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYOOLbauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOLrauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOL7auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOMbauEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOMrauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYOOM7auEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOONLauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOONbauEeSBk8ZDbVpaMQ" key="body" value=" let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOON7auEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOOLauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOObauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOO7auEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOPLauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOPbauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYOOPrauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOP7auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOQLauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYOOQbauEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOQrauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOQ7auEeSBk8ZDbVpaMQ" key="body" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOORbauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOORrauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOR7auEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOSbauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOSrauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOS7auEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYOOTLauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOTbauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOTrauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOT7auEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOUbauEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOUrauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOU7auEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOVbauEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOV7auEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_kYON_bauEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOWLauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOWbauEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOXLauEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOXbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOXrauEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOYLauEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOYbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOYrauEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOZLauEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOZbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOZrauEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOaLauEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOabauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYOOarauEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOa7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOObLauEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOObrauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOb7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOcLauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOcrauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOc7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOdLauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYOOdbauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOdrauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOd7auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOeLauEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYOOerauEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOfLauEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_kYONtLauEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOfbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYOOfrauEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOf7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOgLauEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOgrauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOg7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOhLauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOhrauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOh7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOiLauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYOOibauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOirauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOi7auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYOOjLauEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOjbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOjrauEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability' or s.name='Agent' )->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOkLauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOkbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOkrauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYOOlLauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOlbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYOOlrauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYOOl7auEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOmLauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYOOmbauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYOOm7auEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYOOnLauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kYOOnbauEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYO0kLauEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kYO0krauEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYO0lLauEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0lbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYO0lrauEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0l7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0mLauEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0mrauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0m7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0nLauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0nrauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0n7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0oLauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYO0obauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO0orauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO0o7auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYO0pLauEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kYO0prauEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYO0qLauEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0qbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYO0qrauEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0q7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0rLauEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0rrauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0r7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0sLauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0srauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0s7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0tLauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYO0tbauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO0trauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO0t7auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYO0uLauEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0ubauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0urauEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0vLauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0vbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0vrauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0wLauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0wbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0wrauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYO0w7auEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO0xLauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO0xbauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYO0xrauEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0x7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0yLauEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0yrauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0y7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0zLauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0zrauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0z7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO00LauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYO00bauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO00rauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO007auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYO01LauEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYO01rauEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO017auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYO02LauEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO02bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO02rauEeSBk8ZDbVpaMQ" key="body" value=" if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO03LauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO03bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO03rauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO04LauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO04bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO04rauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYO047auEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO05LauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO05bauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYO05rauEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO057auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO06LauEeSBk8ZDbVpaMQ" key="body" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO06rauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO067auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO07LauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO07rauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO077auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO08LauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYO08bauEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO08rauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO087auEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYO09LauEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYO09rauEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO097auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_kYO0-LauEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0-bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0-rauEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO0_LauEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO0_bauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO0_rauEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_kYO1ALauEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO1AbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kYO1ArauEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_kYO1A7auEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO1BLauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_kYO1BbauEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYO1BrauEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kYO1CLauEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYO1CrauEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO1C7auEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_kYO1DLauEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYO1DrauEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_kYO1ELauEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kYO1EbauEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_kYO1ErauEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_8rcLsLasEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLsbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcLsrasEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rcLs7asEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_8rcLxLasEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLtLasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rcLtbasEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLtrasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcLt7asEeSBk8ZDbVpaMQ" key="body" value="base_Class.isActive"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcLubasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLurasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcLu7asEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcLvbasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLvrasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcLv7asEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rcLwLasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcLwbasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcLwrasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rcLxLasEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLxbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rcLxrasEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLx7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcLyLasEeSBk8ZDbVpaMQ" key="body" value="Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcLyrasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLy7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcLzLasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcLzrasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcLz7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcL0LasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rcL0basEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcL0rasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcL07asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rcL1LasEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcL1basEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcL1rasEeSBk8ZDbVpaMQ" key="body" value=" let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcywLasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcywbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcywrasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcyxLasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcyxbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcyxrasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rcyx7asEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcyyLasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcyybasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rcyyrasEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rcyzLasEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcyzbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rcyzrasEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8rcy0LasEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rcy0rasEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy07asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rcy1LasEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy1basEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rcy1rasEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rcy2LasEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rcy2rasEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy27asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rcy3LasEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rcy3rasEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy37asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rcy4LasEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy4basEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcy4rasEeSBk8ZDbVpaMQ" key="body" value="self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcy5LasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy5basEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcy5rasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcy6LasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy6basEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcy6rasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rcy67asEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcy7LasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcy7basEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rcy7rasEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy77asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcy8LasEeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcy8rasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy87asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcy9LasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rcy9rasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy97asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcy-LasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rcy-basEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcy-rasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rcy-7asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rcy_LasEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rcy_basEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcy_rasEeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczALasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczAbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczArasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczBLasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczBbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczBrasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rczB7asEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczCLasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczCbasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczCrasEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8rczDLasEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczDrasEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczELasEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczErasEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_8rczFbasEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczE7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczFbasEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczFrasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczF7asEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczGbasEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczGrasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczG7asEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8rczHbasEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczH7asEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczIbasEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczI7asEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczJLasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczJbasEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczJ7asEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_8rcy2rasEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczKLasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczKrasEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_8rcyzLasEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczK7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rczLLasEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczLbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczLrasEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczMLasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczMbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczMrasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczNLasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczNbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczNrasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rczN7asEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczOLasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczObasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rczOrasEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczO7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczPLasEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()>0 implies (&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczPrasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczP7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczQLasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczQrasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczQ7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczRLasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rczRbasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczRrasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczR7asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczSbasEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczSrasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rczS7asEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczTLasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczTbasEeSBk8ZDbVpaMQ" key="body" value=" let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczT7asEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczULasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczUbasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczU7asEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczVLasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczVbasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rczVrasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczV7asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczWLasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rczWbasEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczWrasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczW7asEeSBk8ZDbVpaMQ" key="body" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczXbasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczXrasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczX7asEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczYbasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczYrasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczY7asEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rczZLasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczZbasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczZrasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczZ7asEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczabasEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczarasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rcza7asEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczbbasEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczb7asEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_8rczFbasEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczcLasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczcbasEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczdLasEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczdbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczdrasEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczeLasEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczebasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczerasEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczfLasEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczfbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczfrasEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczgLasEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczgbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rczgrasEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczg7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczhLasEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczhrasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczh7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rcziLasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rczirasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczi7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rczjLasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rczjbasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczjrasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rczj7asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczkLasEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rczkrasEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rczlLasEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_8rcyzLasEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rczlbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rczlrasEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ0LasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdZ0basEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdZ07asEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ1LasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdZ1basEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdZ17asEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ2LasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdZ2basEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdZ2rasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdZ27asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdZ3LasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rdZ3basEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ3rasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdZ37asEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdZ4basEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ4rasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdZ47asEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdZ5basEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ5rasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdZ57asEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdZ6LasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdZ6basEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdZ6rasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rdZ7LasEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ7basEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8rdZ7rasEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rdZ8LasEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8rdZ8rasEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rdZ9LasEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ9basEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rdZ9rasEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ97asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdZ-LasEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdZ-rasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ-7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdZ_LasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdZ_rasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdZ_7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaALasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdaAbasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaArasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaA7asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rdaBLasEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8rdaBrasEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rdaCLasEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaCbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rdaCrasEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaC7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaDLasEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaDrasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaD7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaELasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaErasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaE7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaFLasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdaFbasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaFrasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaF7asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rdaGLasEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaGbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaGrasEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaHLasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaHbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaHrasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaILasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaIbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaIrasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdaI7asEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaJLasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaJbasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rdaJrasEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaJ7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaKLasEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaKrasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaK7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaLLasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaLrasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaL7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaMLasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdaMbasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaMrasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaM7asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rdaNLasEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rdaNrasEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaN7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rdaOLasEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaObasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaOrasEeSBk8ZDbVpaMQ" key="body" value=" if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaPLasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaPbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaPrasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaQLasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaQbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaQrasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdaQ7asEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaRLasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaRbasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rdaRrasEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaR7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaSLasEeSBk8ZDbVpaMQ" key="body" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaSrasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaS7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaTLasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaTrasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaT7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaULasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdaUbasEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaUrasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaU7asEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rdaVLasEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rdaVrasEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaV7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8rdaWLasEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaWbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaWrasEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaXLasEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaXbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaXrasEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8rdaYLasEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaYbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8rdaYrasEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8rdaY7asEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaZLasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8rdaZbasEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rdaZrasEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8rdaaLasEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rdaarasEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdaa7asEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8rdabLasEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rdabrasEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8rdacLasEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8rdacbasEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8rdacrasEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_L0UzMLapEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzMbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzMrapEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0UzM7apEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_L0UzRLapEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzNLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0UzNbapEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzNrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzN7apEeSBk8ZDbVpaMQ" key="body" value="base_Class.isActive"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0UzObapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzOrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzO7apEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0UzPbapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzPrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzP7apEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0UzQLapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0UzQbapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0UzQrapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0UzRLapEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzRbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0UzRrapEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzR7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzSLapEeSBk8ZDbVpaMQ" key="body" value="Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0UzSrapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzS7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzTLapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0UzTrapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzT7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzULapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0UzUbapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0UzUrapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0UzU7apEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0UzVLapEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzVbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzVrapEeSBk8ZDbVpaMQ" key="body" value=" let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0UzWLapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzWbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzWrapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0UzXLapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzXbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0UzXrapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0UzX7apEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0UzYLapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0UzYbapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0UzYrapEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0UzZLapEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0UzZbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0UzZrapEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_L0VaQLapEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VaQrapEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaQ7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VaRLapEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaRbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VaRrapEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VaSLapEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VaSrapEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaS7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VaTLapEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VaTrapEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaT7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VaULapEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaUbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaUrapEeSBk8ZDbVpaMQ" key="body" value="self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VaVLapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaVbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaVrapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VaWLapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaWbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaWrapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0VaW7apEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VaXLapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VaXbapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VaXrapEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaX7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaYLapEeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VaYrapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaY7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaZLapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VaZrapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaZ7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaaLapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0VaabapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VaarapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0Vaa7apEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VabLapEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VabbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VabrapEeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VacLapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VacbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VacrapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VadLapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VadbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VadrapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0Vad7apEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VaeLapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VaebapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VaerapEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_L0VafLapEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VafrapEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VagLapEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VagrapEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_L0VahbapEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Vag7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VahbapEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VahrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Vah7apEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VaibapEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VairapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Vai7apEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_L0VajbapEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Vaj7apEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VakbapEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0Vak7apEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0ValLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0ValbapEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0Val7apEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_L0VaSrapEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VamLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VamrapEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_L0UzZLapEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Vam7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VanLapEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VanbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VanrapEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VaoLapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaobapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaorapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VapLapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VapbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaprapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0Vap7apEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VaqLapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VaqbapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VaqrapEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Vaq7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VarLapEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()>0 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VarrapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Var7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VasLapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VasrapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Vas7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VatLapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0VatbapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VatrapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0Vat7apEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VaubapEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaurapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0Vau7apEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VavLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VavbapEeSBk8ZDbVpaMQ" key="body" value=" let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0Vav7apEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VawLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VawbapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0Vaw7apEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VaxLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VaxbapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0VaxrapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0Vax7apEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VayLapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VaybapEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VayrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0Vay7apEeSBk8ZDbVpaMQ" key="body" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VazbapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VazrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0Vaz7apEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0Va0bapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va0rapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0Va07apEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0Va1LapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0Va1bapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0Va1rapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Va17apEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0Va2bapEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va2rapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Va27apEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Va3bapEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0Va37apEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_L0VahbapEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va4LapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Va4bapEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0Va5LapEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va5bapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Va5rapEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0Va6LapEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va6bapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Va6rapEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0Va7LapEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va7bapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0Va7rapEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0Va8LapEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va8bapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0Va8rapEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va87apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0Va9LapEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0Va9rapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va97apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0Va-LapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0Va-rapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0Va-7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0Va_LapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0Va_bapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0Va_rapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0Va_7apEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VbALapEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VbArapEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VbBLapEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_L0UzZLapEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbBbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VbBrapEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbB7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbCLapEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VbCrapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbC7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbDLapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VbDrapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbD7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbELapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0VbEbapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VbErapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VbE7apEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VbFLapEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbFbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbFrapEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VbGLapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbGbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbGrapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VbHLapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbHbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbHrapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0VbH7apEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VbILapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VbIbapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VbI7apEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbJLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_L0VbJbapEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VbJ7apEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_L0VbKbapEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VbK7apEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbLLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VbLbapEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbLrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbL7apEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VbMbapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbMrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbM7apEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VbNbapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbNrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbN7apEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0VbOLapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VbObapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VbOrapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0VbO7apEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_L0VbPbapEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0VbP7apEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbQLapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VbQbapEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbQrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbQ7apEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VbRbapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbRrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbR7apEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0VbSbapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbSrapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbS7apEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0VbTLapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VbTbapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0VbTrapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0VbT7apEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0VbULapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0VbUbapEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBULapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBUbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBUrapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBVLapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBVbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBVrapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0WBV7apEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBWLapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBWbapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0WBWrapEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBW7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBXLapEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBXrapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBX7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBYLapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBYrapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBY7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBZLapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0WBZbapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBZrapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBZ7apEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0WBaLapEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0WBarapEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBa7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0WBbLapEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBbbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBbrapEeSBk8ZDbVpaMQ" key="body" value=" if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBcLapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBcbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBcrapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBdLapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBdbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBdrapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0WBd7apEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBeLapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBebapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0WBerapEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBe7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBfLapEeSBk8ZDbVpaMQ" key="body" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBfrapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBf7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBgLapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBgrapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBg7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBhLapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0WBhbapEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBhrapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBh7apEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0WBiLapEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0WBirapEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBi7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_L0WBjLapEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBjbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBjrapEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBkLapEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBkbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBkrapEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_L0WBlLapEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBlbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L0WBlrapEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_L0WBl7apEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBmLapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_L0WBmbapEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0WBmrapEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_L0WBnLapEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0WBnrapEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBn7apEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_L0WBoLapEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0WBorapEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_L0WBpLapEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L0WBpbapEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_L0WBprapEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_oXti4LajEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti4bajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXti4rajEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXti47ajEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_oXti9LajEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti5LajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXti5bajEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti5rajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXti57ajEeSBk8ZDbVpaMQ" key="body" value="base_Class.isActive"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXti6bajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti6rajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXti67ajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXti7bajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti7rajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXti77ajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXti8LajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXti8bajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXti8rajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXti9LajEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti9bajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXti9rajEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti97ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXti-LajEeSBk8ZDbVpaMQ" key="body" value="Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXti-rajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti-7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXti_LajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXti_rajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXti_7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXtjALajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXtjAbajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXtjArajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXtjA7ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXtjBLajEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjBbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXtjBrajEeSBk8ZDbVpaMQ" key="body" value=" let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXtjCLajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjCbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXtjCrajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXtjDLajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjDbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXtjDrajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXtjD7ajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXtjELajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXtjEbajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXtjErajEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXtjFLajEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjFbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXtjFrajEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oXtjGLajEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXtjGrajEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjG7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXtjHLajEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjHbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXtjHrajEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXtjILajEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXtjIrajEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjI7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXtjJLajEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXtjJrajEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjJ7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXtjKLajEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXtjKbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuJ8LajEeSBk8ZDbVpaMQ" key="body" value="self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuJ8rajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuJ87ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuJ9LajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuJ9rajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuJ97ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuJ-LajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuJ-bajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuJ-rajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuJ-7ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuJ_LajEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuJ_bajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuJ_rajEeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKALajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKAbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKArajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKBLajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKBbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKBrajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKB7ajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKCLajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKCbajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKCrajEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKC7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKDLajEeSBk8ZDbVpaMQ" key="body" value="if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKDrajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKD7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKELajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKErajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKE7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKFLajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKFbajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKFrajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKF7ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKGLajEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oXuKGrajEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKHLajEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKHrajEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKILajEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_oXuKI7ajEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKIbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKI7ajEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKJLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKJbajEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKJ7ajEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKKLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKKbajEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oXuKK7ajEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKLbajEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKL7ajEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKMbajEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKMrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKM7ajEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKNbajEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_oXtjIrajEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKNrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKOLajEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_oXtjFLajEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKObajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKOrajEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKO7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKPLajEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKPrajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKP7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKQLajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKQrajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKQ7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKRLajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKRbajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKRrajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKR7ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKSLajEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKSbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKSrajEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKTLajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKTbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKTrajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKULajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKUbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKUrajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKU7ajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKVLajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKVbajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKV7ajEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKWLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKWbajEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKWrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKW7ajEeSBk8ZDbVpaMQ" key="body" value=" let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKXbajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKXrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKX7ajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKYbajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKYrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKY7ajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKZLajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKZbajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKZrajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKZ7ajEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKaLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKabajEeSBk8ZDbVpaMQ" key="body" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKa7ajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKbLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKbbajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKb7ajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKcLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKcbajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKcrajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKc7ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKdLajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKdbajEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKd7ajEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKeLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKebajEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKe7ajEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKfbajEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_oXuKI7ajEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKfrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKf7ajEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKgrajEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKg7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKhLajEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKhrajEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKh7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKiLajEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKirajEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKi7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKjLajEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKjrajEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKj7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKkLajEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKkbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKkrajEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKlLajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKlbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKlrajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKmLajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKmbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKmrajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKm7ajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKnLajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKnbajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKnrajEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKoLajEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKorajEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_oXtjFLajEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKo7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKpLajEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKpbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKprajEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKqLajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKqbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKqrajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKrLajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKrbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKrrajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKr7ajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKsLajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKsbajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKsrajEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKs7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKtLajEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKtrajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKt7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKuLajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKurajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKu7ajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKvLajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuKvbajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKvrajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuKv7ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKwbajEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKwrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oXuKw7ajEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuKxbajEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oXuKx7ajEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuKybajEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKyrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuKy7ajEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuKzLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuKzbajEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuKz7ajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK0LajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK0bajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuK07ajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK1LajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK1bajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuK1rajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuK17ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuK2LajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuK2bajEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oXuK27ajEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuK3bajEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK3rajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuK37ajEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK4LajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK4bajEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuK47ajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK5LajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK5bajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuK57ajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK6LajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK6bajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuK6rajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuK67ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuK7LajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuK7bajEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK7rajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK77ajEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuK8bajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK8rajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK87ajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuK9bajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK9rajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK97ajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuK-LajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuK-bajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuK-rajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuK-7ajEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuK_LajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuK_bajEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuK_7ajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLALajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLAbajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuLA7ajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLBLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLBbajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuLBrajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuLB7ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuLCLajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuLCbajEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuLC7ajEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLDLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuLDbajEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLDrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLD7ajEeSBk8ZDbVpaMQ" key="body" value=" if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuLEbajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLErajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLE7ajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuLFbajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLFrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLF7ajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuLGLajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuLGbajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuLGrajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuLG7ajEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLHLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLHbajEeSBk8ZDbVpaMQ" key="body" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuLH7ajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLILajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLIbajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuLI7ajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLJLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLJbajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuLJrajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuLJ7ajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuLKLajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuLKbajEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuLK7ajEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLLLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oXuLLbajEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLLrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLL7ajEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuLMbajEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLMrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLM7ajEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oXuLNbajEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLNrajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oXuLN7ajEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oXuLOLajEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuLObajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oXuLOrajEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuLO7ajEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oXuLPbajEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuLP7ajEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuLQLajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oXuxALajEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuxArajEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oXuxBLajEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oXuxBbajEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oXuxBrajEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_GVqrwLahEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqrwbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqrwrahEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVqrw7ahEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_GVqr1LahEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqrxLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVqrxbahEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqrxrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqrx7ahEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVqrybahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqryrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqry7ahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVqrzbahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqrzrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqrz7ahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVqr0LahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVqr0bahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVqr0rahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVqr1LahEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr1bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVqr1rahEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr17ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqr2LahEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVqr2rahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr27ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqr3LahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVqr3rahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr37ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqr4LahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVqr4bahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVqr4rahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVqr47ahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVqr5LahEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr5bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqr5rahEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVqr6LahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr6bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqr6rahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVqr7LahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr7bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqr7rahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVqr77ahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVqr8LahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVqr8bahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVqr8rahEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVqr9LahEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr9bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVqr9rahEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GVqr-LahEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVqr-rahEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr-7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVqr_LahEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqr_bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVqr_rahEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVqsALahEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVqsArahEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqsA7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVqsBLahEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVqsBrahEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqsB7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVqsCLahEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqsCbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqsCrahEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVqsDLahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqsDbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqsDrahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVqsELahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVqsEbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVqsErahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVqsE7ahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVqsFLahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVqsFbahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVrS0LahEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS0bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrS0rahEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrS1LahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS1bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrS1rahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrS2LahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS2bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrS2rahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVrS27ahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrS3LahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrS3bahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVrS3rahEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS37ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrS4LahEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrS4rahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS47ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrS5LahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrS5rahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS57ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrS6LahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVrS6bahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrS6rahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrS67ahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrS7LahEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GVrS7rahEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrS8LahEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrS8rahEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrS9LahEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_GVrS97ahEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS9bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrS97ahEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS-LahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrS-bahEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrS-7ahEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrS_LahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrS_bahEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GVrS_7ahEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrTAbahEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrTA7ahEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrTBbahEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTBrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrTB7ahEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrTCbahEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_GVqsArahEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTCrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrTDLahEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_GVqr9LahEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTDbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVrTDrahEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTD7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTELahEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrTErahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTE7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTFLahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrTFrahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTF7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTGLahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVrTGbahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrTGrahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrTG7ahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVrTHLahEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTHbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTHrahEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrTILahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTIbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTIrahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrTJLahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTJbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTJrahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVrTJ7ahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrTKLahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrTKbahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrTK7ahEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTLLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVrTLbahEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTLrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTL7ahEeSBk8ZDbVpaMQ" key="body" value=" let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrTMbahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTMrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTM7ahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrTNbahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTNrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTN7ahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVrTOLahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrTObahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrTOrahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVrTO7ahEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTPLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTPbahEeSBk8ZDbVpaMQ" key="body" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrTP7ahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTQLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTQbahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVrTQ7ahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTRLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVrTRbahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVrTRrahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrTR7ahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVrTSLahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrTSbahEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrTS7ahEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTTLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrTTbahEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrTT7ahEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVrTUbahEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_GVrS97ahEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVrTUrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVrTU7ahEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVr54LahEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr54bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVr54rahEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVr55LahEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr55bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVr55rahEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVr56LahEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr56bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVr56rahEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVr57LahEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr57bahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVr57rahEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr577ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr58LahEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr58rahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr587ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr59LahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr59rahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr597ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr5-LahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVr5-bahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr5-rahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr5-7ahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVr5_LahEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVr5_rahEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVr6ALahEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_GVqr9LahEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6AbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVr6ArahEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6A7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6BLahEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6BrahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6B7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6CLahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6CrahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6C7ahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6DLahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVr6DbahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr6DrahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr6D7ahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVr6ELahEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6EbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6ErahEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6FLahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6FbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6FrahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6GLahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6GbahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6GrahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVr6G7ahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr6HLahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr6HbahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVr6H7ahEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6ILahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GVr6IbahEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVr6I7ahEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GVr6JbahEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVr6J7ahEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6KLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVr6KbahEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6KrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6K7ahEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6LbahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6LrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6L7ahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6MbahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6MrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6M7ahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVr6NLahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr6NbahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr6NrahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVr6N7ahEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GVr6ObahEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVr6O7ahEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6PLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVr6PbahEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6PrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6P7ahEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6QbahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6QrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6Q7ahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6RbahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6RrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6R7ahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVr6SLahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr6SbahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVr6SrahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVr6S7ahEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6TLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6TbahEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6T7ahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6ULahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6UbahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVr6U7ahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVr6VLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVr6VbahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVsg8LahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVsg8bahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVsg8rahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVsg87ahEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVsg9LahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVsg9bahEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVsg97ahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVsg-LahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVsg-bahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVsg-7ahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVsg_LahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVsg_bahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVsg_rahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVsg_7ahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVshALahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVshAbahEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVshA7ahEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshBLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVshBbahEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshBrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVshB7ahEeSBk8ZDbVpaMQ" key="body" value=" if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVshCbahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshCrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVshC7ahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVshDbahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshDrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVshD7ahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVshELahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVshEbahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVshErahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVshE7ahEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshFLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVshFbahEeSBk8ZDbVpaMQ" key="body" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVshF7ahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshGLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVshGbahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVshG7ahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshHLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVshHbahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVshHrahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVshH7ahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVshILahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVshIbahEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVshI7ahEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshJLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_GVshJbahEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshJrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVshJ7ahEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVshKbahEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVshKrahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVshK7ahEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_GVtIAbahEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVtIArahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GVtIA7ahEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_GVtIBLahEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVtIBbahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_GVtIBrahEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVtIB7ahEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GVtICbahEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVtIC7ahEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVtIDLahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_GVtIDbahEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVtID7ahEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_GVtIEbahEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GVtIErahEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_GVtIE7ahEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_QZn5cLagEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5cbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5cragEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5c7agEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_QZn5hLagEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5dLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn5dbagEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5dragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5d7agEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5ebagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5eragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5e7agEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5fbagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5fragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5f7agEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn5gLagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn5gbagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn5gragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5hLagEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5hbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn5hragEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5h7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5iLagEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5iragEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5i7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5jLagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5jragEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5j7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5kLagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn5kbagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn5kragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn5k7agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn5lLagEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5lbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5lragEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5mLagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5mbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5mragEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5nLagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5nbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5nragEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn5n7agEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn5oLagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn5obagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn5oragEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5pLagEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5pbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn5pragEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QZn5qLagEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5qragEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5q7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5rLagEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5rbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn5rragEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn5sLagEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5sragEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5s7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn5tLagEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5tragEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5t7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn5uLagEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5ubagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5uragEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5vLagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5vbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5vragEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5wLagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5wbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5wragEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn5w7agEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn5xLagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn5xbagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn5xragEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5x7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5yLagEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5yragEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5y7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn5zLagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn5zragEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5z7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn50LagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn50bagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn50ragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn507agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn51LagEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn51bagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn51ragEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn52LagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn52bagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn52ragEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn53LagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn53bagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn53ragEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn537agEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn54LagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn54bagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn54ragEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QZn55LagEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn55ragEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn56LagEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn56ragEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_QZn57bagEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn567agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn57bagEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn57ragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn577agEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn58bagEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn58ragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn587agEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QZn59bagEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn597agEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn5-bagEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5-7agEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn5_LagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn5_bagEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn5_7agEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_QZn5sragEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6ALagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn6AragEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_QZn5pLagEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6A7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn6BLagEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6BbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6BragEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6CLagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6CbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6CragEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6DLagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6DbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6DragEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn6D7agEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6ELagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6EbagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn6EragEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6E7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6FLagEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6FragEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6F7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6GLagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6GragEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6G7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6HLagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn6HbagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6HragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6H7agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn6IbagEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6IragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn6I7agEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6JLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6JbagEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6J7agEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6KLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6KbagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6K7agEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6LLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6LbagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn6LragEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6L7agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6MLagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn6MbagEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6MragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6M7agEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6NbagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6NragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6N7agEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6ObagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6OragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6O7agEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn6PLagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6PbagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6PragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6P7agEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn6QbagEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6QragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6Q7agEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6RbagEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn6R7agEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_QZn57bagEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6SLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6SbagEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn6TLagEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6TbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6TragEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn6ULagEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6UbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6UragEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn6VLagEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6VbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6VragEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZn6WLagEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6WbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZn6WragEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6W7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6XLagEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6XragEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6X7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6YLagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZn6YragEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZn6Y7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZn6ZLagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZn6ZbagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6ZragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZn6Z7agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6aLagEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZn6aragEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZoggLagEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_QZn5pLagEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZoggbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZoggragEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogg7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZoghLagEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZoghragEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogh7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogiLagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZogiragEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogi7agEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogjLagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZogjbagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZogjragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZogj7agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZogkLagEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogkbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogkragEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZoglLagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZoglbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZoglragEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZogmLagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogmbagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogmragEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZogm7agEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZognLagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZognbagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZogn7agEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogoLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QZogobagEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZogo7agEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QZogpbagEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZogp7agEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogqLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZogqbagEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogqragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogq7agEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZogrbagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogrragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogr7agEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZogsbagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogsragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogs7agEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZogtLagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZogtbagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZogtragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZogt7agEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QZogubagEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZogu7agEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogvLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZogvbagEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogvragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogv7agEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZogwbagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogwragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogw7agEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZogxbagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogxragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogx7agEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZogyLagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZogybagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZogyragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZogy7agEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZogzLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZogzbagEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZogz7agEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog0LagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog0bagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZog07agEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog1LagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog1bagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZog1ragEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZog17agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZog2LagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZog2bagEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog2ragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog27agEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZog3bagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog3ragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog37agEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZog4bagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog4ragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog47agEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZog5LagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZog5bagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZog5ragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZog57agEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZog6bagEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog6ragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZog67agEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog7LagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog7bagEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZog77agEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog8LagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog8bagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZog87agEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog9LagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog9bagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZog9ragEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZog97agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZog-LagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZog-bagEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog-ragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog-7agEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZog_bagEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZog_ragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZog_7agEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZohAbagEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZohAragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZohA7agEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZohBLagEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZohBbagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZohBragEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZohB7agEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZohCbagEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZohCragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_QZohC7agEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZohDLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZohDbagEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZohD7agEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZohELagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZohEbagEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_QZohE7agEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZohFLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QZohFbagEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_QZohFragEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZohF7agEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_QZohGLagEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZohGbagEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QZohG7agEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZohHbagEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZohHragEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QZohH7agEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZohIbagEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_QZohI7agEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QZohJLagEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QZohJbagEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_IrMgELaeEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgEbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgEraeEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgE7aeEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_IrMgJLaeEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgFLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrMgFbaeEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgFraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgF7aeEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgGbaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgGraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgG7aeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgHbaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgHraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgH7aeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrMgILaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgIbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgIraeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgJLaeEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgJbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrMgJraeEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgJ7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgKLaeEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgKraeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgK7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgLLaeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgLraeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgL7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgMLaeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrMgMbaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgMraeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgM7aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrMgNLaeEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgNbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgNraeEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgOLaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgObaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgOraeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgPLaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgPbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgPraeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrMgP7aeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgQLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgQbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgQraeEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgRLaeEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgRbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgRraeEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IrMgSLaeEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgSraeEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgS7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgTLaeEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgTbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgTraeEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgULaeEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgUraeEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgU7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgVLaeEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgVraeEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgV7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrMgWLaeEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgWbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgWraeEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgXLaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgXbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgXraeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgYLaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgYbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgYraeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrMgY7aeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgZLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgZbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrMgZraeEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgZ7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgaLaeEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgaraeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMga7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgbLaeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgbraeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgb7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgcLaeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrMgcbaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgcraeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMgc7aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrMgdLaeEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgdbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgdraeEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgeLaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgebaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgeraeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgfLaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgfbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgfraeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrMgf7aeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMggLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrMggbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMggraeEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IrMghLaeEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMghraeEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgiLaeEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgiraeEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_IrMgjbaeEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgi7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgjbaeEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgjraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgj7aeEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgkbaeEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgkraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgk7aeEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IrMglbaeEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgl7aeEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgmbaeEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgm7aeEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgnLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrMgnbaeEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgn7aeEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_IrMgUraeEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgoLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrMgoraeEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_IrMgRLaeEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgo7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrMgpLaeEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgpbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrMgpraeEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrMgqLaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrMgqbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHILaeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHIraeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHI7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHJLaeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHJbaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHJraeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHJ7aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHKLaeEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHKbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHKraeEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHLLaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHLbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHLraeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHMLaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHMbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHMraeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHM7aeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHNLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHNbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHN7aeEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHOLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHObaeEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHOraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHO7aeEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHPbaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHPraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHP7aeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHQbaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHQraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHQ7aeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHRLaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHRbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHRraeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHR7aeEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHSLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHSbaeEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHS7aeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHTLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHTbaeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHT7aeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHULaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHUbaeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHUraeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHU7aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHVLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHVbaeEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHV7aeEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHWLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHWbaeEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHW7aeEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHXbaeEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_IrMgjbaeEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHXraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHX7aeEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHYraeEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHY7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHZLaeEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHZraeEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHZ7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHaLaeEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHaraeEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHa7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHbLaeEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHbraeEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHb7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHcLaeEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHcbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHcraeEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHdLaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHdbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHdraeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHeLaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHebaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHeraeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHe7aeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHfLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHfbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHfraeEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHgLaeEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHgraeEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_IrMgRLaeEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHg7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHhLaeEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHhbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHhraeEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHiLaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHibaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHiraeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHjLaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHjbaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHjraeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHj7aeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHkLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHkbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHkraeEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHk7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHlLaeEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHlraeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHl7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHmLaeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHmraeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHm7aeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHnLaeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHnbaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHnraeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHn7aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHobaeEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHoraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IrNHo7aeEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHpbaeEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IrNHp7aeEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHqbaeEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHqraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHq7aeEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHrLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHrbaeEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHr7aeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHsLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHsbaeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHs7aeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHtLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHtbaeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHtraeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHt7aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHuLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNHubaeEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IrNHu7aeEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNHvbaeEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHvraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHv7aeEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHwLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHwbaeEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHw7aeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHxLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHxbaeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNHx7aeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHyLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHybaeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNHyraeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHy7aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNHzLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNHzbaeEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNHzraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNHz7aeEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNH0baeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH0raeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH07aeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNH1baeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH1raeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH17aeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNH2LaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNH2baeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNH2raeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNH27aeEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH3LaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH3baeEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNH37aeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH4LaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH4baeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNH47aeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH5LaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH5baeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNH5raeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNH57aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNH6LaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNH6baeEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNH67aeEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH7LaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNH7baeEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH7raeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH77aeEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNH8baeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH8raeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH87aeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNH9baeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH9raeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH97aeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNH-LaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNH-baeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNH-raeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNH-7aeEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNH_LaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNH_baeEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNH_7aeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNIALaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNIAbaeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNIA7aeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNIBLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNIBbaeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNIBraeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNIB7aeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNICLaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNICbaeEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNIC7aeEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNIDLaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_IrNIDbaeEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNIDraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNID7aeEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNIEbaeEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNIEraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNIE7aeEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_IrNIFbaeEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNIFraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IrNIF7aeEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_IrNIGLaeEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNIGbaeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_IrNIGraeEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNIG7aeEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IrNIHbaeEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNIH7aeEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNIILaeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_IrNIIbaeEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNII7aeEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_IrNIJbaeEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IrNIJraeEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_IrNIJ7aeEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_m-gAILaWEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAIbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAIraWEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAI7aWEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_m-gANLaWEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAJLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gAJbaWEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAJraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAJ7aWEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAKbaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAKraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAK7aWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gALbaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gALraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAL7aWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gAMLaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAMbaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAMraWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gANLaWEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gANbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gANraWEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAN7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAOLaWEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAOraWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAO7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAPLaWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAPraWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAP7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAQLaWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gAQbaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAQraWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAQ7aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gARLaWEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gARbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gARraWEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gASLaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gASbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gASraWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gATLaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gATbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gATraWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gAT7aWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAULaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAUbaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAUraWEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAVLaWEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAVbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAVraWEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m-gAWLaWEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAWraWEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAW7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAXLaWEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAXbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAXraWEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAYLaWEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAYraWEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAY7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAZLaWEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAZraWEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAZ7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gAaLaWEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAabaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAaraWEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAbLaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAbbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAbraWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAcLaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAcbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAcraWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gAc7aWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAdLaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAdbaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gAdraWEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAd7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAeLaWEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAeraWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAe7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAfLaWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAfraWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAf7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAgLaWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gAgbaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAgraWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAg7aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gAhLaWEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAhbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAhraWEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAiLaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAibaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAiraWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAjLaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAjbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAjraWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gAj7aWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAkLaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAkbaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAkraWEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m-gAlLaWEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAlraWEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAmLaWEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAmraWEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_m-gAnbaWEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAm7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAnbaWEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAnraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAn7aWEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAobaWEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAoraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAo7aWEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m-gApbaWEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAp7aWEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gAqbaWEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAq7aWEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gArLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gArbaWEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAr7aWEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_m-gAYraWEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAsLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gAsraWEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_m-gAVLaWEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAs7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gAtLaWEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAtbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAtraWEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAuLaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAubaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAuraWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAvLaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAvbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAvraWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gAv7aWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAwLaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAwbaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gAwraWEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAw7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAxLaWEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAxraWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAx7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAyLaWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gAyraWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gAy7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gAzLaWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gAzbaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAzraWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gAz7aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gA0baWEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnMLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gnMbaWEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnMraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnM7aWEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnNbaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnNraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnN7aWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnObaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnOraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnO7aWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gnPLaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnPbaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnPraWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gnP7aWEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnQLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnQbaWEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnQ7aWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnRLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnRbaWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnR7aWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnSLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnSbaWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gnSraWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnS7aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnTLaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnTbaWEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gnT7aWEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnULaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnUbaWEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnU7aWEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gnVbaWEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_m-gAnbaWEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnVraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnV7aWEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gnWraWEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnW7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnXLaWEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gnXraWEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnX7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnYLaWEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gnYraWEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnY7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnZLaWEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gnZraWEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnZ7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gnaLaWEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnabaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnaraWEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnbLaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnbbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnbraWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gncLaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gncbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gncraWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gnc7aWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gndLaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gndbaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gndraWEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gneLaWEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gneraWEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_m-gAVLaWEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gne7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gnfLaWEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnfbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnfraWEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gngLaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gngbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gngraWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnhLaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnhbaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnhraWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gnh7aWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gniLaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnibaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gniraWEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gni7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnjLaWEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnjraWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnj7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnkLaWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnkraWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnk7aWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnlLaWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gnlbaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnlraWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnl7aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gnmbaWEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnmraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m-gnm7aWEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnnbaWEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m-gnn7aWEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gnobaWEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnoraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gno7aWEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnpLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnpbaWEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnp7aWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnqLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnqbaWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnq7aWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnrLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnrbaWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gnrraWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnr7aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnsLaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gnsbaWEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m-gns7aWEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gntbaWEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gntraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gnt7aWEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnuLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnubaWEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnu7aWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnvLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnvbaWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnv7aWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnwLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnwbaWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gnwraWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnw7aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gnxLaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gnxbaWEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnxraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnx7aWEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnybaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnyraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gny7aWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gnzbaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gnzraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gnz7aWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gn0LaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gn0baWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gn0raWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gn07aWEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn1LaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn1baWEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gn17aWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn2LaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn2baWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gn27aWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn3LaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn3baWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gn3raWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gn37aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gn4LaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-gn4baWEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-gn47aWEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn5LaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gn5baWEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn5raWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn57aWEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gn6baWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn6raWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn67aWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gn7baWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn7raWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn77aWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gn8LaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gn8baWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gn8raWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-gn87aWEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn9LaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn9baWEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gn97aWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn-LaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn-baWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-gn-7aWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-gn_LaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-gn_baWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-gn_raWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-gn_7aWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-goALaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-goAbaWEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-goA7aWEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-goBLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_m-goBbaWEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-goBraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-goB7aWEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-goCbaWEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-goCraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-goC7aWEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_m-goDbaWEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-goDraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-goD7aWEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_m-goELaWEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-goEbaWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_m-goEraWEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-goE7aWEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m-goFbaWEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-goF7aWEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-goGLaWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m-goGbaWEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-goG7aWEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_m-goHbaWEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-goHraWEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m-goH7aWEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_zhqp8LaPEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqp8baPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqp8raPEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhqp87aPEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_zhqqBLaPEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqp9LaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhqp9baPEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqp9raPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqp97aPEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhqp-baPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqp-raPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqp-7aPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhqp_baPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqp_raPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqp_7aPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhqqALaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhqqAbaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhqqAraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhqqBLaPEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqqBbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhqqBraPEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqqB7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqqCLaPEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhqqCraPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqqC7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqqDLaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhqqDraPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqqD7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqqELaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhqqEbaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhqqEraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhqqE7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhqqFLaPEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqqFbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqqFraPEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhqqGLaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqqGbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqqGraPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhqqHLaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqqHbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhqqHraPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhqqH7aPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhqqILaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhqqIbaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhqqIraPEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhqqJLaPEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhqqJbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRALaPEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_zhrRAraPEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRBLaPEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRBbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRBraPEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRB7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRCLaPEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRCraPEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRDLaPEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRDbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRDraPEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRELaPEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrREbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrREraPEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRE7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRFLaPEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRFraPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRF7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRGLaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRGraPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRG7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRHLaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrRHbaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRHraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRH7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrRILaPEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRIbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRIraPEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRJLaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRJbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRJraPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRKLaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRKbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRKraPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrRK7aPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRLLaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRLbaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrRLraPEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRL7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRMLaPEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRMraPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRM7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRNLaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRNraPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRN7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrROLaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrRObaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrROraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRO7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRPLaPEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_zhrRPraPEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRQLaPEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRQraPEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRRLaPEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_zhrRR7aPEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRRbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRR7aPEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRSLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRSbaPEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRS7aPEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRTLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRTbaPEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_zhrRT7aPEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRUbaPEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRU7aPEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRVbaPEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRVraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRV7aPEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRWbaPEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_zhrRDLaPEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRWraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRXLaPEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_zhqqJLaPEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRXbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrRXraPEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRX7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRYLaPEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRYraPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRY7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRZLaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRZraPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRZ7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRaLaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrRabaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRaraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRa7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrRbLaPEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRbbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRbraPEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRcLaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRcbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRcraPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRdLaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRdbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRdraPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrRd7aPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrReLaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRebaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRe7aPEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRfLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrRfbaPEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRfraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRf7aPEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRgbaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRgraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRg7aPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRhbaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRhraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRh7aPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrRiLaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRibaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRiraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrRi7aPEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRjLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRjbaPEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRj7aPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRkLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRkbaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRk7aPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRlLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRlbaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrRlraPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRl7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRmLaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRmbaPEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRm7aPEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRnLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRnbaPEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRn7aPEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRobaPEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_zhrRR7aPEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRoraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRo7aPEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRpraPEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRp7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRqLaPEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRqraPEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRq7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRrLaPEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRrraPEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRr7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRsLaPEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRsraPEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRs7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrRtLaPEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRtbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRtraPEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRuLaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRubaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRuraPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRvLaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRvbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRvraPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrRv7aPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRwLaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrRwbaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRwraPEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrRxLaPEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrRxraPEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_zhqqJLaPEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRx7aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrRyLaPEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRybaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRyraPEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrRzLaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrRzbaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrRzraPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrR0LaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR0baPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrR0raPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrR07aPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrR1LaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrR1baPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrR1raPEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR17aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrR2LaPEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrR2raPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR27aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrR3LaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrR3raPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR37aPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrR4LaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrR4baPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrR4raPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrR47aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrR5baPEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR5raPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_zhrR57aPEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrR6baPEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_zhrR67aPEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrR7baPEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR7raPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrR77aPEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR8LaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrR8baPEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrR87aPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR9LaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrR9baPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrR97aPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrR-LaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrR-baPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrR-raPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrR-7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrR_LaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrR_baPEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_zhrR_7aPEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrSAbaPEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSAraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrSA7aPEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSBLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSBbaPEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrSB7aPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSCLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSCbaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrSC7aPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSDLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSDbaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrSDraPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrSD7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrSELaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrSEbaPEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSEraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSE7aPEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrSFbaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSFraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSF7aPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrSGbaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSGraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSG7aPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrSHLaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrSHbaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrSHraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrSH7aPEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSILaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSIbaPEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrSI7aPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSJLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSJbaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhrSJ7aPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSKLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSKbaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhrSKraPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrSK7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhrSLLaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhrSLbaPEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhrSL7aPEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSMLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhrSMbaPEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhrSMraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhrSM7aPEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhr4EbaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4EraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhr4E7aPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhr4FbaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4FraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhr4F7aPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhr4GLaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhr4GbaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhr4GraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhr4G7aPEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4HLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhr4HbaPEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhr4H7aPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4ILaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhr4IbaPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhr4I7aPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4JLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhr4JbaPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhr4JraPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhr4J7aPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhr4KLaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhr4KbaPEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhr4K7aPEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4LLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_zhr4LbaPEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4LraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhr4L7aPEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhr4MbaPEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4MraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhr4M7aPEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_zhr4NbaPEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4NraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhr4N7aPEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_zhr4OLaPEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhr4ObaPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_zhr4OraPEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhr4O7aPEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_zhr4PbaPEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhr4P7aPEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4QLaPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_zhr4QbaPEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhr4Q7aPEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_zhr4RbaPEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zhr4RraPEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_zhr4R7aPEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_OYjwsLaMEeSBk8ZDbVpaMQ" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwsbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjwsraMEeSBk8ZDbVpaMQ" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjws7aMEeSBk8ZDbVpaMQ" name="Agent" eSuperTypes="_OYjwxLaMEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwtLaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYjwtbaMEeSBk8ZDbVpaMQ" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwtraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjwt7aMEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjwubaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwuraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjwu7aMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjwvbaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwvraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjwv7aMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYjwwLaMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjwwbaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjwwraMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjwxLaMEeSBk8ZDbVpaMQ" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwxbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYjwxraMEeSBk8ZDbVpaMQ" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwx7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjwyLaMEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjwyraMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwy7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjwzLaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjwzraMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjwz7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjw0LaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYjw0baMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjw0raMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjw07aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYjw1LaMEeSBk8ZDbVpaMQ" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw1baMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjw1raMEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjw2LaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw2baMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjw2raMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjw3LaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw3baMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjw3raMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYjw37aMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjw4LaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjw4baMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjw4raMEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjw5LaMEeSBk8ZDbVpaMQ" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw5baMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjw5raMEeSBk8ZDbVpaMQ" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OYjw6LaMEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjw6raMEeSBk8ZDbVpaMQ" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw67aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjw7LaMEeSBk8ZDbVpaMQ" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw7baMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjw7raMEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjw8LaMEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjw8raMEeSBk8ZDbVpaMQ" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw87aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjw9LaMEeSBk8ZDbVpaMQ" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjw9raMEeSBk8ZDbVpaMQ" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw97aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYjw-LaMEeSBk8ZDbVpaMQ" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw-baMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjw-raMEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjw_LaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjw_baMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjw_raMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxALaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxAbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxAraMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYjxA7aMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxBLaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxBbaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYjxBraMEeSBk8ZDbVpaMQ" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxB7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxCLaMEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxCraMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxC7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxDLaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxDraMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxD7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxELaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYjxEbaMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxEraMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxE7aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYjxFLaMEeSBk8ZDbVpaMQ" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxFbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxFraMEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxGLaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxGbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxGraMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxHLaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxHbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxHraMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYjxH7aMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxILaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxIbaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjxIraMEeSBk8ZDbVpaMQ" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OYjxJLaMEeSBk8ZDbVpaMQ" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjxJraMEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjxKLaMEeSBk8ZDbVpaMQ" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjxKraMEeSBk8ZDbVpaMQ" name="Category" eSuperTypes="_OYjxLbaMEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxK7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjxLbaMEeSBk8ZDbVpaMQ" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxLraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjxL7aMEeSBk8ZDbVpaMQ" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjxMbaMEeSBk8ZDbVpaMQ" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxMraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjxM7aMEeSBk8ZDbVpaMQ" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OYjxNbaMEeSBk8ZDbVpaMQ" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjxN7aMEeSBk8ZDbVpaMQ" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjxObaMEeSBk8ZDbVpaMQ" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjxO7aMEeSBk8ZDbVpaMQ" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxPLaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYjxPbaMEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjxP7aMEeSBk8ZDbVpaMQ" name="CategoryValue" eSuperTypes="_OYjw8raMEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxQLaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjxQraMEeSBk8ZDbVpaMQ" name="ServiceContract" eSuperTypes="_OYjw5LaMEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxQ7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYjxRLaMEeSBk8ZDbVpaMQ" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxRbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxRraMEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxSLaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxSbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxSraMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxTLaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxTbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxTraMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYjxT7aMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxULaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxUbaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYjxUraMEeSBk8ZDbVpaMQ" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxU7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxVLaMEeSBk8ZDbVpaMQ" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxVraMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxV7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxWLaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYjxWraMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxW7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYjxXLaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYjxXbaMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxXraMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYjxX7aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYjxYbaMEeSBk8ZDbVpaMQ" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYjxYraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkXwLaMEeSBk8ZDbVpaMQ" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkXwbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkXwraMEeSBk8ZDbVpaMQ" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkXxLaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkXxbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkXxraMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkXyLaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkXybaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkXyraMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkXy7aMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkXzLaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkXzbaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkXzraMEeSBk8ZDbVpaMQ" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkXz7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkX0LaMEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkX0raMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX07aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkX1LaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkX1raMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX17aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkX2LaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkX2baMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkX2raMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkX27aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkX3LaMEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkX3raMEeSBk8ZDbVpaMQ" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX37aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkX4LaMEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkX4raMEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkX5LaMEeSBk8ZDbVpaMQ" name="Catalog" eSuperTypes="_OYjxLbaMEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX5baMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkX5raMEeSBk8ZDbVpaMQ" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkX6baMEeSBk8ZDbVpaMQ" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX6raMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkX67aMEeSBk8ZDbVpaMQ" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkX7baMEeSBk8ZDbVpaMQ" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX7raMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkX77aMEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkX8baMEeSBk8ZDbVpaMQ" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX8raMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkX87aMEeSBk8ZDbVpaMQ" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkX9baMEeSBk8ZDbVpaMQ" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX9raMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkX97aMEeSBk8ZDbVpaMQ" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX-LaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkX-baMEeSBk8ZDbVpaMQ" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkX-7aMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkX_LaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkX_baMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkX_7aMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYALaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYAbaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYAraMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYA7aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYBLaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYBbaMEeSBk8ZDbVpaMQ" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYB7aMEeSBk8ZDbVpaMQ" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkYCbaMEeSBk8ZDbVpaMQ" name="ServicesArchitecture" eSuperTypes="_OYjw5LaMEeSBk8ZDbVpaMQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYCraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYC7aMEeSBk8ZDbVpaMQ" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYDLaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYDbaMEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYD7aMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYELaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYEbaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYE7aMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYFLaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYFbaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYFraMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYF7aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYGLaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYGbaMEeSBk8ZDbVpaMQ" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYGraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYG7aMEeSBk8ZDbVpaMQ" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYHbaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYHraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYH7aMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYIbaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYIraMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYI7aMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYJLaMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYJbaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYJraMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkYKLaMEeSBk8ZDbVpaMQ" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYKbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OYkYKraMEeSBk8ZDbVpaMQ" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYLLaMEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OYkYLraMEeSBk8ZDbVpaMQ" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkYMLaMEeSBk8ZDbVpaMQ" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYMbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYMraMEeSBk8ZDbVpaMQ" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYM7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYNLaMEeSBk8ZDbVpaMQ" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYNraMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYN7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYOLaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYOraMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYO7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYPLaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYPbaMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYPraMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYP7aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYQLaMEeSBk8ZDbVpaMQ" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OYkYQraMEeSBk8ZDbVpaMQ" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkYRLaMEeSBk8ZDbVpaMQ" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYRbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYRraMEeSBk8ZDbVpaMQ" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYR7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYSLaMEeSBk8ZDbVpaMQ" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYSraMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYS7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYTLaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYTraMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYT7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYULaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYUbaMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYUraMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYU7aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYVLaMEeSBk8ZDbVpaMQ" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYVbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYVraMEeSBk8ZDbVpaMQ" key="body" value="let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYWLaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYWbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYWraMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYXLaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYXbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYXraMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYX7aMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYYLaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYYbaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYYraMEeSBk8ZDbVpaMQ" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYY7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYZLaMEeSBk8ZDbVpaMQ" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYZraMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYZ7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYaLaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYaraMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYa7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYbLaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYbbaMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYbraMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYb7aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYcLaMEeSBk8ZDbVpaMQ" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkYcraMEeSBk8ZDbVpaMQ" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYc7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYdLaMEeSBk8ZDbVpaMQ" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYdbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYdraMEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYeLaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYebaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYeraMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYfLaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYfbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYfraMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYf7aMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYgLaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYgbaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYgraMEeSBk8ZDbVpaMQ" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYg7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYhLaMEeSBk8ZDbVpaMQ" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYhraMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYh7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYiLaMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYiraMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYi7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYjLaMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYjbaMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYjraMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYj7aMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYkLaMEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkYkraMEeSBk8ZDbVpaMQ" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYk7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_OYkYlLaMEeSBk8ZDbVpaMQ" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYlbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYlraMEeSBk8ZDbVpaMQ" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYmLaMEeSBk8ZDbVpaMQ" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYmbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYmraMEeSBk8ZDbVpaMQ" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_OYkYnLaMEeSBk8ZDbVpaMQ" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYnbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OYkYnraMEeSBk8ZDbVpaMQ" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_OYkYn7aMEeSBk8ZDbVpaMQ">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYoLaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_OYkYobaMEeSBk8ZDbVpaMQ">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYoraMEeSBk8ZDbVpaMQ" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OYkYpLaMEeSBk8ZDbVpaMQ" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkYpraMEeSBk8ZDbVpaMQ" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYp7aMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_OYkYqLaMEeSBk8ZDbVpaMQ" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYqraMEeSBk8ZDbVpaMQ" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_OYkYrLaMEeSBk8ZDbVpaMQ" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OYkYrbaMEeSBk8ZDbVpaMQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_OYkYrraMEeSBk8ZDbVpaMQ" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_i148ELaCEeSONYAYyKG7iw" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148EbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148EraCEeSONYAYyKG7iw" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148E7aCEeSONYAYyKG7iw" name="Agent" eSuperTypes="_i148JLaCEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148FLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148FbaCEeSONYAYyKG7iw" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148FraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148F7aCEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148GbaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148GraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148G7aCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148HbaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148HraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148H7aCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i148ILaCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148IbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148IraCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148JLaCEeSONYAYyKG7iw" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148JbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148JraCEeSONYAYyKG7iw" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148J7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148KLaCEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148KraCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148K7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148LLaCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148LraCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148L7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148MLaCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i148MbaCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148MraCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148M7aCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148NLaCEeSONYAYyKG7iw" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148NbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148NraCEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148OLaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148ObaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148OraCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148PLaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148PbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148PraCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i148P7aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148QLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148QbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148QraCEeSONYAYyKG7iw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148RLaCEeSONYAYyKG7iw" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148RbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148RraCEeSONYAYyKG7iw" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i148SLaCEeSONYAYyKG7iw" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148SraCEeSONYAYyKG7iw" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148S7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148TLaCEeSONYAYyKG7iw" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148TbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148TraCEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148ULaCEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148UraCEeSONYAYyKG7iw" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148U7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148VLaCEeSONYAYyKG7iw" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148VraCEeSONYAYyKG7iw" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148V7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148WLaCEeSONYAYyKG7iw" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148WbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148WraCEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148XLaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148XbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148XraCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148YLaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148YbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148YraCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i148Y7aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148ZLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148ZbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148ZraCEeSONYAYyKG7iw" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148Z7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148aLaCEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148araCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148a7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148bLaCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148braCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148b7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148cLaCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i148cbaCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148craCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148c7aCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148dLaCEeSONYAYyKG7iw" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148dbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148draCEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148eLaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148ebaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148eraCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148fLaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148fbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148fraCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i148f7aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148gLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148gbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148graCEeSONYAYyKG7iw" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i148hLaCEeSONYAYyKG7iw" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148hraCEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148iLaCEeSONYAYyKG7iw" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148iraCEeSONYAYyKG7iw" name="Category" eSuperTypes="_i148jbaCEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148i7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148jbaCEeSONYAYyKG7iw" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148jraCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148j7aCEeSONYAYyKG7iw" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148kbaCEeSONYAYyKG7iw" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148kraCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148k7aCEeSONYAYyKG7iw" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i148lbaCEeSONYAYyKG7iw" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148l7aCEeSONYAYyKG7iw" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148mbaCEeSONYAYyKG7iw" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148m7aCEeSONYAYyKG7iw" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148nLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i148nbaCEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148n7aCEeSONYAYyKG7iw" name="CategoryValue" eSuperTypes="_i148UraCEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148oLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148oraCEeSONYAYyKG7iw" name="ServiceContract" eSuperTypes="_i148RLaCEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148o7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148pLaCEeSONYAYyKG7iw" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148pbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148praCEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148qLaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148qbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148qraCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148rLaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148rbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148rraCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i148r7aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148sLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148sbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148sraCEeSONYAYyKG7iw" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148s7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148tLaCEeSONYAYyKG7iw" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148traCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148t7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148uLaCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148uraCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148u7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148vLaCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i148vbaCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148vraCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i148v7aCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i148wbaCEeSONYAYyKG7iw" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148wraCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i148w7aCEeSONYAYyKG7iw" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148xLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148xbaCEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148x7aCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148yLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i148ybaCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i148y7aCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i148zLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jILaCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jIbaCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jIraCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jI7aCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15jJLaCEeSONYAYyKG7iw" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jJbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jJraCEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jKLaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jKbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jKraCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jLLaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jLbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jLraCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jL7aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jMLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jMbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jMraCEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jNLaCEeSONYAYyKG7iw" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jNbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jNraCEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jOLaCEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jOraCEeSONYAYyKG7iw" name="Catalog" eSuperTypes="_i148jbaCEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jO7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jPLaCEeSONYAYyKG7iw" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jP7aCEeSONYAYyKG7iw" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jQLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jQbaCEeSONYAYyKG7iw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jQ7aCEeSONYAYyKG7iw" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jRLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jRbaCEeSONYAYyKG7iw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jR7aCEeSONYAYyKG7iw" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jSLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jSbaCEeSONYAYyKG7iw" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jS7aCEeSONYAYyKG7iw" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jTLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15jTbaCEeSONYAYyKG7iw" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jTraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jT7aCEeSONYAYyKG7iw" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jUbaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jUraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jU7aCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jVbaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jVraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jV7aCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jWLaCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jWbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jWraCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jW7aCEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jXbaCEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jX7aCEeSONYAYyKG7iw" name="ServicesArchitecture" eSuperTypes="_i148RLaCEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jYLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15jYbaCEeSONYAYyKG7iw" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jYraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jY7aCEeSONYAYyKG7iw" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jZbaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jZraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jZ7aCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jabaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jaraCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15ja7aCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jbLaCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jbbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jbraCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15jb7aCEeSONYAYyKG7iw" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jcLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jcbaCEeSONYAYyKG7iw" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jc7aCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jdLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jdbaCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jd7aCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jeLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jebaCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jeraCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15je7aCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jfLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jfraCEeSONYAYyKG7iw" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jf7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i15jgLaCEeSONYAYyKG7iw" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jgraCEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i15jhLaCEeSONYAYyKG7iw" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jhraCEeSONYAYyKG7iw" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jh7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15jiLaCEeSONYAYyKG7iw" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jibaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jiraCEeSONYAYyKG7iw" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jjLaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jjbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jjraCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jkLaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jkbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jkraCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jk7aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jlLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jlbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jlraCEeSONYAYyKG7iw" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i15jmLaCEeSONYAYyKG7iw" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jmraCEeSONYAYyKG7iw" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jm7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15jnLaCEeSONYAYyKG7iw" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jnbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jnraCEeSONYAYyKG7iw" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15joLaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jobaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15joraCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jpLaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jpbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jpraCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jp7aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jqLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jqbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15jqraCEeSONYAYyKG7iw" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jq7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jrLaCEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jrraCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jr7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jsLaCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jsraCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15js7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jtLaCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jtbaCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jtraCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jt7aCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15juLaCEeSONYAYyKG7iw" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jubaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15juraCEeSONYAYyKG7iw" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jvLaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jvbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jvraCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jwLaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jwbaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jwraCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15jw7aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jxLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15jxbaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15jxraCEeSONYAYyKG7iw" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15jyLaCEeSONYAYyKG7iw" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jybaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15jyraCEeSONYAYyKG7iw" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jy7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15jzLaCEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15jzraCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15jz7aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15j0LaCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15j0raCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15j07aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15j1LaCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15j1baCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15j1raCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15j17aCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15j2LaCEeSONYAYyKG7iw" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15j2baCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15j2raCEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15j3LaCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15j3baCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15j3raCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15j4LaCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15j4baCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15j4raCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i15j47aCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15j5LaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i15j5baCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i15j5raCEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i15j6LaCEeSONYAYyKG7iw" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15j6baCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_i15j6raCEeSONYAYyKG7iw" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15j67aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15j7LaCEeSONYAYyKG7iw" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15j7raCEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i15j77aCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i15j8LaCEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_i15j8raCEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i16KMLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_i16KMbaCEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_i16KMraCEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i16KM7aCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_i16KNLaCEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i16KNbaCEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i16KN7aCEeSONYAYyKG7iw" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i16KObaCEeSONYAYyKG7iw" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i16KOraCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_i16KO7aCEeSONYAYyKG7iw" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i16KPbaCEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_i16KP7aCEeSONYAYyKG7iw" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_i16KQLaCEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_i16KQbaCEeSONYAYyKG7iw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_y1UsILXxEeSONYAYyKG7iw" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsIbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsIrXxEeSONYAYyKG7iw" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsI7XxEeSONYAYyKG7iw" name="Agent" eSuperTypes="_y1UsNLXxEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsJLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UsJbXxEeSONYAYyKG7iw" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsJrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsJ7XxEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsKbXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsKrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsK7XxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsLbXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsLrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsL7XxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1UsMLXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsMbXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsMrXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsNLXxEeSONYAYyKG7iw" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsNbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UsNrXxEeSONYAYyKG7iw" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsN7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsOLXxEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsOrXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsO7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsPLXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsPrXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsP7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsQLXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1UsQbXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsQrXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsQ7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UsRLXxEeSONYAYyKG7iw" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsRbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsRrXxEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsSLXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsSbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsSrXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsTLXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsTbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsTrXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1UsT7XxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsULXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsUbXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UsUrXxEeSONYAYyKG7iw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsVLXxEeSONYAYyKG7iw" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsVbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UsVrXxEeSONYAYyKG7iw" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_y1UsWLXxEeSONYAYyKG7iw" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsWrXxEeSONYAYyKG7iw" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsW7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsXLXxEeSONYAYyKG7iw" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsXbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UsXrXxEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UsYLXxEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsYrXxEeSONYAYyKG7iw" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsY7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UsZLXxEeSONYAYyKG7iw" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsZrXxEeSONYAYyKG7iw" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsZ7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UsaLXxEeSONYAYyKG7iw" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsabXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsarXxEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsbLXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsbbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsbrXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UscLXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UscbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UscrXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1Usc7XxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsdLXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsdbXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UsdrXxEeSONYAYyKG7iw" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Usd7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UseLXxEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UserXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Use7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsfLXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsfrXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Usf7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsgLXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1UsgbXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UsgrXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1Usg7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UshLXxEeSONYAYyKG7iw" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UshbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UshrXxEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsiLXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsibXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsirXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsjLXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsjbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsjrXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1Usj7XxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UskLXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UskbXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UskrXxEeSONYAYyKG7iw" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_y1UslLXxEeSONYAYyKG7iw" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UslrXxEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UsmLXxEeSONYAYyKG7iw" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsmrXxEeSONYAYyKG7iw" name="Category" eSuperTypes="_y1UsnbXxEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Usm7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsnbXxEeSONYAYyKG7iw" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsnrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1Usn7XxEeSONYAYyKG7iw" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UsobXxEeSONYAYyKG7iw" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsorXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1Uso7XxEeSONYAYyKG7iw" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_y1UspbXxEeSONYAYyKG7iw" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1Usp7XxEeSONYAYyKG7iw" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UsqbXxEeSONYAYyKG7iw" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1Usq7XxEeSONYAYyKG7iw" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsrLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UsrbXxEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1Usr7XxEeSONYAYyKG7iw" name="CategoryValue" eSuperTypes="_y1UsYrXxEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UssLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UssrXxEeSONYAYyKG7iw" name="ServiceContract" eSuperTypes="_y1UsVLXxEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Uss7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UstLXxEeSONYAYyKG7iw" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UstbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UstrXxEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsuLXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsubXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsurXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsvLXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UsvbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsvrXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1Usv7XxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UswLXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UswbXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UswrXxEeSONYAYyKG7iw" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Usw7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsxLXxEeSONYAYyKG7iw" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsxrXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Usx7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UsyLXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UsyrXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Usy7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UszLXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1UszbXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UszrXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1Usz7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1Us0bXxEeSONYAYyKG7iw" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us0rXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1Us07XxEeSONYAYyKG7iw" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us1LXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1Us1bXxEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1Us17XxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us2LXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1Us2bXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1Us27XxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us3LXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1Us3bXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1Us3rXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1Us37XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1Us4LXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1Us4bXxEeSONYAYyKG7iw" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us4rXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1Us47XxEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1Us5bXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us5rXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1Us57XxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1Us6bXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us6rXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1Us67XxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1Us7LXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1Us7bXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1Us7rXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1Us77XxEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1Us8bXxEeSONYAYyKG7iw" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us8rXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1Us87XxEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1Us9bXxEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1Us97XxEeSONYAYyKG7iw" name="Catalog" eSuperTypes="_y1UsnbXxEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us-LXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1Us-bXxEeSONYAYyKG7iw" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1Us_LXxEeSONYAYyKG7iw" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1Us_bXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1Us_rXxEeSONYAYyKG7iw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UtALXxEeSONYAYyKG7iw" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UtAbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UtArXxEeSONYAYyKG7iw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UtBLXxEeSONYAYyKG7iw" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UtBbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UtBrXxEeSONYAYyKG7iw" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1UtCLXxEeSONYAYyKG7iw" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UtCbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1UtCrXxEeSONYAYyKG7iw" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UtC7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UtDLXxEeSONYAYyKG7iw" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UtDrXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UtD7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UtELXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1UtErXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1UtE7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1UtFLXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1UtFbXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UtFrXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1UtF7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1UtGLXxEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1VTMLXxEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1VTMrXxEeSONYAYyKG7iw" name="ServicesArchitecture" eSuperTypes="_y1UsVLXxEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTM7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTNLXxEeSONYAYyKG7iw" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTNbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTNrXxEeSONYAYyKG7iw" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTOLXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTObXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTOrXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTPLXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTPbXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTPrXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTP7XxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTQLXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTQbXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTQrXxEeSONYAYyKG7iw" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTQ7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTRLXxEeSONYAYyKG7iw" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTRrXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTR7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTSLXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTSrXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTS7XxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTTLXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTTbXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTTrXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTT7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1VTUbXxEeSONYAYyKG7iw" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTUrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_y1VTU7XxEeSONYAYyKG7iw" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1VTVbXxEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_y1VTV7XxEeSONYAYyKG7iw" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1VTWbXxEeSONYAYyKG7iw" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTWrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTW7XxEeSONYAYyKG7iw" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTXLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTXbXxEeSONYAYyKG7iw" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTX7XxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTYLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTYbXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTY7XxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTZLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTZbXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTZrXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTZ7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTaLXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1VTabXxEeSONYAYyKG7iw" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_y1VTa7XxEeSONYAYyKG7iw" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1VTbbXxEeSONYAYyKG7iw" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTbrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTb7XxEeSONYAYyKG7iw" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTcLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTcbXxEeSONYAYyKG7iw" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTc7XxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTdLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTdbXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTd7XxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTeLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTebXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTerXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTe7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTfLXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTfbXxEeSONYAYyKG7iw" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTfrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTf7XxEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTgbXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTgrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTg7XxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VThbXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VThrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTh7XxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTiLXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTibXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTirXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTi7XxEeSONYAYyKG7iw" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTjLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTjbXxEeSONYAYyKG7iw" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTj7XxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTkLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTkbXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTk7XxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTlLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTlbXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTlrXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTl7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTmLXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1VTmbXxEeSONYAYyKG7iw" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1VTm7XxEeSONYAYyKG7iw" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTnLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTnbXxEeSONYAYyKG7iw" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTnrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTn7XxEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTobXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTorXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTo7XxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTpbXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTprXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTp7XxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTqLXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTqbXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTqrXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTq7XxEeSONYAYyKG7iw" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTrLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTrbXxEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTr7XxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTsLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTsbXxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTs7XxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTtLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTtbXxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTtrXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTt7XxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTuLXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1VTubXxEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1VTu7XxEeSONYAYyKG7iw" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTvLXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_y1VTvbXxEeSONYAYyKG7iw" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTvrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTv7XxEeSONYAYyKG7iw" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTwbXxEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTwrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTw7XxEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_y1VTxbXxEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VTxrXxEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y1VTx7XxEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_y1VTyLXxEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTybXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_y1VTyrXxEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1VTy7XxEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_y1VTzbXxEeSONYAYyKG7iw" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1VTz7XxEeSONYAYyKG7iw" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VT0LXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_y1VT0bXxEeSONYAYyKG7iw" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1VT07XxEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_y1VT1bXxEeSONYAYyKG7iw" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y1VT1rXxEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_y1VT17XxEeSONYAYyKG7iw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_MrEe8LXuEeSONYAYyKG7iw" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEe8bXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEe8rXuEeSONYAYyKG7iw" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrEe87XuEeSONYAYyKG7iw" name="Agent" eSuperTypes="_MrEfBLXuEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEe9LXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrEe9bXuEeSONYAYyKG7iw" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEe9rXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEe97XuEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrEe-bXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEe-rXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEe-7XuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrEe_bXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEe_rXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEe_7XuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrEfALXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrEfAbXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrEfArXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrEfBLXuEeSONYAYyKG7iw" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEfBbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrEfBrXuEeSONYAYyKG7iw" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEfB7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEfCLXuEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrEfCrXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEfC7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEfDLXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrEfDrXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEfD7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEfELXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrEfEbXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrEfErXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrEfE7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrEfFLXuEeSONYAYyKG7iw" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEfFbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEfFrXuEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrEfGLXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEfGbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEfGrXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrEfHLXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEfHbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrEfHrXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrEfH7XuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrEfILXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrEfIbXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrEfIrXuEeSONYAYyKG7iw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrEfJLXuEeSONYAYyKG7iw" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrEfJbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrEfJrXuEeSONYAYyKG7iw" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MrEfKLXuEeSONYAYyKG7iw" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrEfKrXuEeSONYAYyKG7iw" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGALXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGAbXuEeSONYAYyKG7iw" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGArXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGA7XuEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGBbXuEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGB7XuEeSONYAYyKG7iw" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGCLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGCbXuEeSONYAYyKG7iw" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGC7XuEeSONYAYyKG7iw" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGDLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGDbXuEeSONYAYyKG7iw" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGDrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGD7XuEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGEbXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGErXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGE7XuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGFbXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGFrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGF7XuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGGLXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGGbXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGGrXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGG7XuEeSONYAYyKG7iw" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGHLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGHbXuEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGH7XuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGILXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGIbXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGI7XuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGJLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGJbXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGJrXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGJ7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGKLXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGKbXuEeSONYAYyKG7iw" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGKrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGK7XuEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGLbXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGLrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGL7XuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGMbXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGMrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGM7XuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGNLXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGNbXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGNrXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGN7XuEeSONYAYyKG7iw" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MrFGObXuEeSONYAYyKG7iw" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGO7XuEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGPbXuEeSONYAYyKG7iw" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGP7XuEeSONYAYyKG7iw" name="Category" eSuperTypes="_MrFGQrXuEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGQLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGQrXuEeSONYAYyKG7iw" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGQ7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGRLXuEeSONYAYyKG7iw" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGRrXuEeSONYAYyKG7iw" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGR7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGSLXuEeSONYAYyKG7iw" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MrFGSrXuEeSONYAYyKG7iw" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGTLXuEeSONYAYyKG7iw" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGTrXuEeSONYAYyKG7iw" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGULXuEeSONYAYyKG7iw" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGUbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGUrXuEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGVLXuEeSONYAYyKG7iw" name="CategoryValue" eSuperTypes="_MrFGB7XuEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGVbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGV7XuEeSONYAYyKG7iw" name="ServiceContract" eSuperTypes="_MrEfJLXuEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGWLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGWbXuEeSONYAYyKG7iw" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGWrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGW7XuEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGXbXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGXrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGX7XuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGYbXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGYrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGY7XuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGZLXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGZbXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGZrXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGZ7XuEeSONYAYyKG7iw" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGaLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGabXuEeSONYAYyKG7iw" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGa7XuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGbLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGbbXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGb7XuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGcLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGcbXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGcrXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGc7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGdLXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGdrXuEeSONYAYyKG7iw" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGd7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGeLXuEeSONYAYyKG7iw" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGebXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGerXuEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGfLXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGfbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGfrXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGgLXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGgbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGgrXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGg7XuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGhLXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGhbXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGhrXuEeSONYAYyKG7iw" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGh7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGiLXuEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGirXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGi7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGjLXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGjrXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGj7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGkLXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGkbXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGkrXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGk7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGlLXuEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGlrXuEeSONYAYyKG7iw" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGl7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGmLXuEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGmrXuEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGnLXuEeSONYAYyKG7iw" name="Catalog" eSuperTypes="_MrFGQrXuEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGnbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGnrXuEeSONYAYyKG7iw" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGobXuEeSONYAYyKG7iw" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGorXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGo7XuEeSONYAYyKG7iw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGpbXuEeSONYAYyKG7iw" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGprXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGp7XuEeSONYAYyKG7iw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGqbXuEeSONYAYyKG7iw" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGqrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGq7XuEeSONYAYyKG7iw" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGrbXuEeSONYAYyKG7iw" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGrrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGr7XuEeSONYAYyKG7iw" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGsLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGsbXuEeSONYAYyKG7iw" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGs7XuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGtLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGtbXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGt7XuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGuLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGubXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGurXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGu7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGvLXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGvbXuEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFGv7XuEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFGwbXuEeSONYAYyKG7iw" name="ServicesArchitecture" eSuperTypes="_MrEfJLXuEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGwrXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFGw7XuEeSONYAYyKG7iw" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGxLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGxbXuEeSONYAYyKG7iw" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGx7XuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGyLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGybXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFGy7XuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFGzLXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFGzbXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFGzrXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFGz7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFG0LXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFG0bXuEeSONYAYyKG7iw" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG0rXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFG07XuEeSONYAYyKG7iw" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFG1bXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG1rXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFG17XuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFG2bXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG2rXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFG27XuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFG3LXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFG3bXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFG3rXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFG4LXuEeSONYAYyKG7iw" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG4bXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MrFG4rXuEeSONYAYyKG7iw" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFG5LXuEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MrFG5rXuEeSONYAYyKG7iw" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFG6LXuEeSONYAYyKG7iw" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG6bXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFG6rXuEeSONYAYyKG7iw" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG67XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFG7LXuEeSONYAYyKG7iw" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFG7rXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG77XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFG8LXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFG8rXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG87XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFG9LXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFG9bXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFG9rXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFG97XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFG-LXuEeSONYAYyKG7iw" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MrFG-rXuEeSONYAYyKG7iw" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFG_LXuEeSONYAYyKG7iw" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG_bXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFG_rXuEeSONYAYyKG7iw" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFG_7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHALXuEeSONYAYyKG7iw" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHArXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHA7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHBLXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHBrXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHB7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHCLXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFHCbXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHCrXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHC7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFHDLXuEeSONYAYyKG7iw" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHDbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHDrXuEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHELXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHEbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHErXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHFLXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHFbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHFrXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFHF7XuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHGLXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHGbXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFHGrXuEeSONYAYyKG7iw" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHG7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHHLXuEeSONYAYyKG7iw" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHHrXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHH7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHILXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHIrXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHI7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHJLXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFHJbXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHJrXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHJ7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFHKLXuEeSONYAYyKG7iw" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFHKrXuEeSONYAYyKG7iw" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHK7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFHLLXuEeSONYAYyKG7iw" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHLbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHLrXuEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHMLXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHMbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHMrXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHNLXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHNbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHNrXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFHN7XuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHOLXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHObXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFHOrXuEeSONYAYyKG7iw" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHO7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHPLXuEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHPrXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHP7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHQLXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHQrXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHQ7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHRLXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFHRbXuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHRrXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHR7XuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFHSLXuEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFHSrXuEeSONYAYyKG7iw" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHS7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_MrFHTLXuEeSONYAYyKG7iw" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHTbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHTrXuEeSONYAYyKG7iw" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHULXuEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHUbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHUrXuEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_MrFHVLXuEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHVbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MrFHVrXuEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_MrFHV7XuEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHWLXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_MrFHWbXuEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFHWrXuEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MrFHXLXuEeSONYAYyKG7iw" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFHXrXuEeSONYAYyKG7iw" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHX7XuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MrFHYLXuEeSONYAYyKG7iw" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFHYrXuEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MrFHZLXuEeSONYAYyKG7iw" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MrFHZbXuEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MrFHZrXuEeSONYAYyKG7iw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_iRoGwLXlEeSONYAYyKG7iw" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoGwbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoGwrXlEeSONYAYyKG7iw" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoGw7XlEeSONYAYyKG7iw" name="Agent" eSuperTypes="_iRoG1LXlEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoGxLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRoGxbXlEeSONYAYyKG7iw" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoGxrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoGx7XlEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRoGybXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoGyrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoGy7XlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRoGzbXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoGzrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoGz7XlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRoG0LXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoG0bXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoG0rXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoG1LXlEeSONYAYyKG7iw" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoG1bXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRoG1rXlEeSONYAYyKG7iw" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoG17XlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoG2LXlEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRoG2rXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoG27XlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoG3LXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRoG3rXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoG37XlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoG4LXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRoG4bXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoG4rXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoG47XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRoG5LXlEeSONYAYyKG7iw" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoG5bXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoG5rXlEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRoG6LXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoG6bXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoG6rXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRoG7LXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoG7bXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoG7rXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRoG77XlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoG8LXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoG8bXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRoG8rXlEeSONYAYyKG7iw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoG9LXlEeSONYAYyKG7iw" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot0LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRot0bXlEeSONYAYyKG7iw" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iRot07XlEeSONYAYyKG7iw" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRot1bXlEeSONYAYyKG7iw" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot1rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRot17XlEeSONYAYyKG7iw" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot2LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRot2bXlEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRot27XlEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRot3bXlEeSONYAYyKG7iw" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot3rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRot37XlEeSONYAYyKG7iw" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRot4bXlEeSONYAYyKG7iw" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot4rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRot47XlEeSONYAYyKG7iw" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot5LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRot5bXlEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRot57XlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot6LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRot6bXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRot67XlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot7LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRot7bXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRot7rXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRot77XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRot8LXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRot8bXlEeSONYAYyKG7iw" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot8rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRot87XlEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRot9bXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot9rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRot97XlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRot-bXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRot-rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRot-7XlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRot_LXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRot_bXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRot_rXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRot_7XlEeSONYAYyKG7iw" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouALXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouAbXlEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouA7XlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouBLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouBbXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouB7XlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouCLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouCbXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRouCrXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouC7XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouDLXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouDbXlEeSONYAYyKG7iw" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iRouD7XlEeSONYAYyKG7iw" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouEbXlEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouE7XlEeSONYAYyKG7iw" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouFbXlEeSONYAYyKG7iw" name="Category" eSuperTypes="_iRouGLXlEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouFrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouGLXlEeSONYAYyKG7iw" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouGbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouGrXlEeSONYAYyKG7iw" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouHLXlEeSONYAYyKG7iw" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouHbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouHrXlEeSONYAYyKG7iw" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iRouILXlEeSONYAYyKG7iw" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouIrXlEeSONYAYyKG7iw" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouJLXlEeSONYAYyKG7iw" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouJrXlEeSONYAYyKG7iw" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouJ7XlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouKLXlEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouKrXlEeSONYAYyKG7iw" name="CategoryValue" eSuperTypes="_iRot3bXlEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouK7XlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouLbXlEeSONYAYyKG7iw" name="ServiceContract" eSuperTypes="_iRoG9LXlEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouLrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRouL7XlEeSONYAYyKG7iw" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouMLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouMbXlEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouM7XlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouNLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouNbXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouN7XlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouOLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouObXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRouOrXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouO7XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouPLXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRouPbXlEeSONYAYyKG7iw" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouPrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouP7XlEeSONYAYyKG7iw" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouQbXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouQrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouQ7XlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouRbXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouRrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouR7XlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRouSLXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouSbXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouSrXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouTLXlEeSONYAYyKG7iw" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouTbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRouTrXlEeSONYAYyKG7iw" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouT7XlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouULXlEeSONYAYyKG7iw" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouUrXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouU7XlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouVLXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouVrXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouV7XlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouWLXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRouWbXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouWrXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouW7XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRouXLXlEeSONYAYyKG7iw" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouXbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouXrXlEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouYLXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouYbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouYrXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouZLXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouZbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouZrXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRouZ7XlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouaLXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouabXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouarXlEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoubLXlEeSONYAYyKG7iw" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoubbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRoubrXlEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRoucLXlEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoucrXlEeSONYAYyKG7iw" name="Catalog" eSuperTypes="_iRouGLXlEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouc7XlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRoudLXlEeSONYAYyKG7iw" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoud7XlEeSONYAYyKG7iw" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoueLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouebXlEeSONYAYyKG7iw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoue7XlEeSONYAYyKG7iw" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoufLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRoufbXlEeSONYAYyKG7iw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouf7XlEeSONYAYyKG7iw" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRougLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRougbXlEeSONYAYyKG7iw" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoug7XlEeSONYAYyKG7iw" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouhLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRouhbXlEeSONYAYyKG7iw" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouhrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouh7XlEeSONYAYyKG7iw" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouibXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouirXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoui7XlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRoujbXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoujrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouj7XlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRoukLXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoukbXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoukrXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouk7XlEeSONYAYyKG7iw" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRoulbXlEeSONYAYyKG7iw" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoul7XlEeSONYAYyKG7iw" name="ServicesArchitecture" eSuperTypes="_iRoG9LXlEeSONYAYyKG7iw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoumLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRoumbXlEeSONYAYyKG7iw" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRoumrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoum7XlEeSONYAYyKG7iw" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRounbXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRounrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRoun7XlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouobXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouorXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouo7XlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRoupLXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoupbXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouprXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRoup7XlEeSONYAYyKG7iw" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouqLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouqbXlEeSONYAYyKG7iw" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouq7XlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRourLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRourbXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRour7XlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRousLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRousbXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRousrXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRous7XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRoutLXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRoutrXlEeSONYAYyKG7iw" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRout7XlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iRouuLXlEeSONYAYyKG7iw" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouurXlEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iRouvLXlEeSONYAYyKG7iw" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRouvrXlEeSONYAYyKG7iw" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouv7XlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRouwLXlEeSONYAYyKG7iw" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouwbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouwrXlEeSONYAYyKG7iw" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouxLXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouxbXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouxrXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRouyLXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRouybXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRouyrXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRouy7XlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouzLXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRouzbXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRouzrXlEeSONYAYyKG7iw" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iRpU4bXlEeSONYAYyKG7iw" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRpU47XlEeSONYAYyKG7iw" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpU5LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRpU5bXlEeSONYAYyKG7iw" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpU5rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpU57XlEeSONYAYyKG7iw" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpU6bXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpU6rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpU67XlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpU7bXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpU7rXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpU77XlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRpU8LXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpU8bXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpU8rXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRpU87XlEeSONYAYyKG7iw" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpU9LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpU9bXlEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpU97XlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpU-LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpU-bXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpU-7XlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpU_LXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpU_bXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRpU_rXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpU_7XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVALXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRpVAbXlEeSONYAYyKG7iw" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVArXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVA7XlEeSONYAYyKG7iw" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpVBbXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVBrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVB7XlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpVCbXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVCrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVC7XlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRpVDLXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVDbXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVDrXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRpVD7XlEeSONYAYyKG7iw" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRpVEbXlEeSONYAYyKG7iw" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVErXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRpVE7XlEeSONYAYyKG7iw" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVFLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVFbXlEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpVF7XlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVGLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVGbXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpVG7XlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVHLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVHbXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRpVHrXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVH7XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVILXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRpVIbXlEeSONYAYyKG7iw" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVIrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVI7XlEeSONYAYyKG7iw" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpVJbXlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVJrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVJ7XlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpVKbXlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVKrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVK7XlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRpVLLXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVLbXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVLrXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRpVL7XlEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRpVMbXlEeSONYAYyKG7iw" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVMrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iRpVM7XlEeSONYAYyKG7iw" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVNLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVNbXlEeSONYAYyKG7iw" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpVN7XlEeSONYAYyKG7iw" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVOLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVObXlEeSONYAYyKG7iw" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iRpVO7XlEeSONYAYyKG7iw" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVPLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iRpVPbXlEeSONYAYyKG7iw" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iRpVPrXlEeSONYAYyKG7iw">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVP7XlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iRpVQLXlEeSONYAYyKG7iw">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRpVQbXlEeSONYAYyKG7iw" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iRpVQ7XlEeSONYAYyKG7iw" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRpVRbXlEeSONYAYyKG7iw" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVRrXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iRpVR7XlEeSONYAYyKG7iw" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRpVSbXlEeSONYAYyKG7iw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iRpVS7XlEeSONYAYyKG7iw" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iRpVTLXlEeSONYAYyKG7iw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iRpVTbXlEeSONYAYyKG7iw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_ysA88LXiEeS4dM3AOAUJZg" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA88bXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA88rXiEeS4dM3AOAUJZg" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysA887XiEeS4dM3AOAUJZg" name="Agent" eSuperTypes="_ysA9BLXiEeS4dM3AOAUJZg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA89LXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysA89bXiEeS4dM3AOAUJZg" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA89rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA897XiEeS4dM3AOAUJZg" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysA8-bXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA8-rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA8-7XiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysA8_bXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA8_rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA8_7XiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysA9ALXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysA9AbXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysA9ArXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysA9BLXiEeS4dM3AOAUJZg" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9BbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysA9BrXiEeS4dM3AOAUJZg" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9B7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA9CLXiEeS4dM3AOAUJZg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysA9CrXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9C7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA9DLXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysA9DrXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9D7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA9ELXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysA9EbXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysA9ErXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysA9E7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysA9FLXiEeS4dM3AOAUJZg" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9FbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA9FrXiEeS4dM3AOAUJZg" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysA9GLXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9GbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA9GrXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysA9HLXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9HbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysA9HrXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysA9H7XiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysA9ILXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysA9IbXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysA9IrXiEeS4dM3AOAUJZg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysA9JLXiEeS4dM3AOAUJZg" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9JbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysA9JrXiEeS4dM3AOAUJZg" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ysA9KLXiEeS4dM3AOAUJZg" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysA9KrXiEeS4dM3AOAUJZg" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9K7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysA9LLXiEeS4dM3AOAUJZg" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9LbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysA9LrXiEeS4dM3AOAUJZg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysA9MLXiEeS4dM3AOAUJZg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysA9MrXiEeS4dM3AOAUJZg" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9M7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysA9NLXiEeS4dM3AOAUJZg" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysA9NrXiEeS4dM3AOAUJZg" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysA9N7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBkALXiEeS4dM3AOAUJZg" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkAbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkArXiEeS4dM3AOAUJZg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkBLXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkBbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkBrXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkCLXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkCbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkCrXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkC7XiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkDLXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkDbXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBkDrXiEeS4dM3AOAUJZg" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkD7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkELXiEeS4dM3AOAUJZg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkErXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkE7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkFLXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkFrXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkF7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkGLXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkGbXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkGrXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkG7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBkHLXiEeS4dM3AOAUJZg" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkHbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkHrXiEeS4dM3AOAUJZg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkILXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkIbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkIrXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkJLXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkJbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkJrXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkJ7XiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkKLXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkKbXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkKrXiEeS4dM3AOAUJZg" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ysBkLLXiEeS4dM3AOAUJZg" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkLrXiEeS4dM3AOAUJZg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkMLXiEeS4dM3AOAUJZg" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkMrXiEeS4dM3AOAUJZg" name="Category" eSuperTypes="_ysBkNbXiEeS4dM3AOAUJZg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkM7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkNbXiEeS4dM3AOAUJZg" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkNrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkN7XiEeS4dM3AOAUJZg" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkObXiEeS4dM3AOAUJZg" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkOrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkO7XiEeS4dM3AOAUJZg" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ysBkPbXiEeS4dM3AOAUJZg" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkP7XiEeS4dM3AOAUJZg" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkQbXiEeS4dM3AOAUJZg" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkQ7XiEeS4dM3AOAUJZg" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkRLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkRbXiEeS4dM3AOAUJZg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkR7XiEeS4dM3AOAUJZg" name="CategoryValue" eSuperTypes="_ysA9MrXiEeS4dM3AOAUJZg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkSLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkSrXiEeS4dM3AOAUJZg" name="ServiceContract" eSuperTypes="_ysA9JLXiEeS4dM3AOAUJZg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkS7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBkTLXiEeS4dM3AOAUJZg" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkTbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkTrXiEeS4dM3AOAUJZg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkULXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkUbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkUrXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkVLXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkVbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkVrXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkV7XiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkWLXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkWbXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBkWrXiEeS4dM3AOAUJZg" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkW7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkXLXiEeS4dM3AOAUJZg" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkXrXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkX7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkYLXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkYrXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkY7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkZLXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkZbXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkZrXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkZ7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkabXiEeS4dM3AOAUJZg" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkarXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBka7XiEeS4dM3AOAUJZg" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkbLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkbbXiEeS4dM3AOAUJZg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkb7XiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkcLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkcbXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkc7XiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkdLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkdbXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkdrXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkd7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkeLXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBkebXiEeS4dM3AOAUJZg" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkerXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBke7XiEeS4dM3AOAUJZg" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkfbXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkfrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkf7XiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkgbXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkgrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkg7XiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkhLXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkhbXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkhrXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkh7XiEeS4dM3AOAUJZg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkibXiEeS4dM3AOAUJZg" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkirXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBki7XiEeS4dM3AOAUJZg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkjbXiEeS4dM3AOAUJZg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkj7XiEeS4dM3AOAUJZg" name="Catalog" eSuperTypes="_ysBkNbXiEeS4dM3AOAUJZg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkkLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkkbXiEeS4dM3AOAUJZg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBklLXiEeS4dM3AOAUJZg" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBklbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBklrXiEeS4dM3AOAUJZg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkmLXiEeS4dM3AOAUJZg" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkmbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBkmrXiEeS4dM3AOAUJZg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBknLXiEeS4dM3AOAUJZg" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBknbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBknrXiEeS4dM3AOAUJZg" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBkoLXiEeS4dM3AOAUJZg" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkobXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBkorXiEeS4dM3AOAUJZg" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBko7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkpLXiEeS4dM3AOAUJZg" key="body" value="--if self.base_Interface.oclIsUndefined()&#xD;&#xA;--then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;--&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;--)&#xD;&#xA;--else &#xD;&#xA;--&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;--&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;--&#x9;)&#xD;&#xA;--endif&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkprXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkp7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkqLXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkqrXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkq7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkrLXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkrbXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkrrXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkr7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBksLXiEeS4dM3AOAUJZg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBksrXiEeS4dM3AOAUJZg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBktLXiEeS4dM3AOAUJZg" name="ServicesArchitecture" eSuperTypes="_ysA9JLXiEeS4dM3AOAUJZg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBktbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBktrXiEeS4dM3AOAUJZg" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkt7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkuLXiEeS4dM3AOAUJZg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkurXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBku7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkvLXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkvrXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkv7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkwLXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkwbXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkwrXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBkw7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBkxLXiEeS4dM3AOAUJZg" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkxbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkxrXiEeS4dM3AOAUJZg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkyLXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkybXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkyrXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBkzLXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBkzbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBkzrXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBkz7XiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBk0LXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBk0bXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBk07XiEeS4dM3AOAUJZg" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk1LXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ysBk1bXiEeS4dM3AOAUJZg" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBk17XiEeS4dM3AOAUJZg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ysBk2bXiEeS4dM3AOAUJZg" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBk27XiEeS4dM3AOAUJZg" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk3LXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBk3bXiEeS4dM3AOAUJZg" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk3rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBk37XiEeS4dM3AOAUJZg" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBk4bXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk4rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBk47XiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBk5bXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk5rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBk57XiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBk6LXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBk6bXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBk6rXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBk67XiEeS4dM3AOAUJZg" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ysBk7bXiEeS4dM3AOAUJZg" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBk77XiEeS4dM3AOAUJZg" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk8LXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBk8bXiEeS4dM3AOAUJZg" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk8rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBk87XiEeS4dM3AOAUJZg" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBk9bXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk9rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBk97XiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBk-bXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBk-rXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBk-7XiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBk_LXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBk_bXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBk_rXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBk_7XiEeS4dM3AOAUJZg" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlALXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlAbXiEeS4dM3AOAUJZg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBlA7XiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlBLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlBbXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBlB7XiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlCLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlCbXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBlCrXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBlC7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBlDLXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBlDbXiEeS4dM3AOAUJZg" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlDrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlD7XiEeS4dM3AOAUJZg" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBlEbXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlErXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlE7XiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBlFbXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlFrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlF7XiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBlGLXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBlGbXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBlGrXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysBlG7XiEeS4dM3AOAUJZg" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysBlHbXiEeS4dM3AOAUJZg" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlHrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBlH7XiEeS4dM3AOAUJZg" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlILXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlIbXiEeS4dM3AOAUJZg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBlI7XiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlJLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlJbXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBlJ7XiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlKLXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlKbXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysBlKrXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBlK7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysBlLLXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysBlLbXiEeS4dM3AOAUJZg" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlLrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlL7XiEeS4dM3AOAUJZg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysBlMbXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysBlMrXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysBlM7XiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysCLELXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCLEbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCLErXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysCLE7XiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysCLFLXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysCLFbXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysCLFrXiEeS4dM3AOAUJZg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysCLGLXiEeS4dM3AOAUJZg" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCLGbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ysCLGrXiEeS4dM3AOAUJZg" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCLG7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCLHLXiEeS4dM3AOAUJZg" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysCLHrXiEeS4dM3AOAUJZg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCLH7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCLILXiEeS4dM3AOAUJZg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ysCLIrXiEeS4dM3AOAUJZg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCLI7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCLJLXiEeS4dM3AOAUJZg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ysCLJbXiEeS4dM3AOAUJZg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysCLJrXiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ysCLJ7XiEeS4dM3AOAUJZg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysCLKLXiEeS4dM3AOAUJZg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ysCLKrXiEeS4dM3AOAUJZg" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysCLLLXiEeS4dM3AOAUJZg" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCLLbXiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ysCLLrXiEeS4dM3AOAUJZg" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysCLMLXiEeS4dM3AOAUJZg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ysCLMrXiEeS4dM3AOAUJZg" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCLM7XiEeS4dM3AOAUJZg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ysCLNLXiEeS4dM3AOAUJZg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_vqTwMLXGEeSFVpyplf5ShA" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwMbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwMrXGEeSFVpyplf5ShA" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwM7XGEeSFVpyplf5ShA" name="Agent" eSuperTypes="_vqTwRLXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwNLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqTwNbXGEeSFVpyplf5ShA" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwNrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwN7XGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwObXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwOrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwO7XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwPbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwPrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwP7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqTwQLXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwQbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwQrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwRLXGEeSFVpyplf5ShA" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwRbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqTwRrXGEeSFVpyplf5ShA" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwR7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwSLXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwSrXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwS7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwTLXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwTrXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwT7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwULXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqTwUbXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwUrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwU7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqTwVLXGEeSFVpyplf5ShA" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwVbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwVrXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwWLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwWbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwWrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwXLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwXbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwXrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqTwX7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwYLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwYbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwYrXGEeSFVpyplf5ShA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwZLXGEeSFVpyplf5ShA" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwZbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwZrXGEeSFVpyplf5ShA" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vqTwaLXGEeSFVpyplf5ShA" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwarXGEeSFVpyplf5ShA" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwa7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwbLXGEeSFVpyplf5ShA" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwbbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwbrXGEeSFVpyplf5ShA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwcLXGEeSFVpyplf5ShA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwcrXGEeSFVpyplf5ShA" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwc7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwdLXGEeSFVpyplf5ShA" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwdrXGEeSFVpyplf5ShA" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwd7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqTweLXGEeSFVpyplf5ShA" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwebXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwerXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwfLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwfbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwfrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwgLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwgbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwgrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqTwg7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwhLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwhbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqTwhrXGEeSFVpyplf5ShA" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwh7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwiLXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwirXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwi7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwjLXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwjrXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwj7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwkLXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqTwkbXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwkrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwk7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqTwlLXGEeSFVpyplf5ShA" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwlbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwlrXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwmLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwmbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwmrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwnLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwnbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwnrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqTwn7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwoLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqTwobXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTworXGEeSFVpyplf5ShA" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vqTwpLXGEeSFVpyplf5ShA" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwprXGEeSFVpyplf5ShA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwqLXGEeSFVpyplf5ShA" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwqrXGEeSFVpyplf5ShA" name="Category" eSuperTypes="_vqTwrbXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwq7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwrbXGEeSFVpyplf5ShA" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwrrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwr7XGEeSFVpyplf5ShA" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwsbXGEeSFVpyplf5ShA" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwsrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTws7XGEeSFVpyplf5ShA" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vqTwtbXGEeSFVpyplf5ShA" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwt7XGEeSFVpyplf5ShA" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwubXGEeSFVpyplf5ShA" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwu7XGEeSFVpyplf5ShA" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwvLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqTwvbXGEeSFVpyplf5ShA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwv7XGEeSFVpyplf5ShA" name="CategoryValue" eSuperTypes="_vqTwcrXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwwLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqTwwrXGEeSFVpyplf5ShA" name="ServiceContract" eSuperTypes="_vqTwZLXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTww7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqTwxLXGEeSFVpyplf5ShA" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwxbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwxrXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwyLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqTwybXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqTwyrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqTwzLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXQLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXQbXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUXQrXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXQ7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXRLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUXRbXGEeSFVpyplf5ShA" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXRrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXR7XGEeSFVpyplf5ShA" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXSbXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXSrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXS7XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXTbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXTrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXT7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUXULXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXUbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXUrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXVLXGEeSFVpyplf5ShA" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXVbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUXVrXGEeSFVpyplf5ShA" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXV7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXWLXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXWrXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXW7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXXLXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXXrXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXX7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXYLXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUXYbXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXYrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXY7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUXZLXGEeSFVpyplf5ShA" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXZbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXZrXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXaLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXabXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXarXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXbLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXbbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXbrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUXb7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXcLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXcbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXcrXGEeSFVpyplf5ShA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXdLXGEeSFVpyplf5ShA" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXdbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXdrXGEeSFVpyplf5ShA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXeLXGEeSFVpyplf5ShA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXerXGEeSFVpyplf5ShA" name="Catalog" eSuperTypes="_vqTwrbXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXe7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXfLXGEeSFVpyplf5ShA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXf7XGEeSFVpyplf5ShA" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXgLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXgbXGEeSFVpyplf5ShA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXg7XGEeSFVpyplf5ShA" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXhLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXhbXGEeSFVpyplf5ShA" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXh7XGEeSFVpyplf5ShA" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXiLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXibXGEeSFVpyplf5ShA" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXi7XGEeSFVpyplf5ShA" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXjLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUXjbXGEeSFVpyplf5ShA" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXjrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXj7XGEeSFVpyplf5ShA" key="body" value="--if self.base_Interface.oclIsUndefined()&#xD;&#xA;--then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;--&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;--)&#xD;&#xA;--else &#xD;&#xA;--&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;--&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;--&#x9;)&#xD;&#xA;--endif&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXkbXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXkrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXk7XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXlbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXlrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXl7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUXmLXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXmbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXmrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXm7XGEeSFVpyplf5ShA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXnbXGEeSFVpyplf5ShA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXn7XGEeSFVpyplf5ShA" name="ServicesArchitecture" eSuperTypes="_vqTwZLXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXoLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUXobXGEeSFVpyplf5ShA" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXorXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXo7XGEeSFVpyplf5ShA" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXpbXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXprXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXp7XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXqbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXqrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXq7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUXrLXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXrbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXrrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUXr7XGEeSFVpyplf5ShA" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXsLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXsbXGEeSFVpyplf5ShA" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXs7XGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXtLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXtbXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXt7XGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXuLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXubXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUXurXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXu7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUXvLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXvrXGEeSFVpyplf5ShA" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXv7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vqUXwLXGEeSFVpyplf5ShA" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUXwrXGEeSFVpyplf5ShA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vqUXxLXGEeSFVpyplf5ShA" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUXxrXGEeSFVpyplf5ShA" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXx7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUXyLXGEeSFVpyplf5ShA" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXybXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXyrXGEeSFVpyplf5ShA" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUXzLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUXzbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUXzrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUX0LXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX0bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX0rXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUX07XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUX1LXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUX1bXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUX1rXGEeSFVpyplf5ShA" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vqUX2LXGEeSFVpyplf5ShA" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUX2rXGEeSFVpyplf5ShA" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX27XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUX3LXGEeSFVpyplf5ShA" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX3bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX3rXGEeSFVpyplf5ShA" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUX4LXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX4bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX4rXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUX5LXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX5bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX5rXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUX57XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUX6LXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUX6bXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUX6rXGEeSFVpyplf5ShA" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX67XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX7LXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUX7rXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX77XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX8LXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUX8rXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX87XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX9LXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUX9bXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUX9rXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUX97XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUX-LXGEeSFVpyplf5ShA" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX-bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX-rXGEeSFVpyplf5ShA" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUX_LXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUX_bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUX_rXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUYALXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUYAbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUYArXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUYA7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUYBLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUYBbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqUYBrXGEeSFVpyplf5ShA" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqUYCLXGEeSFVpyplf5ShA" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUYCbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUYCrXGEeSFVpyplf5ShA" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUYC7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUYDLXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUYDrXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUYD7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUYELXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUYErXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUYE7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUYFLXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUYFbXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUYFrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUYF7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqUYGLXGEeSFVpyplf5ShA" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUYGbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUYGrXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUYHLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUYHbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUYHrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqUYILXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqUYIbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqUYIrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqUYI7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqUYJLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqU-ULXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqU-UbXGEeSFVpyplf5ShA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqU-U7XGEeSFVpyplf5ShA" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqU-VLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_vqU-VbXGEeSFVpyplf5ShA" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqU-VrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqU-V7XGEeSFVpyplf5ShA" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqU-WbXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqU-WrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqU-W7XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_vqU-XbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqU-XrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vqU-X7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_vqU-YLXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqU-YbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_vqU-YrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqU-Y7XGEeSFVpyplf5ShA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vqU-ZbXGEeSFVpyplf5ShA" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqU-Z7XGEeSFVpyplf5ShA" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqU-aLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vqU-abXGEeSFVpyplf5ShA" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqU-a7XGEeSFVpyplf5ShA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_vqU-bbXGEeSFVpyplf5ShA" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqU-brXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vqU-b7XGEeSFVpyplf5ShA" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_KVtRQLXGEeSFVpyplf5ShA" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRQbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRQrXGEeSFVpyplf5ShA" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRQ7XGEeSFVpyplf5ShA" name="Agent" eSuperTypes="_KVtRVLXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRRLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtRRbXGEeSFVpyplf5ShA" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRRrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRR7XGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRSbXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRSrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRS7XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRTbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRTrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRT7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVtRULXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRUbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRUrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRVLXGEeSFVpyplf5ShA" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRVbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtRVrXGEeSFVpyplf5ShA" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRV7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRWLXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRWrXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRW7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRXLXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRXrXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRX7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRYLXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVtRYbXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRYrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRY7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtRZLXGEeSFVpyplf5ShA" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRZbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRZrXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRaLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRabXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRarXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRbLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRbbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRbrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVtRb7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRcLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRcbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRcrXGEeSFVpyplf5ShA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRdLXGEeSFVpyplf5ShA" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRdbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRdrXGEeSFVpyplf5ShA" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_KVtReLXGEeSFVpyplf5ShA" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRerXGEeSFVpyplf5ShA" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRe7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRfLXGEeSFVpyplf5ShA" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRfbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRfrXGEeSFVpyplf5ShA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRgLXGEeSFVpyplf5ShA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRgrXGEeSFVpyplf5ShA" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRg7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRhLXGEeSFVpyplf5ShA" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRhrXGEeSFVpyplf5ShA" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRh7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtRiLXGEeSFVpyplf5ShA" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRibXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRirXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRjLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRjbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRjrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRkLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRkbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRkrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVtRk7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRlLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRlbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtRlrXGEeSFVpyplf5ShA" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRl7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRmLXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRmrXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRm7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRnLXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRnrXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRn7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRoLXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVtRobXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRorXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRo7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtRpLXGEeSFVpyplf5ShA" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRpbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRprXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRqLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRqbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRqrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtRrLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRrbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtRrrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVtRr7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRsLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtRsbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRsrXGEeSFVpyplf5ShA" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_KVtRtLXGEeSFVpyplf5ShA" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRtrXGEeSFVpyplf5ShA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRuLXGEeSFVpyplf5ShA" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRurXGEeSFVpyplf5ShA" name="Category" eSuperTypes="_KVtRvbXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRu7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRvbXGEeSFVpyplf5ShA" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRvrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRv7XGEeSFVpyplf5ShA" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRwbXGEeSFVpyplf5ShA" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRwrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRw7XGEeSFVpyplf5ShA" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_KVtRxbXGEeSFVpyplf5ShA" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRx7XGEeSFVpyplf5ShA" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRybXGEeSFVpyplf5ShA" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRy7XGEeSFVpyplf5ShA" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtRzLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVtRzbXGEeSFVpyplf5ShA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtRz7XGEeSFVpyplf5ShA" name="CategoryValue" eSuperTypes="_KVtRgrXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR0LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtR0rXGEeSFVpyplf5ShA" name="ServiceContract" eSuperTypes="_KVtRdLXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR07XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtR1LXGEeSFVpyplf5ShA" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR1bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtR1rXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtR2LXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR2bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtR2rXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtR3LXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR3bXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtR3rXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVtR37XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtR4LXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtR4bXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtR4rXGEeSFVpyplf5ShA" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR47XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtR5LXGEeSFVpyplf5ShA" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtR5rXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR57XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtR6LXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtR6rXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR67XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtR7LXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVtR7bXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtR7rXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVtR77XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVtR8bXGEeSFVpyplf5ShA" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR8rXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVtR87XGEeSFVpyplf5ShA" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR9LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtR9bXGEeSFVpyplf5ShA" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVtR97XGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVtR-LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVtR-bXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4UbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4UrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4U7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt4VLXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4VbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4VrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt4V7XGEeSFVpyplf5ShA" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4WLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4WbXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4W7XGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4XLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4XbXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4X7XGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4YLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4YbXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt4YrXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4Y7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4ZLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4ZbXGEeSFVpyplf5ShA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4Z7XGEeSFVpyplf5ShA" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4aLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4abXGEeSFVpyplf5ShA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4a7XGEeSFVpyplf5ShA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4bbXGEeSFVpyplf5ShA" name="Catalog" eSuperTypes="_KVtRvbXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4brXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4b7XGEeSFVpyplf5ShA" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4crXGEeSFVpyplf5ShA" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4c7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4dLXGEeSFVpyplf5ShA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4drXGEeSFVpyplf5ShA" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4d7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4eLXGEeSFVpyplf5ShA" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4erXGEeSFVpyplf5ShA" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4e7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4fLXGEeSFVpyplf5ShA" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4frXGEeSFVpyplf5ShA" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4f7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt4gLXGEeSFVpyplf5ShA" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4gbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4grXGEeSFVpyplf5ShA" key="body" value="--if self.base_Interface.oclIsUndefined()&#xD;&#xA;--then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;--&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;--)&#xD;&#xA;--else &#xD;&#xA;--&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;--&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;--&#x9;)&#xD;&#xA;--endif&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4hLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4hbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4hrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4iLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4ibXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4irXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt4i7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4jLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4jbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4jrXGEeSFVpyplf5ShA" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4kLXGEeSFVpyplf5ShA" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4krXGEeSFVpyplf5ShA" name="ServicesArchitecture" eSuperTypes="_KVtRdLXGEeSFVpyplf5ShA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4k7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt4lLXGEeSFVpyplf5ShA" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4lbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4lrXGEeSFVpyplf5ShA" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4mLXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4mbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4mrXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4nLXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4nbXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4nrXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt4n7XGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4oLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4obXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt4orXGEeSFVpyplf5ShA" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4o7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4pLXGEeSFVpyplf5ShA" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4prXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4p7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4qLXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4qrXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4q7XGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4rLXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt4rbXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4rrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4r7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4sbXGEeSFVpyplf5ShA" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4srXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_KVt4s7XGEeSFVpyplf5ShA" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4tbXGEeSFVpyplf5ShA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_KVt4t7XGEeSFVpyplf5ShA" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4ubXGEeSFVpyplf5ShA" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4urXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt4u7XGEeSFVpyplf5ShA" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4vLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4vbXGEeSFVpyplf5ShA" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4v7XGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4wLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4wbXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt4w7XGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4xLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4xbXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt4xrXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4x7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4yLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4ybXGEeSFVpyplf5ShA" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_KVt4y7XGEeSFVpyplf5ShA" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4zbXGEeSFVpyplf5ShA" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4zrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt4z7XGEeSFVpyplf5ShA" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt40LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt40bXGEeSFVpyplf5ShA" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt407XGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt41LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt41bXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt417XGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt42LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt42bXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt42rXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt427XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt43LXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt43bXGEeSFVpyplf5ShA" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt43rXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt437XGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt44bXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt44rXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt447XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt45bXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt45rXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt457XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt46LXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt46bXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt46rXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt467XGEeSFVpyplf5ShA" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt47LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt47bXGEeSFVpyplf5ShA" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt477XGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt48LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt48bXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt487XGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt49LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt49bXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt49rXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt497XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt4-LXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt4-bXGEeSFVpyplf5ShA" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt4-7XGEeSFVpyplf5ShA" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4_LXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt4_bXGEeSFVpyplf5ShA" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt4_rXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt4_7XGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt5AbXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5ArXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt5A7XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt5BbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5BrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt5B7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt5CLXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt5CbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt5CrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt5C7XGEeSFVpyplf5ShA" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5DLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt5DbXGEeSFVpyplf5ShA" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt5D7XGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5ELXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt5EbXGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt5E7XGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5FLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt5FbXGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt5FrXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt5F7XGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt5GLXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt5GbXGEeSFVpyplf5ShA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt5G7XGEeSFVpyplf5ShA" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5HLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_KVt5HbXGEeSFVpyplf5ShA" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5HrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt5H7XGEeSFVpyplf5ShA" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt5IbXGEeSFVpyplf5ShA" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5IrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt5I7XGEeSFVpyplf5ShA" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_KVt5JbXGEeSFVpyplf5ShA" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5JrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KVt5J7XGEeSFVpyplf5ShA" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_KVt5KLXGEeSFVpyplf5ShA">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt5KbXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_KVt5KrXGEeSFVpyplf5ShA">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt5K7XGEeSFVpyplf5ShA" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_KVt5LbXGEeSFVpyplf5ShA" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt5L7XGEeSFVpyplf5ShA" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5MLXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_KVt5MbXGEeSFVpyplf5ShA" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt5M7XGEeSFVpyplf5ShA" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_KVt5NbXGEeSFVpyplf5ShA" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KVt5NrXGEeSFVpyplf5ShA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_KVt5N7XGEeSFVpyplf5ShA" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_6KvGsLIQEeS8wqq-i9d2rg" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvGsbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvGsrIQEeS8wqq-i9d2rg" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvGs7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/4.1.0/UML" references="_iamkQLIOEeS8wqq-i9d2rg"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6LIIQLIQEeS8wqq-i9d2rg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6LIIQbIQEeS8wqq-i9d2rg" key="Version" value="0.0.120"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6LIIQrIQEeS8wqq-i9d2rg" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6LIIQ7IQEeS8wqq-i9d2rg" key="Copyright" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6LIIRLIQEeS8wqq-i9d2rg" key="Date" value="2015-02-11"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6LIIRbIQEeS8wqq-i9d2rg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvGtLIQEeS8wqq-i9d2rg" name="Agent" eSuperTypes="_6KvuYLIQEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvGtbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvGtrIQEeS8wqq-i9d2rg" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvGt7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvGuLIQEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvGurIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvGu7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvGvLIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvtwLIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvtwbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvtwrIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6Kvtw7IQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvtxLIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvtxbIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvtx7IQEeS8wqq-i9d2rg" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvtyLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvtybIQEeS8wqq-i9d2rg" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_6Kvty7IQEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvtzbIQEeS8wqq-i9d2rg" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvtzrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvtz7IQEeS8wqq-i9d2rg" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt0LIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6Kvt0bIQEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6Kvt07IQEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvt1bIQEeS8wqq-i9d2rg" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt1rIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6Kvt17IQEeS8wqq-i9d2rg" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvt2bIQEeS8wqq-i9d2rg" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt2rIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6Kvt27IQEeS8wqq-i9d2rg" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt3LIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvt3bIQEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvt37IQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt4LIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvt4bIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvt47IQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt5LIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvt5bIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6Kvt5rIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvt57IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvt6LIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6Kvt6bIQEeS8wqq-i9d2rg" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt6rIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvt67IQEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvt7bIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt7rIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvt77IQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvt8bIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt8rIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvt87IQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6Kvt9LIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvt9bIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvt9rIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6Kvt97IQEeS8wqq-i9d2rg" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt-LIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvt-bIQEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvt-7IQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvt_LIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvt_bIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvt_7IQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuALIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuAbIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvuArIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuA7IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuBLIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuBbIQEeS8wqq-i9d2rg" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_6KvuB7IQEeS8wqq-i9d2rg" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuCbIQEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuC7IQEeS8wqq-i9d2rg" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuDbIQEeS8wqq-i9d2rg" name="Category" eSuperTypes="_6KvugLIQEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuDrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuELIQEeS8wqq-i9d2rg" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuEbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuErIQEeS8wqq-i9d2rg" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_6KvuFLIQEeS8wqq-i9d2rg" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuFrIQEeS8wqq-i9d2rg" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuGLIQEeS8wqq-i9d2rg" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuGrIQEeS8wqq-i9d2rg" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuG7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuHLIQEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuHrIQEeS8wqq-i9d2rg" name="CategoryValue" eSuperTypes="_6Kvt1bIQEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuH7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuIbIQEeS8wqq-i9d2rg" name="ServiceContract" eSuperTypes="_6Kvtx7IQEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuIrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvuI7IQEeS8wqq-i9d2rg" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuJLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuJbIQEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuJ7IQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuKLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuKbIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuK7IQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuLLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuLbIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvuLrIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuL7IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuMLIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvuMbIQEeS8wqq-i9d2rg" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuMrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuM7IQEeS8wqq-i9d2rg" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuNbIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuNrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuN7IQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuObIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuOrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuO7IQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvuPLIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuPbIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuPrIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuQLIQEeS8wqq-i9d2rg" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuQbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvuQrIQEeS8wqq-i9d2rg" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuQ7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuRLIQEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuRrIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuR7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuSLIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuSrIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuS7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuTLIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvuTbIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuTrIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuT7IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvuULIQEeS8wqq-i9d2rg" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuUbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuUrIQEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuVLIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuVbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuVrIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuWLIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuWbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuWrIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvuW7IQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuXLIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuXbIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuXrIQEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuYLIQEeS8wqq-i9d2rg" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuYbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvuYrIQEeS8wqq-i9d2rg" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuY7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuZLIQEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuZrIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuZ7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuaLIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuarIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvua7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvubLIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvubbIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvubrIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvub7IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvucLIQEeS8wqq-i9d2rg" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvucbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvucrIQEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvudLIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvudbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvudrIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvueLIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuebIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuerIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6Kvue7IQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvufLIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvufbIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvufrIQEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvugLIQEeS8wqq-i9d2rg" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvugbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvugrIQEeS8wqq-i9d2rg" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuhLIQEeS8wqq-i9d2rg" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuhbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuhrIQEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvuiLIQEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuirIQEeS8wqq-i9d2rg" name="Catalog" eSuperTypes="_6KvugLIQEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvui7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvujLIQEeS8wqq-i9d2rg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvuj7IQEeS8wqq-i9d2rg" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvukLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvukbIQEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvuk7IQEeS8wqq-i9d2rg" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvulLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvulbIQEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvul7IQEeS8wqq-i9d2rg" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvumLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvumbIQEeS8wqq-i9d2rg" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvum7IQEeS8wqq-i9d2rg" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvunLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvunbIQEeS8wqq-i9d2rg" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvunrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvun7IQEeS8wqq-i9d2rg" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuobIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuorIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvuo7IQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvupbIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuprIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvup7IQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvuqLIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuqbIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuqrIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6Kvuq7IQEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvurbIQEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvur7IQEeS8wqq-i9d2rg" name="ServicesArchitecture" eSuperTypes="_6Kvtx7IQEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvusLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvusbIQEeS8wqq-i9d2rg" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvusrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvus7IQEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvutbIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvutrIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvut7IQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvuubIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuurIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvuu7IQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvuvLIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuvbIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuvrIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6Kvuv7IQEeS8wqq-i9d2rg" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuwLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuwbIQEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvuw7IQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuxLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuxbIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvux7IQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvuyLIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvuybIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvuyrIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvuy7IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvuzLIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvuzrIQEeS8wqq-i9d2rg" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvuz7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_6Kvu0LIQEeS8wqq-i9d2rg" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6Kvu0rIQEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_6Kvu1LIQEeS8wqq-i9d2rg" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvu1rIQEeS8wqq-i9d2rg" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu17IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6Kvu2LIQEeS8wqq-i9d2rg" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu2bIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvu2rIQEeS8wqq-i9d2rg" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvu3LIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu3bIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvu3rIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvu4LIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu4bIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvu4rIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6Kvu47IQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvu5LIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvu5bIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6Kvu5rIQEeS8wqq-i9d2rg" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_6Kvu6LIQEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6Kvu6rIQEeS8wqq-i9d2rg" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu67IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6Kvu7LIQEeS8wqq-i9d2rg" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu7bIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvu7rIQEeS8wqq-i9d2rg" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvu8LIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu8bIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvu8rIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvu9LIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu9bIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvu9rIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6Kvu97IQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvu-LIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6Kvu-bIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6Kvu-rIQEeS8wqq-i9d2rg" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu-7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6Kvu_LIQEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6Kvu_rIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6Kvu_7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvALIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvArIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvA7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvBLIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvvBbIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvBrIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvB7IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvvCLIQEeS8wqq-i9d2rg" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvCbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvCrIQEeS8wqq-i9d2rg" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvDLIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvDbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvDrIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvELIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvEbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvErIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvvE7IQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvFLIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvFbIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvvFrIQEeS8wqq-i9d2rg" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvvGLIQEeS8wqq-i9d2rg" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvGbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvvGrIQEeS8wqq-i9d2rg" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvG7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvHLIQEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvHrIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvH7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvILIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvIrIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvI7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvJLIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvvJbIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvJrIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvJ7IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvvKLIQEeS8wqq-i9d2rg" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvKbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvKrIQEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;--&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvLLIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvLbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvLrIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvMLIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvMbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvMrIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvvM7IQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvNLIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvNbIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvvNrIQEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvvOLIQEeS8wqq-i9d2rg" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvObIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_6KvvOrIQEeS8wqq-i9d2rg" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvO7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvPLIQEeS8wqq-i9d2rg" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvPrIQEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvP7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvQLIQEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_6KvvQrIQEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvQ7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6KvvRLIQEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_6KvvRbIQEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvRrIQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_6KvvR7IQEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvvSLIQEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_6KvvSrIQEeS8wqq-i9d2rg" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvvTLIQEeS8wqq-i9d2rg" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvTbIQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_6KvvTrIQEeS8wqq-i9d2rg" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvvULIQEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_6KvvUrIQEeS8wqq-i9d2rg" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6KvvU7IQEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_6KvvVLIQEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_iamkQLIOEeS8wqq-i9d2rg" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkQbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkQrIOEeS8wqq-i9d2rg" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkQ7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/4.1.0/UML" references="_hz8YcLIEEeS8wqq-i9d2rg"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ia8igrIOEeS8wqq-i9d2rg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ia8ig7IOEeS8wqq-i9d2rg" key="Version" value="0.0.119"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ia8ihLIOEeS8wqq-i9d2rg" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ia8ihbIOEeS8wqq-i9d2rg" key="Copyright" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ia8ihrIOEeS8wqq-i9d2rg" key="Date" value="2015-02-11"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ia8ih7IOEeS8wqq-i9d2rg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkRLIOEeS8wqq-i9d2rg" name="Agent" eSuperTypes="_iamk7rIOEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkRbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamkRrIOEeS8wqq-i9d2rg" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkR7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkSLIOEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkSrIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkS7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkTLIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkTrIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkT7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkULIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamkUbIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkUrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkU7IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkVbIOEeS8wqq-i9d2rg" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkVrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkV7IOEeS8wqq-i9d2rg" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iamkWbIOEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkW7IOEeS8wqq-i9d2rg" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkXLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkXbIOEeS8wqq-i9d2rg" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkXrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkX7IOEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkYbIOEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkY7IOEeS8wqq-i9d2rg" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkZLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkZbIOEeS8wqq-i9d2rg" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkZ7IOEeS8wqq-i9d2rg" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkaLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamkabIOEeS8wqq-i9d2rg" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkarIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamka7IOEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkbbIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkbrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkb7IOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkcbIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkcrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkc7IOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamkdLIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkdbIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkdrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamkd7IOEeS8wqq-i9d2rg" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkeLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkebIOEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamke7IOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkfLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkfbIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkf7IOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkgLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkgbIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamkgrIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkg7IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkhLIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamkhbIOEeS8wqq-i9d2rg" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkhrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkh7IOEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkibIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkirIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamki7IOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkjbIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkjrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkj7IOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamkkLIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkkbIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkkrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkk7IOEeS8wqq-i9d2rg" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iamklbIOEeS8wqq-i9d2rg" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkl7IOEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkmbIOEeS8wqq-i9d2rg" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkm7IOEeS8wqq-i9d2rg" name="Category" eSuperTypes="_ianLWbIOEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamknLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamknrIOEeS8wqq-i9d2rg" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkn7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkoLIOEeS8wqq-i9d2rg" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iamkorIOEeS8wqq-i9d2rg" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkpLIOEeS8wqq-i9d2rg" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkprIOEeS8wqq-i9d2rg" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkqLIOEeS8wqq-i9d2rg" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkqbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamkqrIOEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkrLIOEeS8wqq-i9d2rg" name="CategoryValue" eSuperTypes="_iamkY7IOEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkrbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkr7IOEeS8wqq-i9d2rg" name="ServiceContract" eSuperTypes="_iamkVbIOEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamksLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamksbIOEeS8wqq-i9d2rg" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamksrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamks7IOEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamktbIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamktrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkt7IOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkubIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkurIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamku7IOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamkvLIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkvbIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkvrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamkv7IOEeS8wqq-i9d2rg" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkwLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkwbIOEeS8wqq-i9d2rg" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort=MessageSort::asynchCall) &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()->first().represents.type.oclAsType(Classifier).ownedElement.oclAsType(Operation)&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()->first().represents.type.oclAsType(Classifier).ownedElement.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkw7IOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkxLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkxbIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamkx7IOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkyLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamkybIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamkyrIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamky7IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamkzLIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamkzrIOEeS8wqq-i9d2rg" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamkz7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamk0LIOEeS8wqq-i9d2rg" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk0bIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk0rIOEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamk1LIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk1bIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk1rIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamk2LIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk2bIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk2rIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamk27IOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamk3LIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamk3bIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamk3rIOEeS8wqq-i9d2rg" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk37IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk4LIOEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamk4rIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk47IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk5LIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamk5rIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk57IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk6LIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamk6bIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamk6rIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamk67IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iamk7LIOEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_iamk7rIOEeS8wqq-i9d2rg" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk77IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamk8LIOEeS8wqq-i9d2rg" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk8bIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk8rIOEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamk9LIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk9bIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk9rIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamk-LIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk-bIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamk-rIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_iamk-7IOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamk_LIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_iamk_bIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_iamk_rIOEeS8wqq-i9d2rg" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamk_7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamlALIOEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_iamlArIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iamlA7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iamlBLIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLUbIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLUrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLU7IOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianLVLIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLVbIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLVrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLV7IOEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLWbIOEeS8wqq-i9d2rg" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLWrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLW7IOEeS8wqq-i9d2rg" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLXbIOEeS8wqq-i9d2rg" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLXrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLX7IOEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLYbIOEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLY7IOEeS8wqq-i9d2rg" name="Catalog" eSuperTypes="_ianLWbIOEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLZLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLZbIOEeS8wqq-i9d2rg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLaLIOEeS8wqq-i9d2rg" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLabIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLarIOEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLbLIOEeS8wqq-i9d2rg" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLbbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLbrIOEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLcLIOEeS8wqq-i9d2rg" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLcbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLcrIOEeS8wqq-i9d2rg" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLdLIOEeS8wqq-i9d2rg" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLdbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianLdrIOEeS8wqq-i9d2rg" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLd7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLeLIOEeS8wqq-i9d2rg" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLerIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLe7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLfLIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLfrIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLf7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLgLIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianLgbIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLgrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLg7IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLhLIOEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLhrIOEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLiLIOEeS8wqq-i9d2rg" name="ServicesArchitecture" eSuperTypes="_iamkVbIOEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLibIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianLirIOEeS8wqq-i9d2rg" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLi7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLjLIOEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLjrIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLj7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLkLIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLkrIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLk7IOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLlLIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianLlbIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLlrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLl7IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianLmLIOEeS8wqq-i9d2rg" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLmbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLmrIOEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLnLIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLnbIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLnrIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLoLIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLobIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLorIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianLo7IOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLpLIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLpbIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLp7IOEeS8wqq-i9d2rg" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLqLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ianLqbIOEeS8wqq-i9d2rg" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLq7IOEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ianLrbIOEeS8wqq-i9d2rg" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLr7IOEeS8wqq-i9d2rg" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLsLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianLsbIOEeS8wqq-i9d2rg" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLsrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLs7IOEeS8wqq-i9d2rg" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLtbIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLtrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLt7IOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLubIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLurIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLu7IOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianLvLIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLvbIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianLvrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianLv7IOEeS8wqq-i9d2rg" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ianLwbIOEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianLw7IOEeS8wqq-i9d2rg" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLxLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianLxbIOEeS8wqq-i9d2rg" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLxrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLx7IOEeS8wqq-i9d2rg" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLybIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLyrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLy7IOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianLzbIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianLzrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianLz7IOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianL0LIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianL0bIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianL0rIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianL07IOEeS8wqq-i9d2rg" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL1LIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL1bIOEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianL17IOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL2LIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL2bIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianL27IOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL3LIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL3bIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianL3rIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianL37IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianL4LIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianL4bIOEeS8wqq-i9d2rg" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL4rIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL47IOEeS8wqq-i9d2rg" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianL5bIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL5rIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL57IOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianL6bIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL6rIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL67IOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianL7LIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianL7bIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianL7rIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianL77IOEeS8wqq-i9d2rg" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianL8bIOEeS8wqq-i9d2rg" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL8rIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianL87IOEeS8wqq-i9d2rg" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL9LIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL9bIOEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianL97IOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL-LIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL-bIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianL-7IOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianL_LIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianL_bIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianL_rIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianL_7IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianMALIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianMAbIOEeS8wqq-i9d2rg" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMArIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianMA7IOEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;--&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianMBbIOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMBrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianMB7IOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianMCbIOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMCrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianMC7IOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianMDLIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianMDbIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianMDrIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianMD7IOEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianMEbIOEeS8wqq-i9d2rg" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMErIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_ianME7IOEeS8wqq-i9d2rg" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMFLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianMFbIOEeS8wqq-i9d2rg" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianMF7IOEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMGLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianMGbIOEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_ianMG7IOEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMHLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ianMHbIOEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_ianMHrIOEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianMH7IOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_ianMILIOEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianMIbIOEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ianMI7IOEeS8wqq-i9d2rg" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianMJbIOEeS8wqq-i9d2rg" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMJrIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_ianMJ7IOEeS8wqq-i9d2rg" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianMKbIOEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_ianMK7IOEeS8wqq-i9d2rg" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ianMLLIOEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_ianMLbIOEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_hz8YcLIEEeS8wqq-i9d2rg" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YcbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8YcrIEEeS8wqq-i9d2rg" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Yc7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/4.1.0/UML" references="_oT4b4LH6EeS8wqq-i9d2rg"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h0S9wrIEEeS8wqq-i9d2rg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h0S9w7IEEeS8wqq-i9d2rg" key="Version" value="0.0.118"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h0S9xLIEEeS8wqq-i9d2rg" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h0S9xbIEEeS8wqq-i9d2rg" key="Copyright" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h0S9xrIEEeS8wqq-i9d2rg" key="Date" value="2015-02-11"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h0S9x7IEEeS8wqq-i9d2rg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8YdLIEEeS8wqq-i9d2rg" name="Agent" eSuperTypes="_hz8ZHrIEEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YdbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8YdrIEEeS8wqq-i9d2rg" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Yd7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8YeLIEEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8YerIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Ye7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8YfLIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8YfrIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Yf7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8YgLIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8YgbIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8YgrIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8Yg7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8YhbIEEeS8wqq-i9d2rg" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YhrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8Yh7IEEeS8wqq-i9d2rg" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hz8YibIEEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8Yi7IEEeS8wqq-i9d2rg" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YjLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8YjbIEEeS8wqq-i9d2rg" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YjrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8Yj7IEEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8YkbIEEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8Yk7IEEeS8wqq-i9d2rg" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YlLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8YlbIEEeS8wqq-i9d2rg" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8Yl7IEEeS8wqq-i9d2rg" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YmLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8YmbIEEeS8wqq-i9d2rg" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YmrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Ym7IEEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8YnbIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YnrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Yn7IEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8YobIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YorIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Yo7IEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8YpLIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8YpbIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8YprIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8Yp7IEEeS8wqq-i9d2rg" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YqLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8YqbIEEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8Yq7IEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YrLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8YrbIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8Yr7IEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YsLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8YsbIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8YsrIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8Ys7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8YtLIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8YtbIEEeS8wqq-i9d2rg" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YtrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Yt7IEEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8YubIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YurIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Yu7IEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8YvbIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YvrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Yv7IEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8YwLIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8YwbIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8YwrIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8Yw7IEEeS8wqq-i9d2rg" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hz8YxbIEEeS8wqq-i9d2rg" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8Yx7IEEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8YybIEEeS8wqq-i9d2rg" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8Yy7IEEeS8wqq-i9d2rg" name="Category" eSuperTypes="_hz8ZPrIEEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8YzLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8YzrIEEeS8wqq-i9d2rg" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Yz7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8Y0LIEEeS8wqq-i9d2rg" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hz8Y0rIEEeS8wqq-i9d2rg" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8Y1LIEEeS8wqq-i9d2rg" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8Y1rIEEeS8wqq-i9d2rg" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8Y2LIEEeS8wqq-i9d2rg" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y2bIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8Y2rIEEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8Y3LIEEeS8wqq-i9d2rg" name="CategoryValue" eSuperTypes="_hz8Yk7IEEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y3bIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8Y37IEEeS8wqq-i9d2rg" name="ServiceContract" eSuperTypes="_hz8YhbIEEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y4LIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8Y4bIEEeS8wqq-i9d2rg" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y4rIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Y47IEEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8Y5bIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y5rIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Y57IEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8Y6bIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y6rIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Y67IEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8Y7LIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8Y7bIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8Y7rIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8Y77IEEeS8wqq-i9d2rg" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y8LIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Y8bIEEeS8wqq-i9d2rg" key="body" value=" self.base_Collaboration.ownedBehavior->size()=1 implies&#xD;&#xA;&#x9;self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;&#xA;&#x9;&#x9;->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort='asynchCall') &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;&#xA;&#x9;&#x9;&#x9;m.receiveEvent.oclAsType(MessageOccurrenceSpecification).covered.represents.type.oclAsType(Classifier).ownedElement.oclAsType(Operation)&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Operation)) and &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.signature.oclIsTypeOf(Signal) implies &#xD;&#xA;&#x9;&#x9;&#x9;&#x9;m.sendEvent.oclAsType(MessageOccurrenceSpecification).covered.represents.type.oclAsType(Classifier).ownedElement.oclAsType(Operation)&#xD;&#xA;&#x9;&#x9;&#x9;->includes(m.signature.oclAsType(Signal)&#xD;&#xA;&#x9;&#x9;&#x9;)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8Y87IEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y9LIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Y9bIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8Y97IEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y-LIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8Y-bIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8Y-rIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8Y-7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8Y_LIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8Y_rIEEeS8wqq-i9d2rg" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8Y_7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8ZALIEEeS8wqq-i9d2rg" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZAbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZArIEEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8ZBLIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZBbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZBrIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8ZCLIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZCbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZCrIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8ZC7IEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8ZDLIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8ZDbIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8ZDrIEEeS8wqq-i9d2rg" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZD7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZELIEEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8ZErIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZE7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZFLIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8ZFrIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZF7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZGLIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8ZGbIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8ZGrIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8ZG7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8ZHLIEEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8ZHrIEEeS8wqq-i9d2rg" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZH7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8ZILIEEeS8wqq-i9d2rg" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZIbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZIrIEEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8ZJLIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZJbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZJrIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8ZKLIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZKbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZKrIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8ZK7IEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8ZLLIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8ZLbIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8ZLrIEEeS8wqq-i9d2rg" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZL7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZMLIEEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8ZMrIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZM7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZNLIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8ZNrIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZN7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8ZOLIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8ZObIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8ZOrIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8ZO7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8ZPLIEEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8ZPrIEEeS8wqq-i9d2rg" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZP7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8ZQLIEEeS8wqq-i9d2rg" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8ZQrIEEeS8wqq-i9d2rg" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8ZQ7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8ZRLIEEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_gLIEEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_grIEEeS8wqq-i9d2rg" name="Catalog" eSuperTypes="_hz8ZPrIEEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_g7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_hLIEEeS8wqq-i9d2rg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_h7IEEeS8wqq-i9d2rg" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_iLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_ibIEEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_i7IEEeS8wqq-i9d2rg" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_jLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_jbIEEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_j7IEEeS8wqq-i9d2rg" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_kLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_kbIEEeS8wqq-i9d2rg" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_k7IEEeS8wqq-i9d2rg" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_lLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8_lbIEEeS8wqq-i9d2rg" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_lrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_l7IEEeS8wqq-i9d2rg" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_mbIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_mrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_m7IEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_nbIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_nrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_n7IEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8_oLIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_obIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_orIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_o7IEEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_pbIEEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_p7IEEeS8wqq-i9d2rg" name="ServicesArchitecture" eSuperTypes="_hz8YhbIEEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_qLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8_qbIEEeS8wqq-i9d2rg" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_qrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_q7IEEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_rbIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_rrIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_r7IEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_sbIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_srIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_s7IEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8_tLIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_tbIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_trIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8_t7IEEeS8wqq-i9d2rg" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_uLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_ubIEEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_u7IEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_vLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_vbIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_v7IEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_wLIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_wbIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8_wrIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_w7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_xLIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_xrIEEeS8wqq-i9d2rg" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_x7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hz8_yLIEEeS8wqq-i9d2rg" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_yrIEEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hz8_zLIEEeS8wqq-i9d2rg" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_zrIEEeS8wqq-i9d2rg" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_z7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8_0LIEEeS8wqq-i9d2rg" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_0bIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_0rIEEeS8wqq-i9d2rg" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_1LIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_1bIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_1rIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_2LIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_2bIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_2rIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8_27IEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_3LIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_3bIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz8_3rIEEeS8wqq-i9d2rg" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hz8_4LIEEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz8_4rIEEeS8wqq-i9d2rg" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_47IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8_5LIEEeS8wqq-i9d2rg" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_5bIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_5rIEEeS8wqq-i9d2rg" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_6LIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_6bIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_6rIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_7LIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_7bIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_7rIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8_77IEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_8LIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8_8bIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz8_8rIEEeS8wqq-i9d2rg" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_87IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_9LIEEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_9rIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_97IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8_-LIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz8_-rIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz8_-7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz8__LIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz8__bIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8__rIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz8__7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz9AALIEEeS8wqq-i9d2rg" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AAbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9AArIEEeS8wqq-i9d2rg" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz9ABLIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9ABbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9ABrIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz9ACLIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9ACbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9ACrIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz9AC7IEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz9ADLIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz9ADbIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz9ADrIEEeS8wqq-i9d2rg" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz9AELIEEeS8wqq-i9d2rg" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AEbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz9AErIEEeS8wqq-i9d2rg" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AE7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9AFLIEEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz9AFrIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AF7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9AGLIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz9AGrIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AG7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9AHLIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz9AHbIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz9AHrIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz9AH7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz9AILIEEeS8wqq-i9d2rg" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AIbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9AIrIEEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;--&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz9AJLIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AJbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9AJrIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz9AKLIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AKbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9AKrIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz9AK7IEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz9ALLIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz9ALbIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz9ALrIEEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz9AMLIEEeS8wqq-i9d2rg" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AMbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_hz9AMrIEEeS8wqq-i9d2rg" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AM7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9ANLIEEeS8wqq-i9d2rg" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz9ANrIEEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AN7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9AOLIEEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_hz9AOrIEEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AO7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hz9APLIEEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_hz9APbIEEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz9APrIEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_hz9AP7IEEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz9AQLIEEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hz9AQrIEEeS8wqq-i9d2rg" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz9ARLIEEeS8wqq-i9d2rg" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9ARbIEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hz9ARrIEEeS8wqq-i9d2rg" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz9ASLIEEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_hz9ASrIEEeS8wqq-i9d2rg" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hz9AS7IEEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hz9ATLIEEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_oT4b4LH6EeS8wqq-i9d2rg" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b4bH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4b4rH6EeS8wqq-i9d2rg" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b47H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/4.1.0/UML" references="_854p4LEmEeS8wqq-i9d2rg"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oUEpILH6EeS8wqq-i9d2rg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oUEpIbH6EeS8wqq-i9d2rg" key="Version" value="0.0.117"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oUEpIrH6EeS8wqq-i9d2rg" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oUEpI7H6EeS8wqq-i9d2rg" key="Copyright" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oUEpJLH6EeS8wqq-i9d2rg" key="Date" value="2015-02-11"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oUEpJbH6EeS8wqq-i9d2rg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4b5LH6EeS8wqq-i9d2rg" name="Agent" eSuperTypes="_oT4cjrH6EeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b5bH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4b5rH6EeS8wqq-i9d2rg" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b57H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4b6LH6EeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4b6rH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b67H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4b7LH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4b7rH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b77H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4b8LH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4b8bH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4b8rH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4b87H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4b9bH6EeS8wqq-i9d2rg" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b9rH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4b97H6EeS8wqq-i9d2rg" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oT4b-bH6EeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4b-7H6EeS8wqq-i9d2rg" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b_LH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4b_bH6EeS8wqq-i9d2rg" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4b_rH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4b_7H6EeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cAbH6EeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cA7H6EeS8wqq-i9d2rg" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cBLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cBbH6EeS8wqq-i9d2rg" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cB7H6EeS8wqq-i9d2rg" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cCLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4cCbH6EeS8wqq-i9d2rg" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cCrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cC7H6EeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cDbH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cDrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cD7H6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cEbH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cErH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cE7H6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4cFLH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cFbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cFrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4cF7H6EeS8wqq-i9d2rg" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cGLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cGbH6EeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cG7H6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cHLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cHbH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cH7H6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cILH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cIbH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4cIrH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cI7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cJLH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4cJbH6EeS8wqq-i9d2rg" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cJrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cJ7H6EeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cKbH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cKrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cK7H6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cLbH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cLrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cL7H6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4cMLH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cMbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cMrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cM7H6EeS8wqq-i9d2rg" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oT4cNbH6EeS8wqq-i9d2rg" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cN7H6EeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cObH6EeS8wqq-i9d2rg" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cO7H6EeS8wqq-i9d2rg" name="Category" eSuperTypes="_oT4crrH6EeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cPLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cPrH6EeS8wqq-i9d2rg" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cP7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cQLH6EeS8wqq-i9d2rg" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oT4cQrH6EeS8wqq-i9d2rg" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cRLH6EeS8wqq-i9d2rg" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cRrH6EeS8wqq-i9d2rg" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cSLH6EeS8wqq-i9d2rg" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cSbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cSrH6EeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cTLH6EeS8wqq-i9d2rg" name="CategoryValue" eSuperTypes="_oT4cA7H6EeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cTbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cT7H6EeS8wqq-i9d2rg" name="ServiceContract" eSuperTypes="_oT4b9bH6EeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cULH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4cUbH6EeS8wqq-i9d2rg" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cUrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cU7H6EeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cVbH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cVrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cV7H6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cWbH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cWrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cW7H6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4cXLH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cXbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cXrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4cX7H6EeS8wqq-i9d2rg" name="AttachedBehaviorCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cYLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cYbH6EeS8wqq-i9d2rg" key="body" value="if self.base_Collaboration.ownedBehavior->size()=1 then &#xD;&#xA;&#x9;if self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) then&#xD;&#xA;&#x9;&#x9;let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;&#xA;&#x9;&#x9;lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;&#xA;&#x9;&#x9;messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;&#xA;&#x9;&#x9;messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;&#xA;&#x9;&#x9;lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;&#xA;&#x9;&#x9;and &#xD;&#xA;&#x9;&#x9;messages->size()>0 implies messages->select(m|m.messageSort='asynchCall') &#xD;&#xA;&#x9;&#x9;--signature of messages should be one of the operations of the corresponding Service Declaration&#xD;&#xA;&#x9;&#x9;->forAll(m|m.receiveEvent.oclAsType(MessageOccurrenceSpecification).covered.represents.type.oclAsType(Classifier).ownedElement.oclAsType(Operation)->includes(m.signature.oclAsType(Operation))) &#xD;&#xA;&#x9;&#x9;else&#xD;&#xA;&#x9;true&#xD;&#xA;&#x9;endif&#xD;&#xA;else true&#xD;&#xA;endif&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cY7H6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cZLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cZbH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cZ7H6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4caLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cabH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4carH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4ca7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cbLH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cbrH6EeS8wqq-i9d2rg" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cb7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4ccLH6EeS8wqq-i9d2rg" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4ccbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4ccrH6EeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cdLH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cdbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cdrH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4ceLH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cebH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cerH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4ce7H6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cfLH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cfbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4cfrH6EeS8wqq-i9d2rg" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cf7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cgLH6EeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cgrH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cg7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4chLH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4chrH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4ch7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4ciLH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4cibH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cirH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4ci7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4cjLH6EeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cjrH6EeS8wqq-i9d2rg" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cj7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4ckLH6EeS8wqq-i9d2rg" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4ckbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4ckrH6EeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4clLH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4clbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4clrH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cmLH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cmbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cmrH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4cm7H6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cnLH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cnbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT4cnrH6EeS8wqq-i9d2rg" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cn7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4coLH6EeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4corH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4co7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cpLH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT4cprH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cp7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT4cqLH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT4cqbH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cqrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT4cq7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4crLH6EeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4crrH6EeS8wqq-i9d2rg" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cr7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4csLH6EeS8wqq-i9d2rg" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4csrH6EeS8wqq-i9d2rg" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT4cs7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4ctLH6EeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT4ctrH6EeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT4cuLH6EeS8wqq-i9d2rg" name="Catalog" eSuperTypes="_oT4crrH6EeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5C8LH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5C8bH6EeS8wqq-i9d2rg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5C9LH6EeS8wqq-i9d2rg" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5C9bH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5C9rH6EeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5C-LH6EeS8wqq-i9d2rg" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5C-bH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5C-rH6EeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5C_LH6EeS8wqq-i9d2rg" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5C_bH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5C_rH6EeS8wqq-i9d2rg" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5DALH6EeS8wqq-i9d2rg" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DAbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5DArH6EeS8wqq-i9d2rg" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DA7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DBLH6EeS8wqq-i9d2rg" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DBrH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DB7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DCLH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DCrH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DC7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DDLH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DDbH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DDrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DD7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5DELH6EeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5DErH6EeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5DFLH6EeS8wqq-i9d2rg" name="ServicesArchitecture" eSuperTypes="_oT4b9bH6EeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DFbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5DFrH6EeS8wqq-i9d2rg" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DF7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DGLH6EeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DGrH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DG7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DHLH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DHrH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DH7H6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DILH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DIbH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DIrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DI7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5DJLH6EeS8wqq-i9d2rg" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DJbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DJrH6EeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DKLH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DKbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DKrH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DLLH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DLbH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DLrH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DL7H6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DMLH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DMbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5DM7H6EeS8wqq-i9d2rg" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DNLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oT5DNbH6EeS8wqq-i9d2rg" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5DN7H6EeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oT5DObH6EeS8wqq-i9d2rg" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5DO7H6EeS8wqq-i9d2rg" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DPLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5DPbH6EeS8wqq-i9d2rg" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DPrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DP7H6EeS8wqq-i9d2rg" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DQbH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DQrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DQ7H6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DRbH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DRrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DR7H6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DSLH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DSbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DSrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5DS7H6EeS8wqq-i9d2rg" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oT5DTbH6EeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5DT7H6EeS8wqq-i9d2rg" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DULH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5DUbH6EeS8wqq-i9d2rg" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DUrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DU7H6EeS8wqq-i9d2rg" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DVbH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DVrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DV7H6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DWbH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DWrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DW7H6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DXLH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DXbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DXrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5DX7H6EeS8wqq-i9d2rg" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DYLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DYbH6EeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DY7H6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DZLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DZbH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DZ7H6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DaLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DabH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DarH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5Da7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DbLH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5DbbH6EeS8wqq-i9d2rg" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DbrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5Db7H6EeS8wqq-i9d2rg" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and &#x9;oclIsTypeOf(SoaML::Request))&#xD;&#xA; -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;&#xA; ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())),&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DcbH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DcrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5Dc7H6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DdbH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DdrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5Dd7H6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DeLH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DebH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DerH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5De7H6EeS8wqq-i9d2rg" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5DfbH6EeS8wqq-i9d2rg" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DfrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5Df7H6EeS8wqq-i9d2rg" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DgLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DgbH6EeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5Dg7H6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DhLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DhbH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5Dh7H6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DiLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DibH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DirH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5Di7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DjLH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5DjbH6EeS8wqq-i9d2rg" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DjrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5Dj7H6EeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;--&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DkbH6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DkrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5Dk7H6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5DlbH6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DlrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5Dl7H6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DmLH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DmbH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DmrH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5Dm7H6EeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5DnbH6EeS8wqq-i9d2rg" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DnrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_oT5Dn7H6EeS8wqq-i9d2rg" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DoLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DobH6EeS8wqq-i9d2rg" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5Do7H6EeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DpLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DpbH6EeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_oT5Dp7H6EeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DqLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oT5DqbH6EeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_oT5DqrH6EeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5Dq7H6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_oT5DrLH6EeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5DrbH6EeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oT5Dr7H6EeS8wqq-i9d2rg" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5DsbH6EeS8wqq-i9d2rg" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DsrH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oT5Ds7H6EeS8wqq-i9d2rg" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5DtbH6EeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_oT5Dt7H6EeS8wqq-i9d2rg" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oT5DuLH6EeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oT5DubH6EeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_854p4LEmEeS8wqq-i9d2rg" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_854p4bEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_854p4rEmEeS8wqq-i9d2rg" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_854p47EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/4.1.0/UML" references="_r3mfgLEkEeS8wqq-i9d2rg"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_86JvobEmEeS8wqq-i9d2rg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_86JvorEmEeS8wqq-i9d2rg" key="Version" value="0.0.116"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_86Jvo7EmEeS8wqq-i9d2rg" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_86JvpLEmEeS8wqq-i9d2rg" key="Copyright" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_86JvpbEmEeS8wqq-i9d2rg" key="Date" value="2015-02-10"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_86JvprEmEeS8wqq-i9d2rg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855Q8LEmEeS8wqq-i9d2rg" name="Agent" eSuperTypes="_855RjLEmEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Q8bEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855Q8rEmEeS8wqq-i9d2rg" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Q87EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855Q9LEmEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855Q9rEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Q97EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855Q-LEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855Q-rEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Q-7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855Q_LEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855Q_bEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855Q_rEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855Q_7EmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RAbEmEeS8wqq-i9d2rg" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RArEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RA7EmEeS8wqq-i9d2rg" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_855RBbEmEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RB7EmEeS8wqq-i9d2rg" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RCLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RCbEmEeS8wqq-i9d2rg" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RCrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RC7EmEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RDbEmEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RD7EmEeS8wqq-i9d2rg" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RELEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855REbEmEeS8wqq-i9d2rg" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RE7EmEeS8wqq-i9d2rg" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RFLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RFbEmEeS8wqq-i9d2rg" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RFrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RF7EmEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RGbEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RGrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RG7EmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RHbEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RHrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RH7EmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855RILEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RIbEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RIrEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RI7EmEeS8wqq-i9d2rg" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RJLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RJbEmEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RJ7EmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RKLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RKbEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RK7EmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RLLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RLbEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855RLrEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RL7EmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RMLEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RMbEmEeS8wqq-i9d2rg" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RMrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RM7EmEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RNbEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RNrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RN7EmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RObEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855ROrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RO7EmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855RPLEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RPbEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RPrEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RP7EmEeS8wqq-i9d2rg" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_855RQbEmEeS8wqq-i9d2rg" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RQ7EmEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RRbEmEeS8wqq-i9d2rg" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RR7EmEeS8wqq-i9d2rg" name="Category" eSuperTypes="_855RrLEmEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RSLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RSrEmEeS8wqq-i9d2rg" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RS7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RTLEmEeS8wqq-i9d2rg" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_855RTrEmEeS8wqq-i9d2rg" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RULEmEeS8wqq-i9d2rg" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RUrEmEeS8wqq-i9d2rg" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RVLEmEeS8wqq-i9d2rg" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RVbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RVrEmEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RWLEmEeS8wqq-i9d2rg" name="CategoryValue" eSuperTypes="_855RD7EmEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RWbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RW7EmEeS8wqq-i9d2rg" name="ServiceContract" eSuperTypes="_855RAbEmEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RXLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RXbEmEeS8wqq-i9d2rg" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RXrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RX7EmEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RYbEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RYrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RY7EmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RZbEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RZrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RZ7EmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855RaLEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RabEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RarEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RbLEmEeS8wqq-i9d2rg" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RbbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RbrEmEeS8wqq-i9d2rg" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Rb7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RcLEmEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RcrEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Rc7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RdLEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RdrEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Rd7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855ReLEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855RebEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RerEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855Re7EmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RfLEmEeS8wqq-i9d2rg" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RfbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RfrEmEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RgLEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RgbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RgrEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RhLEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RhbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RhrEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855Rh7EmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RiLEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RibEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RirEmEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RjLEmEeS8wqq-i9d2rg" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RjbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RjrEmEeS8wqq-i9d2rg" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Rj7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RkLEmEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RkrEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Rk7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RlLEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RlrEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Rl7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RmLEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855RmbEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RmrEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855Rm7EmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RnLEmEeS8wqq-i9d2rg" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RnbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RnrEmEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RoLEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RobEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RorEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RpLEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RpbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855RprEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855Rp7EmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RqLEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855RqbEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RqrEmEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RrLEmEeS8wqq-i9d2rg" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RrbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RrrEmEeS8wqq-i9d2rg" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RsLEmEeS8wqq-i9d2rg" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RsbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RsrEmEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RtLEmEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855RtrEmEeS8wqq-i9d2rg" name="Catalog" eSuperTypes="_855RrLEmEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855Rt7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RuLEmEeS8wqq-i9d2rg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855Ru7EmEeS8wqq-i9d2rg" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RvLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RvbEmEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855Rv7EmEeS8wqq-i9d2rg" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RwLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RwbEmEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855Rw7EmEeS8wqq-i9d2rg" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RxLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855RxbEmEeS8wqq-i9d2rg" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855Rx7EmEeS8wqq-i9d2rg" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RyLEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855RybEmEeS8wqq-i9d2rg" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RyrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855Ry7EmEeS8wqq-i9d2rg" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855RzbEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855RzrEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855Rz7EmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855R0bEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R0rEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855R07EmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855R1LEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855R1bEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855R1rEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855R17EmEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855R2bEmEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855R27EmEeS8wqq-i9d2rg" name="ServicesArchitecture" eSuperTypes="_855RAbEmEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R3LEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855R3bEmEeS8wqq-i9d2rg" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R3rEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855R37EmEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855R4bEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R4rEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855R47EmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855R5bEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R5rEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855R57EmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855R6LEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855R6bEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855R6rEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855R67EmEeS8wqq-i9d2rg" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R7LEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855R7bEmEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855R77EmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R8LEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855R8bEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855R87EmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R9LEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855R9bEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855R9rEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855R97EmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855R-LEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855R-rEmEeS8wqq-i9d2rg" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855R-7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_855R_LEmEeS8wqq-i9d2rg" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855R_rEmEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_855SALEmEeS8wqq-i9d2rg" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855SArEmEeS8wqq-i9d2rg" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SA7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855SBLEmEeS8wqq-i9d2rg" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SBbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SBrEmEeS8wqq-i9d2rg" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855SCLEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SCbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SCrEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855SDLEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SDbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SDrEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855SD7EmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855SELEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855SEbEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_855SErEmEeS8wqq-i9d2rg" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_855SFLEmEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_855SFrEmEeS8wqq-i9d2rg" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SF7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855SGLEmEeS8wqq-i9d2rg" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SGbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SGrEmEeS8wqq-i9d2rg" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855SHLEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SHbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SHrEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855SILEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SIbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SIrEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855SI7EmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855SJLEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855SJbEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855SJrEmEeS8wqq-i9d2rg" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SJ7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SKLEmEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855SKrEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SK7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SLLEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855SLrEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SL7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SMLEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855SMbEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855SMrEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_855SM7EmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_855SNLEmEeS8wqq-i9d2rg" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SNbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SNrEmEeS8wqq-i9d2rg" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Request))->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier)&#xD;&#xA; in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;--1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier &#xD;&#xA;or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())&#xD;&#xA;)&#xD;&#xA;--4. Any of the above is true for a subset of a ServiceInterface as defined by a port on that service interface.&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855SOLEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SObEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SOrEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_855SPLEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_855SPbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_855SPrEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_855SP7EmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8554ALEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8554AbEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8554ArEmEeS8wqq-i9d2rg" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8554BLEmEeS8wqq-i9d2rg" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554BbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8554BrEmEeS8wqq-i9d2rg" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554B7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554CLEmEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; if base_Port.type.oclIsUndefined() then false else&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;&#xA; endif ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8554CrEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554C7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554DLEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8554DrEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554D7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554ELEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8554EbEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8554ErEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8554E7EmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8554FLEmEeS8wqq-i9d2rg" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554FbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554FrEmEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;--&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8554GLEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554GbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554GrEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8554HLEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554HbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554HrEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8554H7EmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8554ILEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8554IbEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8554IrEmEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8554JLEmEeS8wqq-i9d2rg" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554JbEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_8554JrEmEeS8wqq-i9d2rg" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554J7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554KLEmEeS8wqq-i9d2rg" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8554KrEmEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554K7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554LLEmEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_8554LrEmEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554L7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8554MLEmEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_8554MbEmEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8554MrEmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_8554M7EmEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8554NLEmEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8554NrEmEeS8wqq-i9d2rg" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8554OLEmEeS8wqq-i9d2rg" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554ObEmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8554OrEmEeS8wqq-i9d2rg" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8554PLEmEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_8554PrEmEeS8wqq-i9d2rg" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8554P7EmEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8554QLEmEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ <contents xmi:type="ecore:EPackage" xmi:id="_r3mfgLEkEeS8wqq-i9d2rg" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfgbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfgrEkEeS8wqq-i9d2rg" key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfg7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/4.1.0/UML"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r36BgbEkEeS8wqq-i9d2rg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r36BgrEkEeS8wqq-i9d2rg" key="Version" value="0.0.115"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r36Bg7EkEeS8wqq-i9d2rg" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r36BhLEkEeS8wqq-i9d2rg" key="Copyright" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r36BhbEkEeS8wqq-i9d2rg" key="Date" value="2015-02-10"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r36BhrEkEeS8wqq-i9d2rg" key="Author" value=""/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mfhLEkEeS8wqq-i9d2rg" name="Agent" eSuperTypes="_r3mgILEkEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfhbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Agent"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mfhrEkEeS8wqq-i9d2rg" name="isActive">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfh7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfiLEkEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Class.isActive,&#xD;&#xA; message='\'' + base_Class.name + '\' is not active',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mfirEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfi7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfjLEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mfjrEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfj7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfkLEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mfkbEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mfkrEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mfk7EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mflbEkEeS8wqq-i9d2rg" name="Collaboration">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mflrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Collaboration"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mfl7EkEeS8wqq-i9d2rg" name="base_Collaboration" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Collaboration"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_r3mfmbEkEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mfm7EkEeS8wqq-i9d2rg" name="MotivationElement" abstract="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfnLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationElement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mfnbEkEeS8wqq-i9d2rg" name="Provider">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfnrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Provider"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mfn7EkEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mfobEkEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mfo7EkEeS8wqq-i9d2rg" name="FreeFormValue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfpLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormValue"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mfpbEkEeS8wqq-i9d2rg" name="base_ValueSpecification" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mfp7EkEeS8wqq-i9d2rg" name="MessageType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfqLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MessageType"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mfqbEkEeS8wqq-i9d2rg" name="noOwnedBehaviors">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfqrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfq7EkEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0,&#xD;&#xA; message='\' MessageType cannot contain ownedBehaviors',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mfrbEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfrrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfr7EkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mfsbEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfsrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfs7EkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mftLEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mftbEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mftrEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mft7EkEeS8wqq-i9d2rg" name="noOwnedOperations">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfuLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfubEkEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null &#xD;&#xA;then self.base_Class.ownedOperation->size()=0 &#xD;&#xA;else&#xD;&#xA;&#x9; if self.base_DataType&lt;>null &#xD;&#xA;&#x9; then self.base_DataType.ownedOperation->size()=0&#xD;&#xA;&#x9; else self.base_Signal&lt;>null implies true endif &#xD;&#xA;endif ,&#xD;&#xA; message='\' MessageType cannot contain ownedOperation',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mfu7EkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfvLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfvbEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mfv7EkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfwLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfwbEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mfwrEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mfw7EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mfxLEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mfxbEkEeS8wqq-i9d2rg" name="publicAttributes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfxrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfx7EkEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; else &#xD;&#xA;&#x9; (if self.base_DataType&lt;>null then &#xD;&#xA;&#x9;&#x9; &#x9;self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA; &#x9;&#x9;else &#xD;&#xA; &#x9;&#x9;&#x9;self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;&#xA;&#x9;&#x9;endif)&#xD;&#xA; endif ,&#xD;&#xA; message= '\' All ownedAttributes must be Public',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mfybEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfyrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfy7EkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mfzbEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mfzrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mfz7EkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mf0LEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mf0bEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mf0rEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mf07EkEeS8wqq-i9d2rg" name="base_Signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_r3mf1bEkEeS8wqq-i9d2rg" name="encoding" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mf17EkEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mf2bEkEeS8wqq-i9d2rg" name="base_DataType" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//DataType"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mf27EkEeS8wqq-i9d2rg" name="Category" eSuperTypes="_r3mgQLEkEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mf3LEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Category"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mf3rEkEeS8wqq-i9d2rg" name="Milestone">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mf37EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Milestone"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mf4LEkEeS8wqq-i9d2rg" name="signal" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Signal"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_r3mf4rEkEeS8wqq-i9d2rg" name="progress" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mf5LEkEeS8wqq-i9d2rg" name="value" ordered="false" upperBound="-1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ValueSpecification"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mf5rEkEeS8wqq-i9d2rg" name="base_Comment" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Comment"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mf6LEkEeS8wqq-i9d2rg" name="FreeFormDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mf6bEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-FreeFormDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mf6rEkEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mf7LEkEeS8wqq-i9d2rg" name="CategoryValue" eSuperTypes="_r3mfo7EkEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mf7bEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CategoryValue"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mf77EkEeS8wqq-i9d2rg" name="ServiceContract" eSuperTypes="_r3mflbEkEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mf8LEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceContract"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mf8bEkEeS8wqq-i9d2rg" name="RoleType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mf8rEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mf87EkEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;&#xA;&#x9;&#x9;role.type.oclIsTypeOf(UML::Interface) &#xD;&#xA;&#x9;or &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class)&#x9;and &#xD;&#xA;&#x9;&#x9;(role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;&#xA;&#x9;&#x9;&#x9;and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;&#xA;&#x9;&#x9;)&#xD;&#xA;&#x9;&#x9;&#x9;or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;&#xA;&#x9;&#x9;))) ,&#xD;&#xA; message='\'role type of ServiceContract : ”' + base_Collaboration.name +'\' must be a ServiceInterface or UML Interface or Class stereotyped as “Provider” or “Consumer.”',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mf9bEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mf9rEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mf97EkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mf-bEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mf-rEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mf-7EkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mf_LEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mf_bEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mf_rEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgALEkEeS8wqq-i9d2rg" name="Request">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgAbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Request"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mgArEkEeS8wqq-i9d2rg" name="requestType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgA7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgBLEkEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Request must be a ServiceInterface or an Interface (+provider or consumer)&#xD;&#xA;&#x9;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgBrEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgB7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgCLEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgCrEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgC7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgDLEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mgDbEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgDrEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgD7EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mgELEkEeS8wqq-i9d2rg" name="isConjugatedTrue">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgEbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgErEkEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgFLEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgFbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgFrEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgGLEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgGbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgGrEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mgG7EkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgHLEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgHbEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgHrEkEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgILEkEeS8wqq-i9d2rg" name="Participant">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgIbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Participant"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mgIrEkEeS8wqq-i9d2rg" name="noRealizedUsedInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgI7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgJLEkEeS8wqq-i9d2rg" key="body" value="&#xD;&#xA;&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;&#xA;Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0&#xD;&#xA;,&#xD;&#xA; message='Participant : ''\'' + base_Class.name + '\' cannot realize or use Interfaces directly;',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgJrEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgJ7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgKLEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgKrEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgK7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgLLEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mgLbEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgLrEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgL7EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mgMLEkEeS8wqq-i9d2rg" name="portTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgMbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgMrEkEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status= &#xD;&#xA; let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 ) ,&#xD;&#xA; message='\'' + base_Class.name + '\' ports must be a Request or a Service',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgNLEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgNbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgNrEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgOLEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgObEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgOrEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mgO7EkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgPLEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgPbEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgPrEkEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgQLEkEeS8wqq-i9d2rg" name="NodeDescriptor">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgQbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-NodeDescriptor"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgQrEkEeS8wqq-i9d2rg" name="base_Artifact" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Artifact"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgRLEkEeS8wqq-i9d2rg" name="Consumer">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgRbEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Consumer"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgRrEkEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgSLEkEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgSrEkEeS8wqq-i9d2rg" name="Catalog" eSuperTypes="_r3mgQLEkEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgS7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Catalog"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgTLEkEeS8wqq-i9d2rg" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgT7EkEeS8wqq-i9d2rg" name="Capability">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgULEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Capability"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgUbEkEeS8wqq-i9d2rg" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgU7EkEeS8wqq-i9d2rg" name="Categorization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgVLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Categorization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgVbEkEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgV7EkEeS8wqq-i9d2rg" name="MotivationRealization">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgWLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-MotivationRealization"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgWbEkEeS8wqq-i9d2rg" name="base_Realization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Realization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgW7EkEeS8wqq-i9d2rg" name="ServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgXLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceInterface"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mgXbEkEeS8wqq-i9d2rg" name="partsTypesOfServiceInterface">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgXrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgX7EkEeS8wqq-i9d2rg" key="body" value="if self.base_Interface.oclIsUndefined()&#xD;&#xA;then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;&#xA;&#x9;self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;)&#xD;&#xA;else &#xD;&#xA;&#x9;self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#x9;&#xD;&#xA;&#x9;&#x9;self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;&#xA;&#x9;)&#xD;&#xA;endif&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgYbEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgYrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgY7EkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgZbEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgZrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgZ7EkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mgaLEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgabEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgarEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mga7EkEeS8wqq-i9d2rg" name="base_Interface" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Interface"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3mgbbEkEeS8wqq-i9d2rg" name="base_Class" ordered="false">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgb7EkEeS8wqq-i9d2rg" name="ServicesArchitecture" eSuperTypes="_r3mflbEkEeS8wqq-i9d2rg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgcLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServicesArchitecture"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mgcbEkEeS8wqq-i9d2rg" name="participantsRoleCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgcrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgc7EkEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;collBUses->notEmpty() implies &#xD;&#xA;-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;&#xA;--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;&#xA;collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;&#xA;&#x9;portTypesOfSupplier=&#x9;rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#x9;&#xD;&#xA;portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;&#xA;--2. the supplier has a port type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;&#xA;--3. the supplier has a port type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;&#xA;--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;&#xA;or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgdbEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgdrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgd7EkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgebEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgerEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mge7EkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mgfLEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgfbEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgfrEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3mgf7EkEeS8wqq-i9d2rg" name="partsTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mggLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mggbEkEeS8wqq-i9d2rg" key="body" value="let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;&#xA;collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;&#xA;properties->notEmpty() implies &#xD;&#xA;properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability')->size()=1) )&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgg7EkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mghLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mghbEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3mgh7EkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgiLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3mgibEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3mgirEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgi7EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3mgjLEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3mgjrEkEeS8wqq-i9d2rg" name="Attachment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3mgj7EkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Attachment"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_r3mgkLEkEeS8wqq-i9d2rg" name="encoding" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3nGkbEkEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_r3nGk7EkEeS8wqq-i9d2rg" name="mimetype" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3nGlbEkEeS8wqq-i9d2rg" name="CollaborationUse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGlrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-CollaborationUse"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3nGl7EkEeS8wqq-i9d2rg" name="RoleBindingClientSupplierCompatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGmLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGmbEkEeS8wqq-i9d2rg" key="body" value="--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;&#xA;--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;&#xA;self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;&#xA;and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;&#xA;--For parts to be compatible with a role, one of the following must be true:&#xD;&#xA;--1. The role and part have the same type.&#xD;&#xA;self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;&#xA;&#x9;(let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;&#xA;&#x9;->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;&#xA;&#x9;clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;&#xA;&#x9;supplierType= clientType&#xD;&#xA;--2. The part (the supplier) has a type that specializes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;&#xA;--3. The part has a type that realizes the type of the role.&#xD;&#xA;or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;&#xA;--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;&#xA;--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;&#xA;or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;&#xA;&#x9;and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;&#xA;) )&#xD;&#xA;--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;&#xA;)&#xD;&#xA;)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nGm7EkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGnLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGnbEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nGn7EkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGoLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGobEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3nGorEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nGo7EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nGpLEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3nGpbEkEeS8wqq-i9d2rg" name="base_CollaborationUse" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//CollaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_r3nGp7EkEeS8wqq-i9d2rg" name="isStrict" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3nGqbEkEeS8wqq-i9d2rg" name="ServiceChannel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGqrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-ServiceChannel"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3nGq7EkEeS8wqq-i9d2rg" name="Onlybinaryconnectorsallowed">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGrLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGrbEkEeS8wqq-i9d2rg" key="body" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nGr7EkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGsLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGsbEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nGs7EkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGtLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGtbEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3nGtrEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nGt7EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nGuLEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3nGubEkEeS8wqq-i9d2rg" name="serviceChannelEndTypes">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGurEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGu7EkEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA;let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;&#xA; portsSet->size()>0 implies &#xD;&#xA; portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' : One end of a ServiceChannel must be a Request and the other a Service in an architecture',&#xD;&#xA; severity=-5&#xD;&#xA;}.status&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nGvbEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGvrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGv7EkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nGwbEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGwrEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGw7EkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3nGxLEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nGxbEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nGxrEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3nGx7EkEeS8wqq-i9d2rg" name="Compatibility">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGyLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGybEkEeS8wqq-i9d2rg" key="body" value="let &#xD;&#xA; requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Request))->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;&#xA; serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier)&#xD;&#xA; in &#xD;&#xA;--The Request and Service connected by a ServiceChannel must be compatible&#xD;&#xA;--1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;&#xA;Tuple{&#xD;&#xA; status=&#xD;&#xA;not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier &#xD;&#xA;or&#xD;&#xA; --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;&#xA;serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;&#xA; requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;&#xA; --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;&#xA;--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;&#xA;--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;&#xA;(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;&#xA;&#x9;requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations())&#xD;&#xA;)&#xD;&#xA;--4. Any of the above is true for a subset of a ServiceInterface as defined by a port on that service interface.&#xD;&#xA;,&#xD;&#xA; message='\'' + base_Connector.name + '\' has incompatible ends ',&#xD;&#xA; severity=-5&#xD;&#xA;}.status "/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nGy7EkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nGzLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nGzbEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nGz7EkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG0LEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG0bEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3nG0rEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nG07EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nG1LEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3nG1bEkEeS8wqq-i9d2rg" name="base_Connector" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3nG17EkEeS8wqq-i9d2rg" name="Service">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG2LEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Service"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3nG2bEkEeS8wqq-i9d2rg" name="serviceType">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG2rEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG27EkEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; let portType: Type= base_Port.type in&#xD;&#xA; portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface) ,&#xD;&#xA; message='\'' + base_Port.name+ '\' should have Interface or ServiceInterface Type' ,&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;--The type of a Service must be a ServiceInterface or an Interface (+provider or consumer)"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nG3bEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG3rEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG37EkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nG4bEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG4rEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG47EkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3nG5LEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nG5bEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nG5rEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3nG57EkEeS8wqq-i9d2rg" name="isConjugatedFalse">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG6LEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG6bEkEeS8wqq-i9d2rg" key="body" value="Tuple{&#xD;&#xA; status=&#xD;&#xA; not base_Port.isConjugated,&#xD;&#xA; message='\'' + base_Port.name + '\' must not be Conjugated',&#xD;&#xA; severity=-4&#xD;&#xA;}.status&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;--&#xD;&#xA;"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nG67EkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG7LEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG7bEkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nG77EkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG8LEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG8bEkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3nG8rEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nG87EkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nG9LEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3nG9bEkEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3nG97EkEeS8wqq-i9d2rg" name="Port">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG-LEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Port"/>
+ <eOperations xmi:type="ecore:EOperation" xmi:id="_r3nG-bEkEeS8wqq-i9d2rg" name="connectorRequired">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG-rEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/Ecore/OCL">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG-7EkEeS8wqq-i9d2rg" key="body" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nG_bEkEeS8wqq-i9d2rg" name="diagnostics">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nG_rEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nG_7EkEeS8wqq-i9d2rg" key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ </eParameters>
+ <eParameters xmi:type="ecore:EParameter" xmi:id="_r3nHAbEkEeS8wqq-i9d2rg" name="context">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nHArEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r3nHA7EkEeS8wqq-i9d2rg" key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType xmi:type="ecore:EGenericType" xmi:id="_r3nHBLEkEeS8wqq-i9d2rg">
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nHBbEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eTypeArguments xmi:type="ecore:EGenericType" xmi:id="_r3nHBrEkEeS8wqq-i9d2rg">
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eTypeArguments>
+ <eClassifier xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3nHB7EkEeS8wqq-i9d2rg" name="base_Port" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_r3nHCbEkEeS8wqq-i9d2rg" name="connectorRequired" ordered="false" lowerBound="1" defaultValueLiteral="true">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3nHC7EkEeS8wqq-i9d2rg" name="Property">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nHDLEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Property"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_r3nHDbEkEeS8wqq-i9d2rg" name="isID" ordered="false" lowerBound="1" defaultValueLiteral="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3nHD7EkEeS8wqq-i9d2rg" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_r3nHEbEkEeS8wqq-i9d2rg" name="Expose">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3nHErEkEeS8wqq-i9d2rg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="SoaML-Expose"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_r3nHE7EkEeS8wqq-i9d2rg" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_zzpk8KbwEeSZVKXq5L0J5A" alias="Class">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_zzqMAKbwEeSZVKXq5L0J5A" alias="Interface">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ </elementImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_le8h8VJvEeGG8NREx7W2pw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_66RiAK3tEeOyHqF9NZpViQ">
+ <importedPackage xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Property_Attachment" name="Property_Attachment" memberEnd="SoaML-Attachment-base_Property SoaML-Property_Attachment-extension_Attachment">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Property_Attachment-extension_Attachment" name="extension_Attachment" type="SoaML-Attachment" aggregation="composite" association="SoaML-Property_Attachment"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Agent" name="Agent">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_2JOZgKVhEeSXLM3PPnJI_A" name="isActive" constrainedElement="SoaML-Agent">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="__Z_aQKVhEeSXLM3PPnJI_A">
+ <language>OCL</language>
+ <body>base_Class.isActive</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_XoWUUKfWEeSJqPDxTBeNYw" general="SoaML-Participant"/>
+ <icon xmi:type="uml:Image" xmi:id="_HgfvoL6CEeSvUdl1XXO70w" format="" location="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/agent16x16.gif">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hgfvob6CEeSvUdl1XXO70w" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hgfvor6CEeSvUdl1XXO70w" key="image_name_key" value="agent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hgfvo76CEeSvUdl1XXO70w" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Collaboration" name="Collaboration">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Collaboration-base_Collaboration" name="base_Collaboration" association="SoaML-Collaboration_Collaboration">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Collaboration"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Collaboration-isStrict" name="isStrict" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="SoaML-Collaboration-isStrict-defaultValue" value="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Package_Catalog" name="Package_Catalog" memberEnd="SoaML-Catalog-base_Package SoaML-Package_Catalog-extension_Catalog">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Package_Catalog-extension_Catalog" name="extension_Catalog" type="SoaML-Catalog" aggregation="composite" association="SoaML-Package_Catalog"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="SoaML-MotivationElement" name="MotivationElement" isAbstract="true"/>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Realization_ContractRealization" name="Realization_ContractRealization" memberEnd="SoaML-MotivationRealization-base_Realization SoaML-Realization_ContractRealization-extension_ContractRealization">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Realization_ContractRealization-extension_ContractRealization" name="extension_ContractRealization" type="SoaML-MotivationRealization" aggregation="composite" association="SoaML-Realization_ContractRealization"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Class_MessageType" name="Class_MessageType" memberEnd="SoaML-MessageType-base_Class SoaML-Class_MessageType-extension_MessageType">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Class_MessageType-extension_MessageType" name="extension_MessageType" type="SoaML-MessageType" aggregation="composite" association="SoaML-Class_MessageType"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Connector_ServiceChannel" name="Connector_ServiceChannel" memberEnd="SoaML-ServiceChannel-base_Connector SoaML-Connector_ServiceChannel-extension_ServiceChannel">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Connector_ServiceChannel-extension_ServiceChannel" name="extension_ServiceChannel" type="SoaML-ServiceChannel" aggregation="composite" association="SoaML-Connector_ServiceChannel"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Provider" name="Provider">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2SQ8cKbwEeSZVKXq5L0J5A" name="base_Class" association="_2SRjgKbwEeSZVKXq5L0J5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g-Ya4KhrEeSaf45x9W3q6g"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_g-ZB8KhrEeSaf45x9W3q6g" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3Zg4YKbwEeSZVKXq5L0J5A" name="base_Interface" association="_3ZhfcKbwEeSZVKXq5L0J5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hwnwIKhrEeSaf45x9W3q6g"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hwoXMKhrEeSaf45x9W3q6g" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-FreeFormValue" name="FreeFormValue">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-FreeFormValue-base_ValueSpecification" name="base_ValueSpecification" association="SoaML-ValueSpecification_FreeFormValue">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ValueSpecification"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-ValueSpecification_FreeFormValue" name="ValueSpecification_FreeFormValue" memberEnd="SoaML-FreeFormValue-base_ValueSpecification SoaML-ValueSpecification_FreeFormValue-extension_FreeFormValue">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-ValueSpecification_FreeFormValue-extension_FreeFormValue" name="extension_FreeFormValue" type="SoaML-FreeFormValue" aggregation="composite" association="SoaML-ValueSpecification_FreeFormValue"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-MessageType" name="MessageType">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_yq21MKVhEeSXLM3PPnJI_A" name="noOwnedBehaviors" constrainedElement="SoaML-MessageType">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_f612UKViEeSXLM3PPnJI_A">
+ <language>OCL</language>
+ <body>self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_UVl4MKVnEeSXLM3PPnJI_A" name="noOwnedOperations" constrainedElement="SoaML-MessageType">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_ksxiAKVnEeSXLM3PPnJI_A">
+ <language>OCL</language>
+ <body>if self.base_Class&lt;>null &#xD;
+then self.base_Class.ownedOperation->size()=0 &#xD;
+else&#xD;
+ if self.base_DataType&lt;>null &#xD;
+ then self.base_DataType.ownedOperation->size()=0&#xD;
+ else self.base_Signal&lt;>null implies true endif &#xD;
+endif</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_OTmGQKV3EeSyVbgMGJ_UVQ" name="publicAttributes" constrainedElement="SoaML-MessageType">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_UF-psKV5EeSyVbgMGJ_UVQ">
+ <language>OCL</language>
+ <body>if self.base_Class&lt;>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;
+ else &#xD;
+ (if self.base_DataType&lt;>null then &#xD;
+ self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)&#xD;
+ else &#xD;
+ self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)&#xD;
+ endif)&#xD;
+ endif</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-MessageType-base_Signal" name="base_Signal" association="SoaML-Signal_MessageType">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Signal"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eSEq0KrKEeSh-flwNEDuaQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eSHHEKrKEeSh-flwNEDuaQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-MessageType-encoding" name="encoding" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PnrbgKrhEeSgjY5tgaiAgg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PntQsKrhEeSgjY5tgaiAgg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-MessageType-base_Class" name="base_Class" association="SoaML-Class_MessageType">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_for4cKrKEeSh-flwNEDuaQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fotGkKrKEeSh-flwNEDuaQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-MessageType-base_DataType" name="base_DataType" association="SoaML-DataType_MessageType">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gu1BIKrKEeSh-flwNEDuaQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gu2PQKrKEeSh-flwNEDuaQ" value="1"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_TebEwL6DEeSvUdl1XXO70w" location="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/msgtype16x16.png">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TebEwb6DEeSvUdl1XXO70w" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TebEwr6DEeSvUdl1XXO70w" key="image_name_key" value="messageTypeIcon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TebEw76DEeSvUdl1XXO70w" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Category" name="Category">
+ <generalization xmi:type="uml:Generalization" xmi:id="SoaML-Category-generalization" general="SoaML-NodeDescriptor"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Port_Port" name="Port_Port" memberEnd="SoaML-Port-base_Port SoaML-Port_Port-extension_Port">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Port_Port-extension_Port" name="extension_Port" type="SoaML-Port" aggregation="composite" association="SoaML-Port_Port"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Milestone" name="Milestone">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Milestone-signal" name="signal" visibility="public" association="SoaML-packagedElement-23">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Signal"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SoaML-Milestone-signal-lowerValue"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SoaML-Milestone-signal-upperValue" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Milestone-progress" name="progress" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Milestone-value" name="value" visibility="public" aggregation="shared" association="SoaML-packagedElement-18">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ValueSpecification"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SoaML-Milestone-value-lowerValue"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SoaML-Milestone-value-upperValue" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Milestone-base_Comment" name="base_Comment" association="SoaML-Comment_PorgressLabel">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Comment"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Property_FreeFormDescriptor" name="Property_FreeFormDescriptor" memberEnd="SoaML-FreeFormDescriptor-base_Property SoaML-Property_FreeFormDescriptor-extension_FreeFormDescriptor">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Property_FreeFormDescriptor-extension_FreeFormDescriptor" name="extension_FreeFormDescriptor" type="SoaML-FreeFormDescriptor" aggregation="composite" association="SoaML-Property_FreeFormDescriptor"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-FreeFormDescriptor" name="FreeFormDescriptor">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-FreeFormDescriptor-base_Property" name="base_Property" association="SoaML-Property_FreeFormDescriptor">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-CategoryValue" name="CategoryValue">
+ <generalization xmi:type="uml:Generalization" xmi:id="SoaML-CategoryValue-generalization" general="SoaML-FreeFormValue"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Collaboration_Collaboration" name="Collaboration_Collaboration" memberEnd="SoaML-Collaboration-base_Collaboration SoaML-Collaboration_Collaboration-extension_Collaboration">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Collaboration_Collaboration-extension_Collaboration" name="extension_Collaboration" type="SoaML-Collaboration" aggregation="composite" association="SoaML-Collaboration_Collaboration"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-ServiceContract" name="ServiceContract">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_8JzecK0NEeSlTMA1djG_jg" name="RoleType">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_SamYQK0UEeSlTMA1djG_jg">
+ <language>OCL</language>
+ <body> self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|&#xD;
+ role.type.oclIsTypeOf(UML::Interface) &#xD;
+ or &#xD;
+ (role.type.oclIsTypeOf(UML::Class) and &#xD;
+ (role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0 &#xD;
+ and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0&#xD;
+ )&#xD;
+ or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0&#xD;
+ ))) </body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_hxXYoLHPEeS8wqq-i9d2rg" name="AttachedBehaviorCompatibility">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_yWBdwLHPEeS8wqq-i9d2rg">
+ <language>OCL</language>
+ <body> self.base_Collaboration.ownedBehavior->size()>0 implies (&#xD;
+ self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies&#xD;
+ let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),&#xD;
+ lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,&#xD;
+ messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,&#xD;
+ messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment&#xD;
+ ->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in &#xD;
+ lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) ) &#xD;
+ and &#xD;
+ messages->size()>0 implies messages&#xD;
+ --->select(m|m.messageSort=MessageSort::asynchCall) &#xD;
+ --signature of messages should be one of the operations or signal of the corresponding Service Declaration&#xD;
+ ->forAll(m|m.signature.oclIsTypeOf(Operation) implies &#xD;
+ m.receiveEvent.oclAsType(MessageOccurrenceSpecification).covered->flatten()->asOrderedSet()&#xD;
+ ->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))&#xD;
+ ->includes(m.signature.oclAsType(Operation)) and &#xD;
+ m.signature.oclIsTypeOf(Signal) implies &#xD;
+ m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()&#xD;
+ ->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement&#xD;
+ ->select(oclIsTypeOf(Signal))->includes(m.signature.oclAsType(Signal)&#xD;
+ )) )</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="SoaML-ServiceContract-generalization" general="SoaML-Collaboration"/>
+ <icon xmi:type="uml:Image" xmi:id="_gWj00L6DEeSvUdl1XXO70w" format="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/sc16x16.png">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gWj00b6DEeSvUdl1XXO70w" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gWj00r6DEeSvUdl1XXO70w" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gWj0076DEeSvUdl1XXO70w" key="image_name_key" value="ServiceContractIcon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Port_RequestPoint" name="Port_RequestPoint" memberEnd="SoaML-Request-base_Port SoaML-Port_RequestPoint-extension_RequestPoint">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Port_RequestPoint-extension_RequestPoint" name="extension_RequestPoint" type="SoaML-Request" aggregation="composite" association="SoaML-Port_RequestPoint"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Request" name="Request">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_pZkyoKYHEeSyVbgMGJ_UVQ" name="requestType" constrainedElement="SoaML-Request">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_yDxioKYHEeSyVbgMGJ_UVQ">
+ <language>OCL</language>
+ <body> let portType: Type= base_Port.type in&#xD;
+ portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) </body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xkHSkKexEeScGqpAk9QH7A" name="isConjugatedTrue">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_FdSccKeyEeScGqpAk9QH7A">
+ <language>OCL</language>
+ <body>base_Port.isConjugated</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Request-base_Port" name="base_Port" association="SoaML-Port_RequestPoint">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_0eRXkNh6EeSrjoZkIy1fSA" location="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/Required.png">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0eRXkdh6EeSrjoZkIy1fSA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0eRXkth6EeSrjoZkIy1fSA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0eRXk9h6EeSrjoZkIy1fSA" key="image_name_key" value="requiredPortIcon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Participant" name="Participant">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_zQitcKVnEeSXLM3PPnJI_A" name="noRealizedUsedInterface" constrainedElement="SoaML-Participant">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_VtxWoKVoEeSXLM3PPnJI_A">
+ <language>OCL</language>
+ <body>Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and &#xD;
+Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_Ngm2AKVqEeSXLM3PPnJI_A" name="portTypes" constrainedElement="SoaML-Participant">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_LuHvQKVrEeSXLM3PPnJI_A">
+ <language>OCL</language>
+ <body> let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in&#xD;
+ portsSet->size()>0 implies &#xD;
+ portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_uRQgIKcAEeSrk7bGRySKyg" name="base_Class" association="_uRRuQKcAEeSrk7bGRySKyg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_BYI8ML6AEeSvUdl1XXO70w" format="png" location="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/participant16x16.png">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BYI8Mb6AEeSvUdl1XXO70w" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BYI8Mr6AEeSvUdl1XXO70w" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BYI8M76AEeSvUdl1XXO70w" key="image_name_key" value="participantIcon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Comment_PorgressLabel" name="Comment_PorgressLabel" memberEnd="SoaML-Milestone-base_Comment SoaML-Comment_PorgressLabel-extension_PorgressLabel">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Comment_PorgressLabel-extension_PorgressLabel" name="extension_PorgressLabel" type="SoaML-Milestone" aggregation="composite" association="SoaML-Comment_PorgressLabel"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-NodeDescriptor" name="NodeDescriptor">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-NodeDescriptor-base_Artifact" name="base_Artifact" association="SoaML-Artifact_DescriptorGroup">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Artifact"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Dependency_Categorization" name="Dependency_Categorization" memberEnd="SoaML-Categorization-base_Dependency SoaML-Dependency_Categorization-extension_Categorization">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Dependency_Categorization-extension_Categorization" name="extension_Categorization" type="SoaML-Categorization" aggregation="composite" association="SoaML-Dependency_Categorization"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Dependency_CapabilityExposure" name="Dependency_CapabilityExposure" memberEnd="SoaML-Expose-base_Dependency SoaML-Dependency_CapabilityExposure-extension_CapabilityExposure">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Dependency_CapabilityExposure-extension_CapabilityExposure" name="extension_CapabilityExposure" type="SoaML-Expose" aggregation="composite" association="SoaML-Dependency_CapabilityExposure"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Property_Property" name="Property_Property" memberEnd="SoaML-Property-base_Property SoaML-Property_Property-extension_Property">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Property_Property-extension_Property" name="extension_Property" type="SoaML-Property" aggregation="composite" association="SoaML-Property_Property"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-DataType_MessageType" name="DataType_MessageType" memberEnd="SoaML-MessageType-base_DataType SoaML-DataType_MessageType-extension_MessageType">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-DataType_MessageType-extension_MessageType" name="extension_MessageType" type="SoaML-MessageType" aggregation="composite" association="SoaML-DataType_MessageType"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Consumer" name="Consumer">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1j1wMKbwEeSZVKXq5L0J5A" name="base_Interface" association="_1j2XQKbwEeSZVKXq5L0J5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eT7m0KhrEeSaf45x9W3q6g"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eT8N4KhrEeSaf45x9W3q6g" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_22PMMKbwEeSZVKXq5L0J5A" name="base_Class" association="_22PMMabwEeSZVKXq5L0J5A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fql3wKhrEeSaf45x9W3q6g"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fqme0KhrEeSaf45x9W3q6g" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Catalog" name="Catalog">
+ <generalization xmi:type="uml:Generalization" xmi:id="SoaML-Catalog-generalization" general="SoaML-NodeDescriptor"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Catalog-base_Package" name="base_Package" association="SoaML-Package_Catalog">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Port_ServicePoint" name="Port_ServicePoint" memberEnd="SoaML-Service-base_Port SoaML-Port_ServicePoint-extension_ServicePoint">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Port_ServicePoint-extension_ServicePoint" name="extension_ServicePoint" type="SoaML-Service" aggregation="composite" association="SoaML-Port_ServicePoint"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Artifact_DescriptorGroup" name="Artifact_DescriptorGroup" memberEnd="SoaML-NodeDescriptor-base_Artifact SoaML-Artifact_DescriptorGroup-extension_DescriptorGroup">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Artifact_DescriptorGroup-extension_DescriptorGroup" name="extension_DescriptorGroup" type="SoaML-NodeDescriptor" aggregation="composite" association="SoaML-Artifact_DescriptorGroup"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-CollaborationUse_ContractFulfillment" name="CollaborationUse_ContractFulfillment" memberEnd="SoaML-CollaborationUse-base_CollaborationUse SoaML-CollaborationUse_ContractFulfillment-extension_ContractFulfillment">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-CollaborationUse_ContractFulfillment-extension_ContractFulfillment" name="extension_ContractFulfillment" type="SoaML-CollaborationUse" aggregation="composite" association="SoaML-CollaborationUse_ContractFulfillment"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="SoaML-packagedElement-18" memberEnd="SoaML-packagedElement-18-ownedEnd SoaML-Milestone-value">
+ <ownedEnd xmi:type="uml:Property" xmi:id="SoaML-packagedElement-18-ownedEnd" name="milestone" visibility="public" type="SoaML-Milestone" association="SoaML-packagedElement-18">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SoaML-packagedElement-18-ownedEnd-lowerValue"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SoaML-packagedElement-18-ownedEnd-upperValue" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Capability" name="Capability">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Capability-base_Class" name="base_Class" association="SoaML-Class_Capability">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_p-NEgL6DEeSvUdl1XXO70w" format="" location="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/capability16x16.png">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p-NEgb6DEeSvUdl1XXO70w" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p-NEgr6DEeSvUdl1XXO70w" key="image_name_key" value="CapabilityIcon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p-NEg76DEeSvUdl1XXO70w" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Categorization" name="Categorization">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Categorization-base_Dependency" name="base_Dependency" association="SoaML-Dependency_Categorization">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Signal_MessageType" name="Signal_MessageType" memberEnd="SoaML-MessageType-base_Signal SoaML-Signal_MessageType-extension_MessageType">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Signal_MessageType-extension_MessageType" name="extension_MessageType" type="SoaML-MessageType" aggregation="composite" association="SoaML-Signal_MessageType"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-MotivationRealization" name="MotivationRealization">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-MotivationRealization-base_Realization" name="base_Realization" association="SoaML-Realization_ContractRealization">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Realization"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-ServiceInterface" name="ServiceInterface">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_mwXE8Kr6EeSzWoL50MoSpQ" name="partsTypesOfServiceInterface">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_cf-k0Kr7EeSzWoL50MoSpQ">
+ <language>OCL</language>
+ <body>if self.base_Interface.oclIsUndefined()&#xD;
+then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or &#xD;
+ self.base_Class.allRealizedInterfaces()->includes(a.type)&#xD;
+)&#xD;
+else &#xD;
+ self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or &#xD;
+ self.base_Interface.allRealizedInterfaces()->includes(a.type)&#xD;
+ )&#xD;
+endif</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_t8PLAKcDEeSBFrJi24CP7w" name="base_Interface" association="_t8SOUKcDEeSBFrJi24CP7w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GYK5sKeZEeS-eMdtOM54rg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GYMH0KeZEeS-eMdtOM54rg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ufqBIKcDEeSBFrJi24CP7w" name="base_Class" association="_ufrPQKcDEeSBFrJi24CP7w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HXVQoKeZEeS-eMdtOM54rg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HXV3sKeZEeS-eMdtOM54rg" value="1"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_8Ge-4L6LEeSvUdl1XXO70w" format="" location="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/si16x16.png">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8Ge-4b6LEeSvUdl1XXO70w" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8Ge-4r6LEeSvUdl1XXO70w" key="image_name_key" value="ServiceInterface"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8Ge-476LEeSvUdl1XXO70w" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-ServicesArchitecture" name="ServicesArchitecture">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_Avo08KYaEeSseIkCe_35AA" name="participantsRoleCompatibility" constrainedElement="SoaML-ServicesArchitecture">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_Co8f8KYaEeSseIkCe_35AA">
+ <language>OCL</language>
+ <body>let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;
+collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;
+collBUses->notEmpty() implies &#xD;
+-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant. &#xD;
+--This port shall have a type compliant with the type of the role used in the ServiceContract.&#xD;
+collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let &#xD;
+ portTypesOfSupplier= rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))->collect(oclAsType(UML::Property).type.oclAsType(Class).getAllAttributes())->select(att|att.oclIsTypeOf(UML::Port))->collect(oclAsType(UML::Port).type) , clientType=rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first()in &#xD;
+portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.&#xD;
+--2. the supplier has a port type that specializes the type of the role.&#xD;
+or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier)) &#xD;
+--3. the supplier has a port type that realizes the type of the role.&#xD;
+or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier)) &#xD;
+--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.&#xD;
+or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;
+ and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;
+) )</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_0k-YAKuBEeS67dn1jOrjhg" name="partsTypes">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="__0fkcKuBEeS67dn1jOrjhg">
+ <language>OCL</language>
+ <body>let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,&#xD;
+collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in&#xD;
+properties->notEmpty() implies &#xD;
+properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability' or s.name='Agent' )->size()=1) )&#xD;
+</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="SoaML-ServicesArchitecture-generalization" general="SoaML-Collaboration"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_IXuksL6lEeSvUdl1XXO70w" name="getIcon">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gxkdYL6lEeSvUdl1XXO70w" name="image">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Image"/>
+ <defaultValue xmi:type="uml:LiteralNull" xmi:id="_gxkdYb6lEeSvUdl1XXO70w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <icon xmi:type="uml:Image" xmi:id="_a0tV0L6DEeSvUdl1XXO70w" format="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/sa16x16.png">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a0t84L6DEeSvUdl1XXO70w" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a0t84b6DEeSvUdl1XXO70w" key="image_name_key" value="ServicesArchitectureIcon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a0t84r6DEeSvUdl1XXO70w" key="image_kind_key" value="icon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Attachment" name="Attachment">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Attachment-encoding" name="encoding" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Attachment-base_Property" name="base_Property" association="SoaML-Property_Attachment">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Attachment-mimetype" name="mimetype" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="SoaML-packagedElement-23" memberEnd="SoaML-packagedElement-23-ownedEnd SoaML-Milestone-signal">
+ <ownedEnd xmi:type="uml:Property" xmi:id="SoaML-packagedElement-23-ownedEnd" name="milestone" visibility="public" type="SoaML-Milestone" association="SoaML-packagedElement-23">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SoaML-packagedElement-23-ownedEnd-lowerValue"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="SoaML-packagedElement-23-ownedEnd-upperValue" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-CollaborationUse" name="CollaborationUse">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_1lKZ0K0aEeSlTMA1djG_jg" name="RoleBindingClientSupplierCompatibility">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_6GlWkK0aEeSlTMA1djG_jg">
+ <language>OCL</language>
+ <body>--only in case of defining Contract collaboratinUse inside the ServiceInterface&#xD;
+--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.&#xD;
+self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier) &#xD;
+and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies&#xD;
+--For parts to be compatible with a role, one of the following must be true:&#xD;
+--1. The role and part have the same type.&#xD;
+self.base_CollaborationUse.roleBinding-> forAll(rb|&#xD;
+ (let supplierType =(rb.oclAsType(UML::Dependency).supplier->select(s|s.oclIsTypeOf(UML::Property))->select(s|s.oclAsType(UML::Property).type.oclIsTypeOf(Class))&#xD;
+ ->collect(oclAsType(UML::Property).type ->asOrderedSet()->first())),&#xD;
+ clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (&#xD;
+ supplierType= clientType&#xD;
+--2. The part (the supplier) has a type that specializes the type of the role.&#xD;
+or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType)) &#xD;
+--3. The part has a type that realizes the type of the role.&#xD;
+or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType)) &#xD;
+--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a&#xD;
+--special case of item 3 where the part has an Interface type that realizes another Interface.&#xD;
+or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes()) &#xD;
+ and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())&#xD;
+) )&#xD;
+--5. The type of each role in a service contract shall have a uses dependency to the type of all roles that role is connected to.&#xD;
+)&#xD;
+)</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-CollaborationUse-base_CollaborationUse" name="base_CollaborationUse" association="SoaML-CollaborationUse_ContractFulfillment">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#CollaborationUse"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-CollaborationUse-isStrict" name="isStrict" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="SoaML-Class_Capability" name="Class_Capability" memberEnd="SoaML-Capability-base_Class SoaML-Class_Capability-extension_Capability">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SoaML-Class_Capability-extension_Capability" name="extension_Capability" type="SoaML-Capability" aggregation="composite" association="SoaML-Class_Capability"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-ServiceChannel" name="ServiceChannel">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_p8D1oKX8EeSyVbgMGJ_UVQ" name="Onlybinaryconnectorsallowed" constrainedElement="SoaML-ServiceChannel">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xDLpUKX8EeSyVbgMGJ_UVQ">
+ <language>OCL</language>
+ <body>self.base_Connector.end->size() = 2 &#xD;
+--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) </body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_QD7ZMKYsEeS49ZHKZ2knEA" name="serviceChannelEndTypes">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_aR3z4KYsEeS49ZHKZ2knEA">
+ <language>OCL</language>
+ <body>let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in&#xD;
+ portsSet->size()>0 implies &#xD;
+ portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )&#xD;
+</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_QWsUcKY9EeSpr8ht2uoOkw" name="Compatibility">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_U26XUKY9EeSpr8ht2uoOkw">
+ <language>OCL</language>
+ <body>let &#xD;
+ requestTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Request))&#xD;
+ -> select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier),&#xD;
+ serviceTypeClassifier: UML::Classifier=self.base_Connector.end->select(p|p.oclIsTypeOf(UML::Port) and oclIsTypeOf(SoaML::Service))&#xD;
+ ->select(p|p.oclAsType(UML::Port).type.oclIsTypeOf(Classifier))->first().oclAsType(UML::Port).type.oclAsType(Classifier) in &#xD;
+--The Request and Service connected by a ServiceChannel must be compatible&#xD;
+ --1. The Request and Service have the same type, either an Interface or ServiceInterface.&#xD;
+not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or&#xD;
+ --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1&#xD;
+serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or&#xD;
+ requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or&#xD;
+ --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an &#xD;
+--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used &#xD;
+--through the Service, and the protocols for how the capabilities are compatible between the Request and Service. &#xD;
+(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and &#xD;
+ requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-ServiceChannel-base_Connector" name="base_Connector" association="SoaML-Connector_ServiceChannel">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Service" name="Service">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_IKftsKX-EeSyVbgMGJ_UVQ" name="serviceType" constrainedElement="SoaML-Service">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="___uPMKX-EeSyVbgMGJ_UVQ">
+ <language>OCL</language>
+ <body> if base_Port.type.oclIsUndefined() then false else&#xD;
+ let portType: Type= base_Port.type in&#xD;
+ portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)&#xD;
+ endif </body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_AC_A0Ke7EeSS1b7ZnN9lfQ" name="isConjugatedFalse">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_Gusq4Ke7EeSS1b7ZnN9lfQ">
+ <language>OCL</language>
+ <body> &#xD;
+ not base_Port.isConjugated</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Service-base_Port" name="base_Port" association="SoaML-Port_ServicePoint">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+ </ownedAttribute>
+ <icon xmi:type="uml:Image" xmi:id="_u4KDoNh6EeSrjoZkIy1fSA" location="platform:/plugin/org.eclipse.papyrus.soaml.profile/icons/Provided.png">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u4KDodh6EeSrjoZkIy1fSA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_u4KDoth6EeSrjoZkIy1fSA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_22QioNh6EeSrjoZkIy1fSA" key="image_name_key" value="providedPortIcon"/>
+ </eAnnotations>
+ </icon>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Port" name="Port">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_r3NAYK0SEeSlTMA1djG_jg" name="connectorRequired">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_-7ZDAK0SEeSlTMA1djG_jg">
+ <language>OCL</language>
+ <body>--self.connectorRequired=true implies self.base_Port.owner.&#xD;
+true</body>
+ </specification>
+ </ownedRule>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Port-base_Port" name="base_Port" association="SoaML-Port_Port">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Port-connectorRequired" name="connectorRequired" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="SoaML-Port-connectorRequired-defaultValue" value="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Property" name="Property">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Property-isID" name="isID" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="SoaML-Property-isID-defaultValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Property-base_Property" name="base_Property" association="SoaML-Property_Property">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="SoaML-Expose" name="Expose">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="SoaML-Expose-base_Dependency" name="base_Dependency" association="SoaML-Dependency_CapabilityExposure">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_1j2XQKbwEeSZVKXq5L0J5A" name="Consumer_Interface" memberEnd="_1j2XQabwEeSZVKXq5L0J5A _1j1wMKbwEeSZVKXq5L0J5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_1j2XQabwEeSZVKXq5L0J5A" name="extension_Consumer" type="SoaML-Consumer" aggregation="composite" association="_1j2XQKbwEeSZVKXq5L0J5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_2SRjgKbwEeSZVKXq5L0J5A" name="Provider_Class" memberEnd="_2SRjgabwEeSZVKXq5L0J5A _2SQ8cKbwEeSZVKXq5L0J5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_2SRjgabwEeSZVKXq5L0J5A" name="extension_Provider" type="SoaML-Provider" aggregation="composite" association="_2SRjgKbwEeSZVKXq5L0J5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_22PMMabwEeSZVKXq5L0J5A" name="Consumer_Class" memberEnd="_22PMMqbwEeSZVKXq5L0J5A _22PMMKbwEeSZVKXq5L0J5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_22PMMqbwEeSZVKXq5L0J5A" name="extension_Consumer" type="SoaML-Consumer" aggregation="composite" association="_22PMMabwEeSZVKXq5L0J5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_3ZhfcKbwEeSZVKXq5L0J5A" name="Provider_Interface" memberEnd="_3ZhfcabwEeSZVKXq5L0J5A _3Zg4YKbwEeSZVKXq5L0J5A">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_3ZhfcabwEeSZVKXq5L0J5A" name="extension_Provider" type="SoaML-Provider" aggregation="composite" association="_3ZhfcKbwEeSZVKXq5L0J5A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_uRRuQKcAEeSrk7bGRySKyg" name="Participant_Class" memberEnd="_uRRuQacAEeSrk7bGRySKyg _uRQgIKcAEeSrk7bGRySKyg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_uRRuQacAEeSrk7bGRySKyg" name="extension_Participant" type="SoaML-Participant" aggregation="composite" association="_uRRuQKcAEeSrk7bGRySKyg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_t8SOUKcDEeSBFrJi24CP7w" name="ServiceInterface_Interface" memberEnd="_t8SOUacDEeSBFrJi24CP7w _t8PLAKcDEeSBFrJi24CP7w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_t8SOUacDEeSBFrJi24CP7w" name="extension_ServiceInterface" type="SoaML-ServiceInterface" aggregation="composite" association="_t8SOUKcDEeSBFrJi24CP7w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_ufrPQKcDEeSBFrJi24CP7w" name="ServiceInterface_Class" memberEnd="_ufrPQacDEeSBFrJi24CP7w _ufqBIKcDEeSBFrJi24CP7w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ufrPQacDEeSBFrJi24CP7w" name="extension_ServiceInterface" type="SoaML-ServiceInterface" aggregation="composite" association="_ufrPQKcDEeSBFrJi24CP7w"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_VMf4oK3uEeOyHqF9NZpViQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VPe7MK3uEeOyHqF9NZpViQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_a9a8sKxKEeSHcM5L6RsBfw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bEfOAKxKEeSHcM5L6RsBfw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/dsmlvalidation#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://DSMLValidation_PROFILES/PapyrusValidationRuleDSML.uml#__sUW0OhNEeCjcc2EgK3Uwg"/>
+ </profileApplication>
+ </uml:Profile>
+ <Ecore:EPackage xmi:id="_fu3EIK3uEeOyHqF9NZpViQ" base_Package="SoaML" packageName="SoaML" nsPrefix="SoaML" nsURI="http://Papyrus/SoaML/1" prefix="SoaML"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_li9_EKxKEeSHcM5L6RsBfw" base_Constraint="_2JOZgKVhEeSXLM3PPnJI_A" message="Agent must be active"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_5Jl4kLaLEeSBk8ZDbVpaMQ" base_Constraint="_QD7ZMKYsEeS49ZHKZ2knEA" message="One end of a ServiceChannel must be a Request and the other a Service in an architecture"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_uFiQELadEeSBk8ZDbVpaMQ" base_Constraint="_mwXE8Kr6EeSzWoL50MoSpQ" message="All parts of a ServiceInterface must be typed by the Interfaces realized or used by the ServiceInterface"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_vgRvwLadEeSBk8ZDbVpaMQ" base_Constraint="_zQitcKVnEeSXLM3PPnJI_A" message="Participant cannot realize or use Interfaces directly"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_wmX1ILadEeSBk8ZDbVpaMQ" base_Constraint="_Ngm2AKVqEeSXLM3PPnJI_A" message="Port must be a Request or a Service"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_x84VELadEeSBk8ZDbVpaMQ" base_Constraint="_xkHSkKexEeScGqpAk9QH7A" message="Request must be Conjugated"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_y0X9wLadEeSBk8ZDbVpaMQ" base_Constraint="_pZkyoKYHEeSyVbgMGJ_UVQ" message="The type of a Request must be a ServiceInterface, an Interface, a provider or a consumer"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_zn5FYLadEeSBk8ZDbVpaMQ" base_Constraint="_AC_A0Ke7EeSS1b7ZnN9lfQ" message="Service Port must not be Conjugated"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_0sLz8LadEeSBk8ZDbVpaMQ" base_Constraint="_IKftsKX-EeSyVbgMGJ_UVQ" message="The type of a Service must be a ServiceInterface, an Interface, a provider or a consumer"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_3PXiYLadEeSBk8ZDbVpaMQ" base_Constraint="_r3NAYK0SEeSlTMA1djG_jg"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_5MYosLadEeSBk8ZDbVpaMQ" base_Constraint="_QWsUcKY9EeSpr8ht2uoOkw" message="The Request and Service connected by a ServiceChannel must be compatible"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_7H7IULadEeSBk8ZDbVpaMQ" base_Constraint="_p8D1oKX8EeSyVbgMGJ_UVQ" message="Only binary connection are allowed"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_84Uu8LadEeSBk8ZDbVpaMQ" base_Constraint="_OTmGQKV3EeSyVbgMGJ_UVQ" message="All ownedAttributes must be Public"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_9xADYLadEeSBk8ZDbVpaMQ" base_Constraint="_UVl4MKVnEeSXLM3PPnJI_A" message="MessageType cannot contain ownedOperation"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_-sy9QLadEeSBk8ZDbVpaMQ" base_Constraint="_yq21MKVhEeSXLM3PPnJI_A" message="MessageType cannot contain ownedBehaviors"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_A5_NkLaeEeSBk8ZDbVpaMQ" base_Constraint="_Avo08KYaEeSseIkCe_35AA" message="Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant."/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_CD6qELaeEeSBk8ZDbVpaMQ" base_Constraint="_0k-YAKuBEeS67dn1jOrjhg" message="The parts of a ServicesArchitecture must be typed by a Participant or capability"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_DSJXwLaeEeSBk8ZDbVpaMQ" base_Constraint="_hxXYoLHPEeS8wqq-i9d2rg" message="Attached behavior should be compatible with the parts of the ServiceContract"/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_EIiNMLaeEeSBk8ZDbVpaMQ" base_Constraint="_8JzecK0NEeSlTMA1djG_jg" message="role type of ServiceContract must be a ServiceInterface or UML Interface or Class stereotyped as Provider or Consumer."/>
+ <PapyrusDSMLValidationRule:ValidationRule xmi:id="_FjYakLaeEeSBk8ZDbVpaMQ" base_Constraint="_1lKZ0K0aEeSlTMA1djG_jg" message="If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to. "/>
+</xmi:XMI>

Back to the top