Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaadia dhouib2015-04-30 04:07:53 -0400
committersdhouib2015-05-28 08:54:07 -0400
commit406652e2bb7c6cd1865118006346057fe4fdb29e (patch)
treec064643b93d47fc57e70ffddc4000ec80f5ad163 /extraplugins/soaml
parentaae2a6a125db226ec5d104c3f2298ce7a80c4f9b (diff)
downloadorg.eclipse.papyrus-406652e2bb7c6cd1865118006346057fe4fdb29e.tar.gz
org.eclipse.papyrus-406652e2bb7c6cd1865118006346057fe4fdb29e.tar.xz
org.eclipse.papyrus-406652e2bb7c6cd1865118006346057fe4fdb29e.zip
First commit of SoaML plugins
Diffstat (limited to 'extraplugins/soaml')
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.classpath7
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.project28
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/META-INF/MANIFEST.MF24
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/build.properties10
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/css/custom.css18
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/css/style.css5
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability.xml29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability16x16.pngbin0 -> 1094 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capabilityDiag16x16.pngbin0 -> 533 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/message.xml79
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtype16x16.pngbin0 -> 1099 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtypeDiag16x16.pngbin0 -> 554 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent.gifbin0 -> 1021 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent16x16.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant.palette.xml104
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant16x16.pngbin0 -> 1056 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participantDiag16x16.pngbin0 -> 552 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/sc16x16.pngbin0 -> 1104 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/scDiag16x16.pngbin0 -> 572 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/servicecontract.xml39
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/request16x16.pngbin0 -> 1018 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/service16x16.pngbin0 -> 1011 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/serviceinterface.xml91
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/si16x16.pngbin0 -> 1070 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/siDiag16x16.pngbin0 -> 487 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/sa16x16.pngbin0 -> 1092 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/saDiag16x16.pngbin0 -> 553 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/servicesarchitecture.xml49
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/icons/SoaML_Header_32x32.pngbin0 -> 1282 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/icons/soaml_header.pngbin0 -> 1280 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/plugin.properties3
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/plugin.xml63
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/Activator.java64
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/commands/CreateSoamlModelCommand.java78
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/editpolicies/PortNodeLabelDisplayEditPolicy.java90
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/editpolicy/provider/SoaMLDiagramsEditPolicyProvider.java91
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/utils/SoamlSelectionTester.java155
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/viewpoints/soaml.configuration68
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.classpath7
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.project28
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/META-INF/MANIFEST.MF15
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/build.properties5
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/icons/SoaML_new_Project32x32.gifbin0 -> 1483 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/plugin.properties3
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/plugin.xml32
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/Activator.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/NewSoamlModelWizard.java76
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/NewSoamlProjectWizard.java73
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.classpath7
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.project28
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/META-INF/MANIFEST.MF15
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/build.properties8
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/plugin.properties3
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/plugin.xml245
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/Activator.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/AgentClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/AttachmentClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CapabilityClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CatalogClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategorizationClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategoryClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategoryValueClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CollaborationClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CollaborationUseClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ConsumerClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ExposeClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/FreeFormDescriptorClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/FreeFormValueClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MessageTypeClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MilestoneClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MotivationRealizationClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/NodeDescriptorClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ParticipantClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/PortClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/PropertyClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ProviderClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/RequestClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceChannelClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceContractClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceInterfaceClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServicesArchitectureClientSelector.java29
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.classpath7
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.project28
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.settings/org.eclipse.jdt.core.prefs11
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/META-INF/MANIFEST.MF23
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/build.properties14
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/Provided.pngbin0 -> 337 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/Required.pngbin0 -> 210 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/SoaML_new_Project32x32.gifbin0 -> 1483 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/agent16x16.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/agent16x16.svg74
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/capability16x16.pngbin0 -> 1094 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/capability16x16.svg82
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/messageType.svg82
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/msgtype16x16.pngbin0 -> 1099 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/participant16x16.pngbin0 -> 1056 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/participant16x16.svg81
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/request16x16.pngbin0 -> 1018 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sa16x16.pngbin0 -> 1092 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sa16x16.svg82
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sc16x16.pngbin0 -> 1104 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sc16x16.svg82
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/service16x16.pngbin0 -> 1011 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/si16x16.pngbin0 -> 1070 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/si16x16.svg81
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/soaml_header.pngbin0 -> 1280 bytes
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaML.ecore514
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaML.genmodel160
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.di47
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.genmodel236
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.notation1436
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.uml19364
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/ecore.ecore516
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/types.ecore32
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/uml.ecore20461
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/palettes/Palette_classDiag.xml24
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/palettes/Palette_compositeDiag.xml1
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/plugin.properties4
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/plugin.xml43
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Agent.java42
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Attachment.java115
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Capability.java59
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Catalog.java58
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Categorization.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Category.java26
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/CategoryValue.java26
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Collaboration.java87
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/CollaborationUse.java123
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Consumer.java88
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Expose.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/FreeFormDescriptor.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/FreeFormValue.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/MessageType.java197
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Milestone.java164
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/MotivationElement.java27
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/MotivationRealization.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/NodeDescriptor.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Participant.java90
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Port.java103
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Property.java87
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Provider.java88
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Request.java90
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/Service.java93
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/ServiceChannel.java121
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/ServiceContract.java82
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/ServiceInterface.java111
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/ServicesArchitecture.java77
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/SoaMLFactory.java285
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/SoaMLPackage.java3105
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/AgentImpl.java113
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/AttachmentImpl.java289
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/CapabilityImpl.java165
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/CatalogImpl.java164
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/CategorizationImpl.java167
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/CategoryImpl.java48
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/CategoryValueImpl.java48
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/CollaborationImpl.java233
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/CollaborationUseImpl.java282
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ConsumerImpl.java227
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ExposeImpl.java167
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/FreeFormDescriptorImpl.java167
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/FreeFormValueImpl.java167
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/MessageTypeImpl.java459
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/MilestoneImpl.java366
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/MotivationElementImpl.java50
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/MotivationRealizationImpl.java167
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/NodeDescriptorImpl.java167
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ParticipantImpl.java241
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/PortImpl.java282
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/PropertyImpl.java230
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ProviderImpl.java227
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/RequestImpl.java243
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ServiceChannelImpl.java270
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ServiceContractImpl.java124
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ServiceImpl.java243
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ServiceInterfaceImpl.java276
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/ServicesArchitectureImpl.java126
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/SoaMLFactoryImpl.java390
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/impl/SoaMLPackageImpl.java1560
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/util/SoaMLAdapterFactory.java615
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/util/SoaMLResourceFactoryImpl.java61
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/util/SoaMLResourceImpl.java37
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/util/SoaMLSwitch.java692
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/util/SoaMLValidator.java905
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/src/SoaML/util/SoaMLXMLProcessor.java59
-rw-r--r--extraplugins/soaml/org.eclipse.papyrus.soaml.profile/style/style.css11
190 files changed, 61799 insertions, 0 deletions
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.classpath b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.classpath
new file mode 100644
index 00000000000..6e16b23d695
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.project b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.project
new file mode 100644
index 00000000000..a187c36539f
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.soaml.diagram.common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.settings/org.eclipse.jdt.core.prefs b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..11f6e462df7
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/META-INF/MANIFEST.MF b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..3350bd08806
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.papyrus.soaml.diagram.common;singleton:=true
+Bundle-Version: 1.1.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.soaml.diagram.common.Activator
+Require-Bundle: org.eclipse.papyrus.infra.core,
+ org.eclipse.papyrus.uml.tools.utils,
+ org.eclipse.papyrus.uml.diagram.common,
+ org.eclipse.papyrus.uml.tools,
+ org.eclipse.papyrus.soaml.profile,
+ org.eclipse.papyrus.uml.diagram.composite,
+ org.eclipse.papyrus.uml.diagram.clazz,
+ org.eclipse.papyrus.infra.emf,
+ org.eclipse.papyrus.infra.core.log,
+ org.eclipse.papyrus.infra.viewpoints.policy,
+ org.eclipse.papyrus.infra.gmfdiag.common,
+ org.eclipse.core.expressions,
+ org.eclipse.papyrus.uml.diagram.communication
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.soaml.diagram.common.commands
+Bundle-Vendor: %Bundle-Vendor
+Bundle-Localization: plugin
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/build.properties b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/build.properties
new file mode 100644
index 00000000000..a401769eb26
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ diagrams/,\
+ viewpoints/,\
+ build.properties,\
+ plugin.properties
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/css/custom.css b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/css/custom.css
new file mode 100644
index 00000000000..96ba780a44f
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/css/custom.css
@@ -0,0 +1,18 @@
+
+Collaboration, CollaborationUse {
+ isOval: true;
+ borderStyle: custom;
+ dashStyle: 10 10;
+}
+Dependency > Label:name{
+ visible:true;
+}
+Association > Label:targetMultiplicity {
+ visible:false;
+}
+Port > Label {
+ maskLabel: name;
+}
+Property {
+ maskLabel: name type multiplicity;
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/css/style.css b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/css/style.css
new file mode 100644
index 00000000000..abcf14dcf50
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/css/style.css
@@ -0,0 +1,5 @@
+Property {maskLabel:name; elementIcon:false;}
+Property[type] {maskLabel:name type; }
+Port>Label {maskLabel:name; elementIcon:flase;}
+Port>Label:stereotype{visible: false;}
+Class {elementIcon:false;} \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability.xml
new file mode 100644
index 00000000000..7bcf792d81f
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability.xml
@@ -0,0 +1,29 @@
+
+ <paletteDefinition>
+ <content>
+ <drawer iconpath="/icons/drawer.gif" id="Drawer__1423839017140" name="Nodes">
+ <aspectTool description="Create a new Capability" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability16x16.png"
+ id="clazz.tool.class_1423842473984" name="Capability" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Capability"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ </drawer>
+ <drawer iconpath="/icons/drawer.gif" id="drawer_1423839049252" name="Edges">
+ <aspectTool description="Create a dependency" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Dependency.gif"
+ id="clazz.tool.dependency_1423839094273" name="Expose (dependency)" refToolId="clazz.tool.dependency">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Expose"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool name="Realization" id="clazz.tool.realization_1425055155828" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Realization.gif"
+ refToolId="clazz.tool.realization" description="Create a Realization"/>
+ <aspectTool name="Usage" id="clazz.tool.usage_1425055160756" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Usage.gif"
+ refToolId="clazz.tool.usage" description="Create an Usage"/>
+ </drawer>
+ </content>
+ </paletteDefinition> \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability16x16.png
new file mode 100644
index 00000000000..fc6ef1fbd0d
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capabilityDiag16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capabilityDiag16x16.png
new file mode 100644
index 00000000000..948fcdcb440
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capabilityDiag16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/message.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/message.xml
new file mode 100644
index 00000000000..827d87b4a1e
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/message.xml
@@ -0,0 +1,79 @@
+<paletteDefinition>
+ <content>
+ <drawer iconpath="/icons/drawer.gif" id="Drawer__1423836698360" name="Nodes">
+ <aspectTool description="Create a constraint" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
+ id="clazz.tool.constraint_1423837567787" name="Constraint" refToolId="clazz.tool.constraint"/>
+ <aspectTool description="Create a comment" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
+ id="clazz.tool.comment_1423837578898" name="Comment" refToolId="clazz.tool.comment"/>
+ <aspectTool description="Create a new MessageType" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif"
+ id="clazz.tool.class_1423837588074" name="MessageType (Class)" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::MessageType"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create a new Class" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif"
+ id="clazz.tool.class_1423837588073" name="Class" refToolId="clazz.tool.class">
+ </aspectTool>
+ <aspectTool description="Create a new MessageType" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DataType.gif"
+ id="clazz.tool.datatype_1423837615369" name="MessageType (DataType)" refToolId="clazz.tool.datatype">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::MessageType"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create a new DataType" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/DataType.gif"
+ id="clazz.tool.datatype_1423837617369" name="DataType" refToolId="clazz.tool.datatype">
+ </aspectTool>
+ <aspectTool description="Create a new MessageType" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Signal.gif"
+ id="clazz.tool.datatype_1423837615368" name="MessageType (Signal)" refToolId="clazz.tool.signal">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::MessageType"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create a new Signal" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Signal.gif"
+ id="clazz.tool.datatype_1423837614368" name="Signal" refToolId="clazz.tool.signal">
+ </aspectTool>
+ <aspectTool name="PrimitiveType" id="clazz.tool.primitivetype_1425036407777" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/PrimitiveType.gif" refToolId="clazz.tool.primitivetype" description="Create a Primitivetype"/>
+ <aspectTool description="Create an Enumeation" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Enumeration.gif"
+ id="clazz.tool.enumeration_1423837666277" name="Enumeration" refToolId="clazz.tool.enumeration">
+ </aspectTool>
+ <aspectTool description="Create a new Attachment" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Property.gif"
+ id="clazz.tool.property_1423838740983" name="Attachment" refToolId="clazz.tool.property">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Attachment"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create a new SoaML Property" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Property.gif"
+ id="clazz.tool.property_1423838807283" name="Property (Property)" refToolId="clazz.tool.property">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Property"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create a new Property" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Property.gif"
+ id="clazz.tool.property_1423838807283" name="Property" refToolId="clazz.tool.property">
+ </aspectTool>
+ </drawer>
+ <drawer iconpath="/icons/drawer.gif" id="drawer_1423837373936" name="Edges">
+ <aspectTool description="Create an association" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Association.gif"
+ id="clazz.tool.association_1423838727280" name="Association" refToolId="clazz.tool.association"/>
+ <aspectTool description="AssociationClass" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/AssociationClass.gif"
+ id="clazz.tool.associationclass_1423838731336" name="AssociationClass" refToolId="clazz.tool.associationclass"/>
+ <aspectTool description="Create a dependency" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Dependency.gif"
+ id="clazz.tool.dependency_1423838849616" name="Dependency" refToolId="clazz.tool.dependency"/>
+ <aspectTool description="Create a generalization" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Generalization.gif"
+ id="clazz.tool.generalization_1423838870519" name="Generalization" refToolId="clazz.tool.generalization"/>
+ <aspectTool description="Creation of a link for comment, constraint, TimeObservation,
+ DurationObservation" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Association.gif"
+ id="clazz.tool.link_1423838947570" name="Link" refToolId="clazz.tool.link"/>
+ </drawer>
+ </content>
+</paletteDefinition> \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtype16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtype16x16.png
new file mode 100644
index 00000000000..e9611c89ed4
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtype16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtypeDiag16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtypeDiag16x16.png
new file mode 100644
index 00000000000..b0ee6cd0d74
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtypeDiag16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent.gif b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent.gif
new file mode 100644
index 00000000000..2c78daf02b1
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent.gif
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent16x16.gif b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent16x16.gif
new file mode 100644
index 00000000000..c756a8ec9c6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent16x16.gif
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant.palette.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant.palette.xml
new file mode 100644
index 00000000000..334d02145c2
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant.palette.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<paletteDefinition>
+
+ <content>
+
+ <drawer name="Nodes" id="Drawer__1423845330154" iconpath="/icons/drawer.gif">
+ <aspectTool name="Constraint" id="composite.tool.constraint_1423845371594" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
+ refToolId="composite.tool.constraint" description="Create new Constraint"/>
+ <aspectTool name="Comment" id="composite.tool.comment_1423845384370" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
+ refToolId="composite.tool.comment" description="Create new Comment"/>
+
+ <aspectTool name="Participant" id="composite.tool.class_1423845405128" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant16x16.png"
+ refToolId="composite.tool.class" description="Create new Participant">
+
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Participant"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create new Property" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Property.gif"
+ id="composite.tool.property_1423841062642" name="Property (Property)" refToolId="composite.tool.property">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Property"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool name="Part (Property)" id="composite.tool.property_1423845441638" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Property.gif"
+ refToolId="composite.tool.property" description="Create new Property"/>
+ <aspectTool name="Agent" id="composite.tool.class_1424165232576" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/agent16x16.gif"
+ refToolId="composite.tool.class" description="Create new Agent (Class)">
+
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Agent"/>
+ </stereotypesToApply>
+ </postAction>
+
+ <postAction id="org.eclipse.papyrus.postaction.semanticactionprovider">
+ <feature name="isActive" value="true" separator=",,"/>
+ <runtimeFeature name="isActive"/>
+ </postAction>
+ </aspectTool>
+ <aspectTool name="Request" id="composite.tool.port_1424180535597" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/request16x16.png"
+ refToolId="composite.tool.port" description="Create new Request (Port)">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Port"/>
+ <stereotype stereotypeName="SoaML::Request"/>
+ </stereotypesToApply>
+ </postAction>
+ <postAction id="org.eclipse.papyrus.postaction.semanticactionprovider">
+ <feature name="isConjugated" value="true" separator=",,"/>
+ <runtimeFeature name="isConjugated"/>
+ </postAction>
+ </aspectTool>
+
+ <aspectTool name="Service" id="composite.tool.port_1423845481355" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/service16x16.png"
+ refToolId="composite.tool.port" description="Create new Service">
+
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Port"/>
+ <stereotype stereotypeName="SoaML::Service"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+
+ <aspectTool name="ServicesArchitectureUse" id="composite.tool.collaborationuse_1423845686326"
+ iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CollaborationUse.gif"
+ refToolId="composite.tool.collaborationuse" description="Create new CollaborationUse">
+
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::CollaborationUse"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+
+
+ </drawer>
+
+ <drawer name="Edges" id="drawer_1423845345816" iconpath="/icons/drawer.gif">
+
+ <aspectTool name="ServiceChannel" id="composite.tool.connector_1423845569046" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Connector_assembly.gif"
+ refToolId="composite.tool.connector" description="Create new ServiceChannel">
+
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::ServiceChannel"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool name="Connector" id="composite.tool.connector_1423845660552" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Connector.gif"
+ refToolId="composite.tool.connector" description="Create new Connector"/>
+ </drawer>
+ </content>
+</paletteDefinition> \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant16x16.png
new file mode 100644
index 00000000000..82b5ace7f44
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participantDiag16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participantDiag16x16.png
new file mode 100644
index 00000000000..303a9ff9697
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participantDiag16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/sc16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/sc16x16.png
new file mode 100644
index 00000000000..cd925c24072
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/sc16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/scDiag16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/scDiag16x16.png
new file mode 100644
index 00000000000..e47b69f2624
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/scDiag16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/servicecontract.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/servicecontract.xml
new file mode 100644
index 00000000000..4759e0eac8c
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/servicecontract.xml
@@ -0,0 +1,39 @@
+<paletteDefinition>
+ <content>
+ <drawer iconpath="/icons/drawer.gif" id="Drawer__1423841519545" name="Nodes">
+ <aspectTool description="Create new Constraint" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
+ id="composite.tool.constraint_1423841579591" name="Constraint" refToolId="composite.tool.constraint"/>
+ <aspectTool description="Create new Comment" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
+ id="composite.tool.comment_1423841585672" name="Comment" refToolId="composite.tool.comment"/>
+ <aspectTool description="Create new Property" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Property.gif"
+ id="composite.tool.property_1423841739077" name="Role" refToolId="composite.tool.property"/>
+ <aspectTool description="Create new ServiceContract" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/sc16x16.png"
+ id="composite.tool.collaboration_1423841800423" name="ServiceContract" refToolId="composite.tool.collaboration">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Collaboration"/>
+ <stereotype stereotypeName="SoaML::ServiceContract"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create new CollaborationUse" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CollaborationUse.gif"
+ id="composite.tool.collaborationuse_1423841810679" name="ServiceContractUse" refToolId="composite.tool.collaborationuse">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::CollaborationUse"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ </drawer>
+ <drawer iconpath="/icons/drawer.gif" id="drawer_1423841548869" name="Edges">
+ <aspectTool description="Create new RoleBinding" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TemplateBinding.gif"
+ id="composite.tool.rolebinding_1423841830857" name="RoleBinding" refToolId="composite.tool.rolebinding">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply/>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create new Connector" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Connector.gif"
+ id="composite.tool.connector_1423841855201" name="Connector" refToolId="composite.tool.connector"/>
+ </drawer>
+ </content>
+</paletteDefinition> \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/request16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/request16x16.png
new file mode 100644
index 00000000000..f5bcd35f51b
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/request16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/service16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/service16x16.png
new file mode 100644
index 00000000000..fb32b628975
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/service16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/serviceinterface.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/serviceinterface.xml
new file mode 100644
index 00000000000..5e99c455989
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/serviceinterface.xml
@@ -0,0 +1,91 @@
+
+ <paletteDefinition>
+ <content>
+ <drawer iconpath="/icons/drawer.gif" id="Drawer__1423842126770" name="Nodes">
+ <aspectTool description="Create a constraint" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
+ id="clazz.tool.constraint_1423842571851" name="Constraint" refToolId="clazz.tool.constraint"/>
+ <aspectTool description="Create a comment" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
+ id="clazz.tool.comment_1423842592860" name="Comment" refToolId="clazz.tool.comment"/>
+ <aspectTool description="Create new Package" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Package.gif"
+ id="clazz.tool.package_1423842604524" name="Package" refToolId="clazz.tool.package"/>
+ <aspectTool description="Create a new ServiceInterface" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif"
+ id="clazz.tool.class_1423842612749" name="ServiceInterface (Class)" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::ServiceInterface"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create an ServiceInterface" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Interface.gif"
+ id="clazz.tool.interface_1423842626741" name="ServiceInterface (Interface)" refToolId="clazz.tool.interface">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::ServiceInterface"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create a new Consumer" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif"
+ id="clazz.tool.class_1423842688319" name="Consumer (Class)" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Consumer"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create an Consumer" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Interface.gif"
+ id="clazz.tool.interface_1423842697423" name="Consumer (Interface)" refToolId="clazz.tool.interface">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Consumer"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create a new Provider" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif"
+ id="clazz.tool.class_1423842718904" name="Provider (Class)" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Provider"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create an Provider" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Interface.gif"
+ id="clazz.tool.interface_1423842724288" name="Provider (Interface)" refToolId="clazz.tool.interface">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Provider"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create an operation" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Operation.gif"
+ id="clazz.tool.operation_1423842731913" name="Operation" refToolId="clazz.tool.operation"/>
+ <aspectTool description="Create a signal" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Signal.gif"
+ id="clazz.tool.signal_1423842736872" name="Signal" refToolId="clazz.tool.signal"/>
+ <aspectTool description="Create a new Property" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Property.gif"
+ id="clazz.tool.property_1423838847283" name="Property" refToolId="clazz.tool.property">
+ </aspectTool>
+ <aspectTool description="Create a new Capability" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability16x16.png"
+ id="clazz.tool.class_1423842373984" name="Capability" refToolId="clazz.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Capability"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+
+ </drawer>
+ <drawer iconpath="/icons/drawer.gif" id="drawer_1423842141932" name="Edges">
+ <aspectTool name="Expose (Dependency)" id="clazz.tool.dependency_1425056221677" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Dependency.gif"
+ refToolId="clazz.tool.dependency" description="Create an Expose">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Expose"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create a Realization" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Realization.gif"
+ id="clazz.tool.realization_1423842808363" name="Realization" refToolId="clazz.tool.realization"/>
+ <aspectTool description="Create an Usage" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Usage.gif"
+ id="clazz.tool.usage_1423842829164" name="Usage" refToolId="clazz.tool.usage"/>
+ </drawer>
+ </content>
+ </paletteDefinition> \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/si16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/si16x16.png
new file mode 100644
index 00000000000..e7b2567e1f6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/si16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/siDiag16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/siDiag16x16.png
new file mode 100644
index 00000000000..affdb7cc73a
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/siDiag16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/sa16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/sa16x16.png
new file mode 100644
index 00000000000..a1a0369bbfa
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/sa16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/saDiag16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/saDiag16x16.png
new file mode 100644
index 00000000000..0ad92314d9b
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/saDiag16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/servicesarchitecture.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/servicesarchitecture.xml
new file mode 100644
index 00000000000..115bc01c05c
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/servicesarchitecture.xml
@@ -0,0 +1,49 @@
+<paletteDefinition>
+ <content>
+ <drawer iconpath="/icons/drawer.gif" id="Drawer__1423839794015" name="Nodes">
+ <aspectTool description="Create new Constraint" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Constraint.gif"
+ id="composite.tool.constraint_1423839842697" name="Constraint" refToolId="composite.tool.constraint"/>
+ <aspectTool description="Create new Comment" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
+ id="composite.tool.comment_1423839850320" name="Comment" refToolId="composite.tool.comment"/>
+ <aspectTool description="Create new CollaborationUse" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/CollaborationUse.gif"
+ id="composite.tool.collaborationuse_1423839923875" name="ServiceContractUse" refToolId="composite.tool.collaborationuse">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::CollaborationUse"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create new ServicesArchitecture" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/sa16x16.png"
+ id="composite.tool.collaboration_1423840024325" name="ServicesArchitecture" refToolId="composite.tool.collaboration">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Collaboration"/>
+ <stereotype stereotypeName="SoaML::ServicesArchitecture"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create new Part" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Property.gif"
+ id="composite.tool.property_1423840062642" name="Part (Property)" refToolId="composite.tool.property">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Property"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ <aspectTool description="Create new Participant" iconpath="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant16x16.png"
+ id="composite.tool.class_1423840112343" name="Participant" refToolId="composite.tool.class">
+ <postAction id="org.eclipse.papyrus.applystereotypeactionprovider">
+ <stereotypesToApply>
+ <stereotype stereotypeName="SoaML::Participant"/>
+ </stereotypesToApply>
+ </postAction>
+ </aspectTool>
+ </drawer>
+ <drawer iconpath="/icons/drawer.gif" id="drawer_1423839823156" name="Edges">
+ <aspectTool description="Create new Realization" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Realization.gif"
+ id="composite.tool.realization_1423840153750" name="Realization" refToolId="composite.tool.realization"/>
+ <aspectTool description="Create new RoleBinding" iconpath="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/TemplateBinding.gif"
+ id="composite.tool.rolebinding_1423840157639" name="RoleBinding" refToolId="composite.tool.rolebinding"/>
+ </drawer>
+ </content>
+</paletteDefinition> \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/icons/SoaML_Header_32x32.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/icons/SoaML_Header_32x32.png
new file mode 100644
index 00000000000..71c39ae1e02
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/icons/SoaML_Header_32x32.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/icons/soaml_header.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/icons/soaml_header.png
new file mode 100644
index 00000000000..af0ec2cdc41
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/icons/soaml_header.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/plugin.properties b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/plugin.properties
new file mode 100644
index 00000000000..7a639095f3c
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.soaml.diagram.common
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = SoaML Diagrams \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/plugin.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/plugin.xml
new file mode 100644
index 00000000000..f49eb05064b
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/plugin.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.infra.core.papyrusDiagram">
+ <diagramCategory
+ class="org.eclipse.papyrus.soaml.diagram.common.commands.CreateSoamlModelCommand"
+ description="SoaML diagrams"
+ icon="icons/SoaML_Header_32x32.png"
+ id="soaML"
+ label="SoaML">
+ </diagramCategory>
+ </extension>
+ <extension
+ point="org.eclipse.core.expressions.definitions">
+ <definition
+ id="org.eclipse.papyrus.soaml.diagram.common.IsPapyrusActiveWithSoaml">
+ <and>
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.papyrus.infra.core.papyrusEditor">
+ </equals>
+ </with>
+ <with
+ variable="selection">
+ <test
+ forcePluginActivation="true"
+ property="org.eclipse.papyrus.SoamlSelectionTester.isSoamlModel"
+ value="true">
+ </test>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.core.expressions.propertyTesters">
+ <propertyTester
+ class="org.eclipse.papyrus.soaml.diagram.common.utils.SoamlSelectionTester"
+ id="org.eclipse.papyrus.SoamlSelectionTester"
+ namespace="org.eclipse.papyrus.SoamlSelectionTester"
+ properties="isSoamlModel"
+ type="org.eclipse.jface.viewers.ISelection">
+ </propertyTester>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.viewpoints.policy.custom">
+ <contribution
+ file="viewpoints/soaml.configuration"
+ original="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration">
+ </contribution>
+ </extension>
+ <extension
+ point="org.eclipse.gmf.runtime.diagram.ui.editpolicyProviders">
+ <editpolicyProvider
+ class="org.eclipse.papyrus.soaml.diagram.common.editpolicy.provider.SoaMLDiagramsEditPolicyProvider">
+ <Priority
+ name="Low">
+ </Priority>
+ </editpolicyProvider>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/Activator.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/Activator.java
new file mode 100644
index 00000000000..450ad44b56b
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/Activator.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.soaml.diagram.common;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.soaml.diagram.common"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+ /** Logging helper */
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/commands/CreateSoamlModelCommand.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/commands/CreateSoamlModelCommand.java
new file mode 100644
index 00000000000..6c2c409a942
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/commands/CreateSoamlModelCommand.java
@@ -0,0 +1,78 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.soaml.diagram.common.commands;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.uml.diagram.common.commands.ModelCreationCommandBase;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.UMLFactory;
+
+public class CreateSoamlModelCommand extends ModelCreationCommandBase {
+
+ public static final String COMMAND_ID = "soaML";
+
+
+
+ public static final String PROFILES_PATHMAP = "pathmap://SoaML_PROFILES/"; //$NON-NLS-1$
+
+
+ public static final String SOAML_PROFILE_URI = PROFILES_PATHMAP + "SoaMLProfile.profile.uml"; //$NON-NLS-1$
+
+ //public static final String FCM_PROFILE_URI = "pathmap://FCM_PROFILES/FCM.profile.uml";
+
+ //public static final String SOAML_PROFILE_URI = PROFILES_PATHMAP + "SoaML.profile.uml"; //$NON-NLS-1$
+
+
+ /**
+ * @see org.eclipse.papyrus.core.extension.commands.ModelCreationCommandBase#createRootElement()
+ *
+ * @return
+ */
+
+ @Override
+ protected EObject createRootElement() {
+ return UMLFactory.eINSTANCE.createModel();
+ }
+
+ /**
+ * @see org.eclipse.papyrus.core.extension.commands.ModelCreationCommandBase#initializeModel(org.eclipse.emf.ecore.EObject)
+ *
+ * @param owner
+ */
+
+ @Override
+ protected void initializeModel(EObject owner) {
+ super.initializeModel(owner);
+ ((org.eclipse.uml2.uml.Package)owner).setName(getModelName());
+
+ // Retrieve soaml profile and apply with Sub-profile
+ org.eclipse.uml2.uml.Package soaml = PackageUtil.loadPackage(URI.createURI(SOAML_PROFILE_URI), owner.eResource().getResourceSet());
+ //org.eclipse.uml2.uml.Package fcm = PackageUtil.loadPackage(URI.createURI(FCM_PROFILE_URI), owner.eResource().getResourceSet());
+ if((soaml != null) && (soaml instanceof Profile)) {
+ PackageUtil.applyProfile(((org.eclipse.uml2.uml.Package)owner), (org.eclipse.uml2.uml.Profile)soaml, true);
+ //PackageUtil.applyProfile(((org.eclipse.uml2.uml.Package)owner), (org.eclipse.uml2.uml.Profile) fcm, true);
+ }
+ }
+
+ /**
+ * Gets the model name.
+ *
+ * @return the model name
+ */
+ protected String getModelName() {
+ return "SoaMLModel";
+ }
+
+
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/editpolicies/PortNodeLabelDisplayEditPolicy.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/editpolicies/PortNodeLabelDisplayEditPolicy.java
new file mode 100644
index 00000000000..592004719f2
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/editpolicies/PortNodeLabelDisplayEditPolicy.java
@@ -0,0 +1,90 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.soaml.diagram.common.editpolicies;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.papyrus.uml.diagram.common.Activator;
+import org.eclipse.papyrus.uml.diagram.common.editpolicies.AppliedStereotypeNodeLabelDisplayEditPolicy;
+import org.eclipse.papyrus.uml.diagram.communication.custom.helper.RotationHelper;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.uml2.uml.Stereotype;
+
+
+
+public class PortNodeLabelDisplayEditPolicy extends AppliedStereotypeNodeLabelDisplayEditPolicy {
+
+
+
+ @Override
+ public void notifyChanged(Notification notification) {
+ final Object feature = notification.getFeature();
+ if (feature == NotationPackage.eINSTANCE.getLocation_X() || feature == NotationPackage.eINSTANCE.getLocation_Y()) {
+ Display.getDefault().asyncExec(new Runnable() {
+
+ public void run() {
+ refreshStereotypeDisplay();
+ }
+ });
+ }
+ super.notifyChanged(notification);
+ }
+
+
+
+ @Override
+ public Image stereotypeIconToDisplay() {
+
+ // retrieve the first stereotype in the list of displayed stereotype
+
+ // String firstStereotypeName = tokenizer.nextToken();
+ EList<Stereotype> stereotype_list = getUMLElement().getAppliedStereotypes();
+ if (stereotype_list.size() != 0) {
+ Stereotype stereotype = stereotype_list.get(0);
+ if (stereotype.getName().equals("Request") || stereotype.getName().equals("Service")) {
+ Image icon = Activator.getIconElement(getUMLElement(), stereotype, false);
+
+ IFigure portView = getHostFigure();
+ IFigure parentView = portView.getParent().getParent();
+
+ Rectangle parentBounds = parentView.getBounds();
+ Rectangle portBounds = portView.getBounds();
+
+ if (portBounds.x() <= parentBounds.x()) {
+ // left
+ return icon;
+ } else if (portBounds.x() >= (parentBounds.right() - portBounds.width())) {
+ // right
+
+ return new Image(icon.getDevice(), RotationHelper.rotateImage(icon, 180), SWT.IMAGE_COPY);
+ } else if (portBounds.y() <= parentBounds.y()) {
+ // top
+ return new Image(icon.getDevice(), RotationHelper.rotateImage(icon, 90), SWT.IMAGE_COPY);
+ } else if (portBounds.y() >= parentBounds.bottom() - portBounds.height()) {
+ // bottom
+ return new Image(icon.getDevice(), RotationHelper.rotateImage(icon, -90), SWT.IMAGE_COPY);
+ } else {
+ return null;
+ }
+ }
+ return Activator.getIconElement(getUMLElement(), stereotype, false);
+
+ }
+ return null;
+
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/editpolicy/provider/SoaMLDiagramsEditPolicyProvider.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/editpolicy/provider/SoaMLDiagramsEditPolicyProvider.java
new file mode 100644
index 00000000000..040331259cc
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/editpolicy/provider/SoaMLDiagramsEditPolicyProvider.java
@@ -0,0 +1,91 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.soaml.diagram.common.editpolicy.provider;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.CreateEditPoliciesOperation;
+import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.IEditPolicyProvider;
+import org.eclipse.gmf.runtime.notation.LayoutConstraint;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Shape;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.soaml.diagram.common.editpolicies.PortNodeLabelDisplayEditPolicy;
+import org.eclipse.papyrus.uml.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy;
+import org.eclipse.papyrus.uml.diagram.composite.edit.parts.CompositeStructureDiagramEditPart;
+import org.eclipse.papyrus.uml.diagram.composite.edit.parts.PortEditPart;
+import org.eclipse.uml2.uml.Element;
+
+public class SoaMLDiagramsEditPolicyProvider extends AbstractProvider
+ implements IEditPolicyProvider {
+
+ public static String SOAML_ID = "SoaML";
+
+ public boolean provides(IOperation operation) {
+ CreateEditPoliciesOperation epOperation = (CreateEditPoliciesOperation) operation;
+ if (!(epOperation.getEditPart() instanceof GraphicalEditPart)) {
+ return false;
+ }
+ GraphicalEditPart gep = (GraphicalEditPart) epOperation.getEditPart();
+ String diagramType = gep.getNotationView().getDiagram().getType();
+ if (!CompositeStructureDiagramEditPart.MODEL_ID.equals(diagramType)) {
+ return false;
+ }
+
+ if (gep instanceof org.eclipse.papyrus.uml.diagram.composite.edit.parts.PortEditPart) {
+ return true;
+ }
+
+ return false;
+ }
+
+ public void createEditPolicies(EditPart editPart) {
+
+ if (editPart.getModel() instanceof View) {
+ EObject element = ((View) editPart.getModel()).getElement();
+ if (element instanceof Element) {
+ if (((Element) element).getNearestPackage().getAppliedProfile(
+ SOAML_ID) != null) {
+ // System.err.println(list.get(i).getProfile().getName());
+ if (editPart instanceof PortEditPart) {
+ NotificationListener editPolicy = new PortNodeLabelDisplayEditPolicy();
+ editPart.installEditPolicy(
+ AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY,
+ (EditPolicy) editPolicy);
+ Object model = editPart.getModel();
+ LayoutConstraint notifier = ((Shape) model)
+ .getLayoutConstraint();
+ if (model instanceof Shape) {
+ // to force refreshing the port icon when the
+ // diagram is opening
+ Notification notification = new ENotificationImpl(
+ (InternalEObject) notifier,
+ Notification.SET,
+ NotationPackage.eINSTANCE.getLocation_X(),
+ 0, 0);
+ editPolicy.notifyChanged(notification);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/utils/SoamlSelectionTester.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/utils/SoamlSelectionTester.java
new file mode 100644
index 00000000000..6633234eff6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/src/org/eclipse/papyrus/soaml/diagram/common/utils/SoamlSelectionTester.java
@@ -0,0 +1,155 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.diagram.common.utils;
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor;
+import org.eclipse.papyrus.infra.core.resource.ModelMultiException;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.resource.ModelsReader;
+import org.eclipse.papyrus.infra.core.resource.NotFoundException;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForSelection;
+import org.eclipse.papyrus.soaml.diagram.common.Activator;
+import org.eclipse.papyrus.uml.tools.model.UmlModel;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * This class is a Property tester used to check if current model (meaning the model currently opened in Papyrus) is a Proteus Model.
+ * This class is used in order to create test for deciding whether a diagram creation command should be visible or not.
+ * This property tester assumes that currently active editor is Papyrus, it should be used with care (simultaneously with a test to ensure Papyrus is
+ * currently opened and active).
+ *
+ */
+public class SoamlSelectionTester extends PropertyTester {
+
+ /** Tester ID for UML Model nature */
+ public final static String IS_SOAML_MODEL = "isSoamlModel";
+
+
+ //public static String SOAML_ID = "SoaML";
+
+ /** Default constructor */
+ public SoamlSelectionTester() {
+ }
+
+ /** Test the receiver against the selected property */
+ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+
+ // Ensure Papyrus is the active editor
+ IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+ if((editor == null) || (!(editor instanceof IMultiDiagramEditor))) {
+ return false;
+ }
+
+ Object currentValue = null;
+ if(IS_SOAML_MODEL.equals(property)) {
+ currentValue = testSoamlModelNature(receiver);
+ return (currentValue == expectedValue);
+ }
+
+
+ return false;
+ }
+
+ /** True is root object is a UML Model with SoaML Profile (and sub profiles) applied */
+ protected boolean testSoamlModelNature(Object receiver) {
+ boolean isSoamlModel = false;
+
+
+
+ EObject root = getRoot(receiver);
+ if(root instanceof Package) {
+ return (((Package)root).getAppliedProfile("SoaML") != null);
+
+ //FIX: UMLUtil.getProfile() loads the profile into the resource set. This is not desired.
+ //
+ // Profile soaml = UMLUtil.getProfile(SoaMLPackage.eINSTANCE, root);
+ //
+ // if(((Package)root).isProfileApplied(soaml)) {
+ // isSoamlModel = true;
+ // }
+ }
+
+
+ return isSoamlModel;
+ }
+
+
+ /** Returns the root EObject of currently opened model */
+ private EObject getRoot(Object receiver) {
+ EObject root = null;
+
+ if(receiver instanceof ISelection) {
+ ISelection selection = (ISelection)receiver;
+ if(selection.isEmpty()) {
+ return null;
+ }
+
+ try {
+ //this is the case where the selection is on the Project Explorer
+ IStructuredSelection selectionstructured = (IStructuredSelection)selection;
+
+ Object selectedElement = selectionstructured.getFirstElement();
+
+ Object selectedAdapter = Platform.getAdapterManager().getAdapter(selectedElement, IFile.class);
+
+
+ if(selectedAdapter instanceof IFile) {
+ final IFile selectedFile = (IFile)selectedAdapter;
+ ModelSet modelSet = new ModelSet();
+ ModelsReader reader = new ModelsReader();
+ reader.readModel(modelSet);
+
+
+ IPath workspacePath = selectedFile.getFullPath();
+
+ URI workspaceURI = URI.createPlatformResourceURI(workspacePath.toString(), true);
+ modelSet.loadModels(workspaceURI);
+
+ UmlModel openedModel = (UmlModel)modelSet.getModel(UmlModel.MODEL_ID);
+ if(openedModel != null) {
+ root = openedModel.lookupRoot();
+ }
+ } else {
+ //this is the case where the selection is on the Model Explorer
+ ServiceUtilsForSelection serviceUtils = ServiceUtilsForSelection.getInstance();
+ UmlModel openedModel = (UmlModel)serviceUtils.getModelSet(selection).getModel(UmlModel.MODEL_ID);
+ if(openedModel != null) {
+ root = openedModel.lookupRoot();
+ }
+ }
+
+ } catch (ServiceException e) {
+ //Ignored: The selection cannot be used to retrieve the ServicesRegistry
+ } catch (NotFoundException e) {
+ Activator.log.error(e);
+ } catch (ModelMultiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ return root;
+ }
+
+
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/viewpoints/soaml.configuration b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/viewpoints/soaml.configuration
new file mode 100644
index 00000000000..ad7044c8df5
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.common/viewpoints/soaml.configuration
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration:PapyrusConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmi:id="_KV5GcLA_EeS9wNtIM8RWaA" defaultStakeholder="_5nZ6cLA_EeS9wNtIM8RWaA">
+ <stakeholders xmi:id="_5nZ6cLA_EeS9wNtIM8RWaA" name="SoaML Modeler"/>
+ <viewpoints xsi:type="configuration:PapyrusViewpoint" xmi:id="_RwNtgLBAEeS9wNtIM8RWaA" name="Default Papyrus Viewpoint">
+ <modelKinds xsi:type="configuration:PapyrusDiagram" xmi:id="_1EZM0LBAEeS9wNtIM8RWaA" name="SoaML Capability Diagram" icon="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capabilityDiag16x16.png" implementationID="PapyrusUMLClassDiagram" categories="_62OrwLBEEeS9wNtIM8RWaA" customPalette="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/capability/capability.xml" customStyle="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/css/style.css">
+ <modelRules xmi:id="_DHHNsLODEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </modelRules>
+ <owningRules xmi:id="_qun_4LOCEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </owningRules>
+ <childRules xmi:id="__dpzsLOCEeSI8fXEtgAE5Q"/>
+ <paletteRules xmi:id="_zVhhELENEeSHrIcATORhCQ" permit="false" element="clazz.group.*"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" xmi:id="_BOd1oLBEEeS9wNtIM8RWaA" name="SoaML Message Diagram" icon="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/msgtypeDiag16x16.png" implementationID="PapyrusUMLClassDiagram" categories="_62OrwLBEEeS9wNtIM8RWaA" customPalette="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/message/message.xml" customStyle="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/css/style.css">
+ <modelRules xmi:id="_E9uxELODEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </modelRules>
+ <owningRules xmi:id="_2j6y4LOCEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </owningRules>
+ <childRules xmi:id="_I973ILODEeSI8fXEtgAE5Q"/>
+ <paletteRules xmi:id="_8rFiQLENEeSHrIcATORhCQ" permit="false" element="clazz.group.*"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" xmi:id="_I-OWoLBEEeS9wNtIM8RWaA" name="SoaML Participant Diagram" icon="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participantDiag16x16.png" implementationID="CompositeStructure" categories="_62OrwLBEEeS9wNtIM8RWaA" customPalette="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/participant/participant.palette.xml" customStyle="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/css/custom.css">
+ <modelRules xmi:id="_FOETILODEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </modelRules>
+ <owningRules xmi:id="_21YWULOCEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </owningRules>
+ <childRules xmi:id="_JOQyILODEeSI8fXEtgAE5Q"/>
+ <paletteRules xmi:id="_CrygcLEOEeSHrIcATORhCQ" permit="false" element="composite.group.*"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" xmi:id="_JhUcoLBEEeS9wNtIM8RWaA" name="SoaML ServicesArchitecture Diagram" icon="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/saDiag16x16.png" implementationID="CompositeStructure" categories="_62OrwLBEEeS9wNtIM8RWaA" customPalette="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/servicesArchitecture/servicesarchitecture.xml" customStyle="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/css/custom.css">
+ <modelRules xmi:id="_FePdILODEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </modelRules>
+ <owningRules xmi:id="_3FoY0LOCEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </owningRules>
+ <childRules xmi:id="_Jg9rsLODEeSI8fXEtgAE5Q"/>
+ <paletteRules xmi:id="_C7uZ4LEOEeSHrIcATORhCQ" permit="false" element="composite.group.*"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" xmi:id="_J7VfILBEEeS9wNtIM8RWaA" name="SoaML ServiceContract Diagram" icon="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/scDiag16x16.png" implementationID="CompositeStructure" categories="_62OrwLBEEeS9wNtIM8RWaA" customPalette="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceContract/servicecontract.xml" customStyle="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/css/custom.css">
+ <modelRules xmi:id="_GEYQELODEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </modelRules>
+ <owningRules xmi:id="_3UqTULOCEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </owningRules>
+ <childRules xmi:id="_JyqfsLODEeSI8fXEtgAE5Q"/>
+ <paletteRules xmi:id="_DKTBYLEOEeSHrIcATORhCQ" permit="false" element="composite.group.*"/>
+ </modelKinds>
+ <modelKinds xsi:type="configuration:PapyrusDiagram" xmi:id="_U49qULBEEeS9wNtIM8RWaA" name="SoaML ServiceInterface Diagram" icon="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/siDiag16x16.png" implementationID="PapyrusUMLClassDiagram" categories="_62OrwLBEEeS9wNtIM8RWaA" customPalette="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/diagrams/serviceInterface/serviceinterface.xml" customStyle="platform:/plugin/org.eclipse.papyrus.soaml.diagram.common/css/style.css">
+ <modelRules xmi:id="_GUjaELODEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </modelRules>
+ <owningRules xmi:id="_3lJmYLOCEeSI8fXEtgAE5Q">
+ <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </owningRules>
+ <childRules xmi:id="_KEIqMLODEeSI8fXEtgAE5Q"/>
+ <paletteRules xmi:id="_DbOZULEOEeSHrIcATORhCQ" permit="false" element="composite.group.*"/>
+ </modelKinds>
+ </viewpoints>
+ <metamodel href="http://www.eclipse.org/uml2/5.0.0/UML#/"/>
+ <categories xmi:id="_62OrwLBEEeS9wNtIM8RWaA" name="soaML"/>
+</configuration:PapyrusConfiguration>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.classpath b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.classpath
new file mode 100644
index 00000000000..6e16b23d695
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.project b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.project
new file mode 100644
index 00000000000..92877c0b4c6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.soaml.diagram.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..11f6e462df7
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/META-INF/MANIFEST.MF b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..e61ec83e6b8
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.papyrus.soaml.diagram.ui;singleton:=true
+Bundle-Version: 1.1.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.soaml.diagram.ui.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.ui.ide;bundle-version="3.10.1",
+ org.eclipse.papyrus.soaml.diagram.common,
+ org.eclipse.papyrus.uml.diagram.wizards
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.soaml.diagram.ui
+Bundle-Vendor: %Bundle-Provider
+Bundle-Localization: plugin
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/build.properties b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/build.properties
new file mode 100644
index 00000000000..f4ae9701586
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/icons/SoaML_new_Project32x32.gif b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/icons/SoaML_new_Project32x32.gif
new file mode 100644
index 00000000000..4f10139cad6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/icons/SoaML_new_Project32x32.gif
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/plugin.properties b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/plugin.properties
new file mode 100644
index 00000000000..d35f48fa2c0
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.soaml.diagram.ui
+Bundle-Provider = Eclipse Modeling Project
+Bundle-Name = SoaML wizard \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/plugin.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/plugin.xml
new file mode 100644
index 00000000000..5e0fd720d99
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ canFinishEarly="false"
+ category="org.eclipse.papyrus.wizards.category"
+ class="org.eclipse.papyrus.soaml.diagram.ui.NewSoamlModelWizard"
+ finalPerspective="org.eclipse.papyrus.infra.core.perspective"
+ icon="icons/SoaML_new_Project32x32.gif"
+ id="org.eclipse.papyrus.wizards.createsoamlmodel"
+ name="SoaML Model">
+ <description>
+ New SoaML Project
+ </description>
+ </wizard>
+ <wizard
+ category="org.eclipse.papyrus.wizards.category"
+ class="org.eclipse.papyrus.soaml.diagram.ui.NewSoamlProjectWizard"
+ finalPerspective="org.eclipse.papyrus.infra.core.perspective"
+ icon="icons/SoaML_new_Project.gif"
+ id="org.eclipse.papyrus.soaml.diagram.ui.createsoamlwizard"
+ name="SoaML Project"
+ project="true">
+ <description>
+ New SoaML Project
+ </description>
+ </wizard>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/Activator.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/Activator.java
new file mode 100644
index 00000000000..cd024e4db74
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/Activator.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.soaml.diagram.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.soaml.diagram.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/NewSoamlModelWizard.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/NewSoamlModelWizard.java
new file mode 100644
index 00000000000..5db94f3d54d
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/NewSoamlModelWizard.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.soaml.diagram.ui;
+
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.soaml.diagram.common.commands.CreateSoamlModelCommand;
+import org.eclipse.papyrus.uml.diagram.wizards.CreateModelWizard;
+
+import org.eclipse.papyrus.uml.diagram.wizards.pages.SelectDiagramCategoryPage;
+import org.eclipse.ui.IWorkbench;
+
+public class NewSoamlModelWizard extends CreateModelWizard {
+
+ /**
+ * @see org.eclipse.papyrus.wizards.CreateModelWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ *
+ * @param workbench
+ * @param selection
+ */
+
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ super.init(workbench, selection);
+ setWindowTitle("New SoaML Model");
+ }
+
+ /**
+ * Instantiates a new new Proteus model wizard.
+ */
+ public NewSoamlModelWizard() {
+ super();
+
+ }
+
+
+
+ @Override
+ public String getModelKindName() {
+ // TODO Auto-generated method stub
+
+ return "SoaML Model";
+ }
+
+ @Override
+ protected String[] getDiagramCategoryIds() {
+ return new String[]{ CreateSoamlModelCommand.COMMAND_ID };
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected SelectDiagramCategoryPage createSelectDiagramCategoryPage() {
+ // here SoaML is the only available category
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void saveDiagramCategorySettings() {
+ // here SoaML is the only available category
+ }
+
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/NewSoamlProjectWizard.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/NewSoamlProjectWizard.java
new file mode 100644
index 00000000000..5f983ff6111
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.diagram.ui/src/org/eclipse/papyrus/soaml/diagram/ui/NewSoamlProjectWizard.java
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.soaml.diagram.ui;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.soaml.diagram.common.commands.CreateSoamlModelCommand;
+import org.eclipse.papyrus.uml.diagram.wizards.NewPapyrusProjectWizard;
+import org.eclipse.papyrus.uml.diagram.wizards.pages.SelectDiagramCategoryPage;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+
+public class NewSoamlProjectWizard extends NewPapyrusProjectWizard {
+
+ /**
+ * @see org.eclipse.papyrus.wizards.NewPapyrusProjectWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ *
+ * @param workbench
+ * @param selection
+ */
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ super.init(workbench, selection);
+ setWindowTitle("New SoaML Project");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected WizardNewProjectCreationPage createNewProjectCreationPage() {
+ WizardNewProjectCreationPage newProjectPage = super.createNewProjectCreationPage();
+ newProjectPage.setTitle("Papyrus SoaML Project");
+ newProjectPage.setDescription("Create a New Papyrus SoaML Project");
+ return newProjectPage;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected SelectDiagramCategoryPage createSelectDiagramCategoryPage() {
+ //here SysML is the only available category
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void saveDiagramCategorySettings() {
+ //do nothing
+ //here SysML is the only available category
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected String[] getDiagramCategoryIds() {
+ return new String[]{ CreateSoamlModelCommand.COMMAND_ID };
+ }
+
+
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.classpath b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.classpath
new file mode 100644
index 00000000000..6e16b23d695
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.project b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.project
new file mode 100644
index 00000000000..b2782a494a6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.soaml.profile.validation</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.settings/org.eclipse.jdt.core.prefs b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..11f6e462df7
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/META-INF/MANIFEST.MF b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..7904196b899
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.validation,
+ org.eclipse.papyrus.uml.service.validation,
+ org.eclipse.uml2.uml
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 1.1.0.qualifier
+Bundle-Name: %Bundle-Name
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.soaml.profile.validation.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.soaml.profile.validation;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-Vendor: %Bundle-Vendor
+Bundle-Localization: plugin
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/build.properties b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/build.properties
new file mode 100644
index 00000000000..101b48bfd37
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/build.properties
@@ -0,0 +1,8 @@
+#
+#Tue Feb 17 14:05:49 CET 2015
+output..=bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties
+source..=src/,src
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/plugin.properties b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/plugin.properties
new file mode 100644
index 00000000000..2ef66374b18
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.soaml.profile.validation
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = SoaML Validation \ No newline at end of file
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/plugin.xml b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/plugin.xml
new file mode 100644
index 00000000000..e97cb262253
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/plugin.xml
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse version="3.4"?><plugin>
+<extension point="org.eclipse.emf.validation.constraintProviders">
+ <category id="org.eclipse.papyrus.soaml.profile.validation.soaml" mandatory="false" name="org.eclipse.papyrus.soaml.profile.validation.soaml"/>
+ <constraintProvider cache="false" mode="Batch">
+ <package namespaceUri="http://Papyrus/SoaML/1"/>
+ <constraints categories="org.eclipse.papyrus.soaml.profile.validation.soaml">
+ <constraint id="SoaML.Agent.isActive" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="isActive" severity="ERROR" statusCode="1">
+ <message>Agent must be active</message><![CDATA[base_Class.isActive]]></constraint>
+ <constraint id="SoaML.MessageType.noOwnedBehaviors" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="noOwnedBehaviors" severity="ERROR" statusCode="1">
+ <message>MessageType cannot contain ownedBehaviors</message><![CDATA[self.base_Class<>null implies self.base_Class.ownedBehavior->size()=0]]></constraint>
+ <constraint id="SoaML.MessageType.noOwnedOperations" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="noOwnedOperations" severity="ERROR" statusCode="1">
+ <message>MessageType cannot contain ownedOperation</message><![CDATA[if self.base_Class<>null
+then self.base_Class.ownedOperation->size()=0
+else
+ if self.base_DataType<>null
+ then self.base_DataType.ownedOperation->size()=0
+ else self.base_Signal<>null implies true endif
+endif]]></constraint>
+ <constraint id="SoaML.MessageType.publicAttributes" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="publicAttributes" severity="ERROR" statusCode="1">
+ <message>All ownedAttributes must be Public</message><![CDATA[if self.base_Class<>null then self.base_Class.attribute->size()>0 implies self.base_Class.attribute->forAll (a|a.visibility=UML::VisibilityKind::public)
+ else
+ (if self.base_DataType<>null then
+ self.base_DataType.attribute->size()>0 implies self.base_DataType.attribute->forAll(a|a.visibility=UML::VisibilityKind::public)
+ else
+ self.base_Signal.attribute->size()>0 implies self.base_Signal.attribute-> forAll (a|a.visibility=UML::VisibilityKind::public)
+ endif)
+ endif]]></constraint>
+ <constraint id="SoaML.ServiceContract.RoleType" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="RoleType" severity="ERROR" statusCode="1">
+ <message>role type of ServiceContract must be a ServiceInterface or UML Interface or Class stereotyped as Provider or Consumer.</message><![CDATA[ self.base_Collaboration.role-> notEmpty() implies self.base_Collaboration.role-> forAll(role|
+ role.type.oclIsTypeOf(UML::Interface)
+ or
+ (role.type.oclIsTypeOf(UML::Class) and
+ (role.type.oclIsTypeOf(UML::Class) implies (role.type.getAppliedStereotypes()->select(s|s.name='Provider')->size()>0
+ and role.type.getAppliedStereotypes()->select(s|s.name='Consumer') ->size()>0
+ )
+ or role.type.getAppliedStereotypes()->select(s| s.name='ServiceInterface') ->size()>0
+ ))) ]]></constraint>
+ <constraint id="SoaML.ServiceContract.AttachedBehaviorCompatibility" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="AttachedBehaviorCompatibility" severity="ERROR" statusCode="1">
+ <message>Attached behavior should be compatible with the parts of the ServiceContract</message><![CDATA[ self.base_Collaboration.ownedBehavior->size()>0 implies (
+ self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclIsTypeOf(UML::Interaction) implies
+ let attachedInteraction=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction),
+ lifelines=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).lifeline,
+ messages= self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).message,
+ messOccuSpec=self.base_Collaboration.ownedBehavior->asOrderedSet()->first().oclAsType(UML::Interaction).fragment
+ ->select(f|f.oclIsTypeOf(MessageOccurrenceSpecification)) in
+ lifelines->size()>0 implies lifelines->forAll(l| self.base_Collaboration.role -> includes(l.oclAsType(UML::Lifeline).represents) )
+ and
+ messages->size()>0 implies messages
+ --signature of messages should be one of the operations or signal of the corresponding Service Declaration
+ ->forAll(m|m.signature.oclIsTypeOf(Operation) implies
+ m.receiveEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()
+ ->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Operation))
+ ->includes(m.signature.oclAsType(Operation)) and
+ m.signature.oclIsTypeOf(Signal) implies
+ m.sendEvent->asOrderedSet()->first().oclAsType(MessageOccurrenceSpecification).covered->asOrderedSet()
+ ->first().oclAsType(Sequence)->asOrderedSet()->first().oclAsType(Lifeline).represents.type.oclAsType(Classifier).ownedElement->select(oclIsTypeOf(Signal))
+ ->includes(m.signature.oclAsType(Signal)
+ )) ) ]]></constraint>
+ <constraint id="SoaML.Request.requestType" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="requestType" severity="ERROR" statusCode="1">
+ <message>The type of a Request must be a ServiceInterface, an Interface, a provider or a consumer</message><![CDATA[ let portType: Type= base_Port.type in
+ portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Consumer')->size()=1 or portType.oclIsTypeOf(Interface) ]]></constraint>
+ <constraint id="SoaML.Request.isConjugatedTrue" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="isConjugatedTrue" severity="ERROR" statusCode="1">
+ <message>Request must be Conjugated</message><![CDATA[base_Port.isConjugated]]></constraint>
+ <constraint id="SoaML.Participant.noRealizedUsedInterface" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="noRealizedUsedInterface" severity="ERROR" statusCode="1">
+ <message>Participant cannot realize or use Interfaces directly</message><![CDATA[Realization.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0 and
+Usage.allInstances()->select(r|r.client->includes(self.base_Class))->size()=0]]></constraint>
+ <constraint id="SoaML.Participant.portTypes" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="portTypes" severity="ERROR" statusCode="1">
+ <message>Port must be a Request or a Service</message><![CDATA[ let portsSet: OrderedSet(UML::Port)= self.base_Class.ownedPort() in
+ portsSet->size()>0 implies
+ portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )]]></constraint>
+ <constraint id="SoaML.ServiceInterface.partsTypesOfServiceInterface" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="partsTypesOfServiceInterface" severity="ERROR" statusCode="1">
+ <message>All parts of a ServiceInterface must be typed by the Interfaces realized or used by the ServiceInterface</message><![CDATA[if self.base_Interface.oclIsUndefined()
+then self.base_Class.ownedAttribute->forAll(a|self.base_Class.getAllUsedInterfaces()->includes(a.type) or
+ self.base_Class.allRealizedInterfaces()->includes(a.type)
+)
+else
+ self.base_Interface.ownedAttribute->forAll(a|self.base_Interface.getAllUsedInterfaces()->includes(a.type) or
+ self.base_Interface.allRealizedInterfaces()->includes(a.type)
+ )
+endif]]></constraint>
+ <constraint id="SoaML.ServicesArchitecture.participantsRoleCompatibility" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="participantsRoleCompatibility" severity="ERROR" statusCode="1">
+ <message>Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant.</message><![CDATA[let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,
+collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in
+collBUses->notEmpty() implies
+-- Each participant satisfying roles in a ServicesArchitecture shall have a port for each role binding attached to that participant.
+--This port shall have a type compliant with the type of the role used in the ServiceContract.
+collBUses.oclAsType(UML::CollaborationUse).roleBinding-> forAll(rb| let
+ 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
+portTypesOfSupplier->includes(clientType)--1. The role correspond to a port type on the supplier.
+--2. the supplier has a port type that specializes the type of the role.
+or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(portTypesOfSupplier))
+--3. the supplier has a port type that realizes the type of the role.
+or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(portTypesOfSupplier))
+--4. the supplier has a port type that contains at least the ownedAttributes and ownedOperations of the role.
+or(portTypesOfSupplier.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes())
+ and portTypesOfSupplier.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())
+) )]]></constraint>
+ <constraint id="SoaML.ServicesArchitecture.partsTypes" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="partsTypes" severity="ERROR" statusCode="1">
+ <message>The parts of a ServicesArchitecture must be typed by a Participant or capability</message><![CDATA[let properties : Set (UML::ConnectableElement) = self.base_Collaboration.role,
+collBUses: Set(UML::Element)= self.base_Collaboration.collaborationUse in
+properties->notEmpty() implies
+properties-> forAll(p|p.type->exists(p|p.getAppliedStereotypes()->select(s|s.name='Participant' or s.name='Capability' or s.name='Agent')->size()=1) )
+]]></constraint>
+ <constraint id="SoaML.CollaborationUse.RoleBindingClientSupplierCompatibility" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="RoleBindingClientSupplierCompatibility" severity="ERROR" statusCode="1">
+ <message>If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to. </message><![CDATA[--only in case of defining Contract collaboratinUse inside the ServiceInterface
+--If the CollaborationUse has isStrict=true, then the parts must be compatible with the roles they are bound to.
+self.isStrict=true and self.base_CollaborationUse.owner.oclIsTypeOf(Classifier)
+and self.base_CollaborationUse.type.oclAsType(UML::Collaboration).getAppliedStereotypes()->select(s|s.name='ServiceContract')->size()=1 implies
+--For parts to be compatible with a role, one of the following must be true:
+--1. The role and part have the same type.
+self.base_CollaborationUse.roleBinding-> forAll(rb|
+ (let supplierType =(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 ->asOrderedSet()->first())),
+ clientType= (rb.oclAsType(UML::Dependency).client->select(s|s.oclIsTypeOf(UML::Property))->collect(t:UML::NamedElement|t.oclAsType(UML::Property).type)->asOrderedSet()->first())in (
+ supplierType= clientType
+--2. The part (the supplier) has a type that specializes the type of the role.
+or(clientType.oclAsType(Classifier).generalization.general->closure(general)->includes(supplierType))
+--3. The part has a type that realizes the type of the role.
+or(clientType.oclAsType(Classifier).getRelationships().oclAsType(UML::Realization)->includes(supplierType))
+--4. The part has a type that contains at least the ownedAttributes and ownedOperations of the role. In general this is a
+--special case of item 3 where the part has an Interface type that realizes another Interface.
+or(supplierType.oclAsType(Classifier).getAllAttributes()->includesAll(clientType.oclAsType(Classifier).getAllAttributes())
+ and supplierType.oclAsType(Classifier).getAllOperations()->includesAll(clientType.oclAsType(Classifier).getAllOperations())
+) )
+--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.
+)
+)]]></constraint>
+ <constraint id="SoaML.ServiceChannel.Onlybinaryconnectorsallowed" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="Onlybinaryconnectorsallowed" severity="ERROR" statusCode="1">
+ <message>Only binary connection are allowed</message><![CDATA[self.base_Connector.end->size() = 2
+--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) ]]></constraint>
+ <constraint id="SoaML.ServiceChannel.serviceChannelEndTypes" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="serviceChannelEndTypes" severity="ERROR" statusCode="1">
+ <message>One end of a ServiceChannel must be a Request and the other a Service in an architecture</message><![CDATA[let portsSet: OrderedSet(UML::ConnectorEnd)= self.base_Connector.end ->select(e|e.oclIsTypeOf(UML::Port)) in
+ portsSet->size()>0 implies
+ portsSet->forAll(p|p.getAppliedStereotypes()->select(s|s.name='Request' or s.name='Service')->size()=1 )
+]]></constraint>
+ <constraint id="SoaML.ServiceChannel.Compatibility" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="Compatibility" severity="ERROR" statusCode="1">
+ <message>The Request and Service connected by a ServiceChannel must be compatible</message><![CDATA[let
+ 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),
+ 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) in
+--The Request and Service connected by a ServiceChannel must be compatible
+ --1. The Request and Service have the same type, either an Interface or ServiceInterface.
+not requestTypeClassifier.oclIsUndefined() and not serviceTypeClassifier.oclIsUndefined() implies requestTypeClassifier=serviceTypeClassifier or
+ --2. The type of the Service is a specialization or realization of the type of the Request. --2 implies 1
+serviceTypeClassifier.Generalization.general->closure(general)-> includes(requestTypeClassifier) or
+ requestTypeClassifier.allUsedInterfaces()->includes(serviceTypeClassifier) or
+ --3. The Request and Service have compatible needs and capabilities respectively. This means the Service must provide an
+--Operation for every Operation used through the Request, the Request must provide an Operation for every Operation used
+--through the Service, and the protocols for how the capabilities are compatible between the Request and Service.
+(requestTypeClassifier.allUsedInterfaces().getAllOperations()->includesAll(serviceTypeClassifier.allRealizedInterfaces().getAllOperations() )and
+ requestTypeClassifier.allRealizedInterfaces().getAllOperations()-> includesAll(serviceTypeClassifier.allUsedInterfaces().getAllOperations()))]]></constraint>
+ <constraint id="SoaML.Service.serviceType" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="serviceType" severity="ERROR" statusCode="1">
+ <message>The type of a Service must be a ServiceInterface, an Interface, a provider or a consumer</message><![CDATA[ if base_Port.type.oclIsUndefined() then false else
+ let portType: Type= base_Port.type in
+ portType.getAppliedStereotypes()->select(s|s.name='ServiceInterface' or s.name='Provider' )->size()=1 or portType.oclIsTypeOf(Interface)
+ endif ]]></constraint>
+ <constraint id="SoaML.Service.isConjugatedFalse" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="isConjugatedFalse" severity="ERROR" statusCode="1">
+ <message>Service Port must not be Conjugated</message><![CDATA[
+ not base_Port.isConjugated]]></constraint>
+ <constraint id="SoaML.Port.connectorRequired" isEnabledByDefault="true" lang="OCLpivot" mode="Batch" name="connectorRequired" severity="ERROR" statusCode="1">
+ <message>connectorRequired not valid</message><![CDATA[--self.connectorRequired=true implies self.base_Port.owner.
+true]]></constraint>
+ </constraints>
+ </constraintProvider>
+ </extension>
+ <extension point="org.eclipse.emf.validation.constraintBindings">
+ <clientContext id="PortClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.PortClientSelector"/>
+ </clientContext>
+ <binding context="PortClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.Port.connectorRequired"/>
+ </binding>
+ <clientContext id="RequestClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.RequestClientSelector"/>
+ </clientContext>
+ <binding context="RequestClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.Request.requestType"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.Request.isConjugatedTrue"/>
+ </binding>
+ <clientContext id="MessageTypeClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.MessageTypeClientSelector"/>
+ </clientContext>
+ <binding context="MessageTypeClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.MessageType.noOwnedBehaviors"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.MessageType.noOwnedOperations"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.MessageType.publicAttributes"/>
+ </binding>
+ <clientContext id="AgentClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.AgentClientSelector"/>
+ </clientContext>
+ <binding context="AgentClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.Agent.isActive"/>
+ </binding>
+ <clientContext id="ServiceClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.ServiceClientSelector"/>
+ </clientContext>
+ <binding context="ServiceClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.Service.serviceType"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.Service.isConjugatedFalse"/>
+ </binding>
+ <clientContext id="ServicesArchitectureClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.ServicesArchitectureClientSelector"/>
+ </clientContext>
+ <binding context="ServicesArchitectureClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.ServicesArchitecture.participantsRoleCompatibility"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.ServicesArchitecture.partsTypes"/>
+ </binding>
+ <clientContext id="ServiceChannelClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.ServiceChannelClientSelector"/>
+ </clientContext>
+ <binding context="ServiceChannelClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.ServiceChannel.Onlybinaryconnectorsallowed"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.ServiceChannel.serviceChannelEndTypes"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.ServiceChannel.Compatibility"/>
+ </binding>
+ <clientContext id="ServiceContractClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.ServiceContractClientSelector"/>
+ </clientContext>
+ <binding context="ServiceContractClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.ServiceContract.RoleType"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.ServiceContract.AttachedBehaviorCompatibility"/>
+ </binding>
+ <clientContext id="ServiceInterfaceClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.ServiceInterfaceClientSelector"/>
+ </clientContext>
+ <binding context="ServiceInterfaceClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.ServiceInterface.partsTypesOfServiceInterface"/>
+ </binding>
+ <clientContext id="CollaborationUseClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.CollaborationUseClientSelector"/>
+ </clientContext>
+ <binding context="CollaborationUseClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.CollaborationUse.RoleBindingClientSupplierCompatibility"/>
+ </binding>
+ <clientContext id="ParticipantClientContext">
+ <selector class="org.eclipse.papyrus.soaml.profile.validation.selectors.ParticipantClientSelector"/>
+ </clientContext>
+ <binding context="ParticipantClientContext">
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.Participant.noRealizedUsedInterface"/>
+ <constraint ref="org.eclipse.papyrus.soaml.profile.validation.SoaML.Participant.portTypes"/>
+ </binding>
+ </extension>
+</plugin>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/Activator.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/Activator.java
new file mode 100644
index 00000000000..d5074f58034
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/Activator.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.soaml.profile.validation;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.soaml.profile.validation"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/AgentClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/AgentClientSelector.java
new file mode 100644
index 00000000000..9cdbed9b2d6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/AgentClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class AgentClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Agent"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/AttachmentClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/AttachmentClientSelector.java
new file mode 100644
index 00000000000..2f254120de5
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/AttachmentClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class AttachmentClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Attachment"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CapabilityClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CapabilityClientSelector.java
new file mode 100644
index 00000000000..c96c3fab320
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CapabilityClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class CapabilityClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Capability"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CatalogClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CatalogClientSelector.java
new file mode 100644
index 00000000000..754360590b2
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CatalogClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class CatalogClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Catalog"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategorizationClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategorizationClientSelector.java
new file mode 100644
index 00000000000..3fa2f915b10
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategorizationClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class CategorizationClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Categorization"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategoryClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategoryClientSelector.java
new file mode 100644
index 00000000000..6d19c2349ab
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategoryClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class CategoryClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Category"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategoryValueClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategoryValueClientSelector.java
new file mode 100644
index 00000000000..160f687e559
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CategoryValueClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class CategoryValueClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "CategoryValue"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CollaborationClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CollaborationClientSelector.java
new file mode 100644
index 00000000000..6a9ac431a94
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CollaborationClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class CollaborationClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Collaboration"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CollaborationUseClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CollaborationUseClientSelector.java
new file mode 100644
index 00000000000..aaf8900c37e
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/CollaborationUseClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class CollaborationUseClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "CollaborationUse"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ConsumerClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ConsumerClientSelector.java
new file mode 100644
index 00000000000..38346c7e42c
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ConsumerClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ConsumerClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Consumer"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ExposeClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ExposeClientSelector.java
new file mode 100644
index 00000000000..54148e2470f
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ExposeClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ExposeClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Expose"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/FreeFormDescriptorClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/FreeFormDescriptorClientSelector.java
new file mode 100644
index 00000000000..1d6c08f9a85
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/FreeFormDescriptorClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class FreeFormDescriptorClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "FreeFormDescriptor"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/FreeFormValueClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/FreeFormValueClientSelector.java
new file mode 100644
index 00000000000..74f65a23260
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/FreeFormValueClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class FreeFormValueClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "FreeFormValue"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MessageTypeClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MessageTypeClientSelector.java
new file mode 100644
index 00000000000..20ee462a629
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MessageTypeClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class MessageTypeClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "MessageType"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MilestoneClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MilestoneClientSelector.java
new file mode 100644
index 00000000000..a058ff8f270
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MilestoneClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class MilestoneClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Milestone"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MotivationRealizationClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MotivationRealizationClientSelector.java
new file mode 100644
index 00000000000..fd8fcbb94b5
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/MotivationRealizationClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class MotivationRealizationClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "MotivationRealization"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/NodeDescriptorClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/NodeDescriptorClientSelector.java
new file mode 100644
index 00000000000..1ed92c7fc19
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/NodeDescriptorClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class NodeDescriptorClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "NodeDescriptor"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ParticipantClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ParticipantClientSelector.java
new file mode 100644
index 00000000000..7ba594bf641
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ParticipantClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ParticipantClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Participant"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/PortClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/PortClientSelector.java
new file mode 100644
index 00000000000..17175862132
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/PortClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class PortClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Port"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/PropertyClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/PropertyClientSelector.java
new file mode 100644
index 00000000000..14398b8b015
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/PropertyClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class PropertyClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Property"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ProviderClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ProviderClientSelector.java
new file mode 100644
index 00000000000..6a8b8c9a562
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ProviderClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ProviderClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Provider"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/RequestClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/RequestClientSelector.java
new file mode 100644
index 00000000000..c1ee4baba80
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/RequestClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class RequestClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Request"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceChannelClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceChannelClientSelector.java
new file mode 100644
index 00000000000..ffdc1677537
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceChannelClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ServiceChannelClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "ServiceChannel"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceClientSelector.java
new file mode 100644
index 00000000000..23183520b4b
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ServiceClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "Service"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceContractClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceContractClientSelector.java
new file mode 100644
index 00000000000..3adbf6a483a
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceContractClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ServiceContractClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "ServiceContract"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceInterfaceClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceInterfaceClientSelector.java
new file mode 100644
index 00000000000..e971ec5c5bf
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServiceInterfaceClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ServiceInterfaceClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "ServiceInterface"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServicesArchitectureClientSelector.java b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServicesArchitectureClientSelector.java
new file mode 100644
index 00000000000..5284e4bce9f
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile.validation/src/org/eclipse/papyrus/soaml/profile/validation/selectors/ServicesArchitectureClientSelector.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fadwa TMAR (CEA LIST) fadwa.tmar@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.soaml.profile.validation.selectors;
+
+import org.eclipse.emf.validation.model.IClientSelector;
+import org.eclipse.papyrus.uml.service.validation.StereotypeUtil;
+
+/**
+ * This class filters (selects) passed stereotype applications. It returns true, if the
+ * associated stereotype (or one of its super-stereotypes) has the name '[stereotype.name/]'.
+ *
+ * @generated
+ */
+public class ServicesArchitectureClientSelector implements IClientSelector {
+
+ public boolean selects(Object stereoApplicationObj) {
+ return StereotypeUtil.checkStereoApplication(stereoApplicationObj, "ServicesArchitecture"); //$NON-NLS-1$
+ }
+}
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.classpath b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.classpath
new file mode 100644
index 00000000000..3d1f8e3a126
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.project b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.project
new file mode 100644
index 00000000000..bee0c157654
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.soaml.profile</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.settings/org.eclipse.jdt.core.prefs b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..838bd9d6942
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/META-INF/MANIFEST.MF b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..f373f69ca6c
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Export-Package: SoaML,
+ SoaML.impl,
+ SoaML.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.uml2.uml;visibility:=reexport,
+ org.eclipse.papyrus.uml.extensionpoints,
+ org.eclipse.papyrus.uml.diagram.common,
+ org.eclipse.emf.validation,
+ org.eclipse.papyrus.uml.service.validation,
+ org.eclipse.papyrus.dsml.validation
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.1.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.soaml.profile;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/build.properties b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/build.properties
new file mode 100644
index 00000000000..e485b47b099
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/build.properties
@@ -0,0 +1,14 @@
+#
+#Tue Feb 17 09:36:28 CET 2015
+output..=bin/
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ palettes/,\
+ src/,\
+ icons/,\
+ style/
+jars.compile.order=.
+source..=src/,src
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/Provided.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/Provided.png
new file mode 100644
index 00000000000..484df1b643d
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/Provided.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/Required.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/Required.png
new file mode 100644
index 00000000000..d49fafdc182
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/Required.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/SoaML_new_Project32x32.gif b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/SoaML_new_Project32x32.gif
new file mode 100644
index 00000000000..4f10139cad6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/SoaML_new_Project32x32.gif
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/agent16x16.gif b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/agent16x16.gif
new file mode 100644
index 00000000000..c756a8ec9c6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/agent16x16.gif
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/agent16x16.svg b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/agent16x16.svg
new file mode 100644
index 00000000000..6d9a48160c5
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/agent16x16.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3346"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ width="20"
+ height="20"
+ viewBox="0 0 20 20"
+ sodipodi:docname="agent16x16.svg">
+ <metadata
+ id="metadata3352">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3350" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="604"
+ inkscape:window-height="480"
+ id="namedview3348"
+ showgrid="false"
+ inkscape:zoom="1.475"
+ inkscape:cx="10"
+ inkscape:cy="10"
+ inkscape:window-x="2616"
+ inkscape:window-y="237"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg3346" />
+ <image
+ width="20"
+ height="20"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAjFJREFU
+OI2Fk1tIVFEUhr9zVTsiotLFwMwIb5RCGYUvgaZdKCMEu7x0JwosMqKXeiiIJOolK3oqX6KgmwTp
+VD5IIZGQ2AWJIEuziWmmJsa5eJxzdg9nPCMNYz9s9sNa6//X/tfaEgmEIpPi1Scf3mAESSItopNx
+DtRXIElOljodGA2E6Rv2MvTFn74aGPGFOLiu0pWQ2rveCF1ViduCUHQK04KS+blsWrEEAFsIotEw
+bR3PATi7t5blxQUosux08HL4R4rKh6++JIFl0XbrBceaawC48mCQky01bq6aUp1AhuLch649o7G8
+kGWLCwA43FRNz8BIkuDxqY0SQCAUE6P+CXKz52Bk6igzjPQMf2d3YyUAOVkZqDOCUkf3O+EPxbBs
+mz8RE11TWVO6gIaqRQBEYib7r/dycddqAG72vGdnXRlVJXMdDzxDYyntfxz/zYZqhyA7U+P89lW0
+33kNwI66MsqL8t1cOZ0HquwcTZFYujCPlrWlFM/LobWzH02REUIIAGk8MCHMuEUwYnLm7kAKkRw2
+AWecli3QlKRm17mtyZ0LhmOi9+03xn6F3U0syjMwdA2Aqw8HsQ2dI/UVFOYZaKpMeVG+5I4x18ic
+ZYGh6fQjAbB+ZbE03f6sHvwL29AB+OwNOm9P/IX/EkyacbH5whNX8WhnPz+DETc+K4EQQjRffgrA
+7dY67h1vAGDfjT6mpiyRlkAksKW9G4COPbVkZ+nomsL9E40AbLvkQQgh/gLD/88q0ODp6QAAAABJ
+RU5ErkJggg==
+"
+ id="image3354"
+ x="0"
+ y="0" />
+</svg>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/capability16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/capability16x16.png
new file mode 100644
index 00000000000..fc6ef1fbd0d
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/capability16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/capability16x16.svg b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/capability16x16.svg
new file mode 100644
index 00000000000..5ebca87b422
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/capability16x16.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3333"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ width="15"
+ height="15"
+ viewBox="0 0 15 15"
+ sodipodi:docname="capability16x16.svg">
+ <metadata
+ id="metadata3339">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3337" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="640"
+ inkscape:window-height="480"
+ id="namedview3335"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="7.5"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="120"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg3333" />
+ <image
+ width="15"
+ height="15"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
+jwv8YQUAAAMAUExURRAgeBgoeBgogCAwgCgwiCBAgDhYkDhgkDhgmEhYiEBYkEBgmFBomEBgqEBo
+sEhosFhooFBwuFh4uGh4uFh4wHCIuHCQsHiQuFiAwHCIyHiIyHCQyHCYyHiQyHiYyHCY0HCgwHCg
+yICYyICQ0ICY0ICg0JC42KC40JjA2JjA4LDA2KDA4KDI4KjI4LDQ6LjY6MjY6Njg6Njg8Njo8ODo
+8ODo+ODw+Ojw+PDw+PD4+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFU2hfYAAAAJcEhZcwAADsMA
+AA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjVJivzgAAAAqklEQVQoU13N
+5xKCMAwA4GKVRnHgBAeKqygKiKAd7/9gdsAfm8vl7ssokn8PHV0gYDK2QD51E2ABalYnBJS0wBjT
+yRhpgSvgKgILRAqZeHq8tGA3pdwt1zNdEQDxAFavKl2YhrohuGBChGl4MKD7JCinvMgeYzNh+tdK
+5BmlewWxuhG8J1IU2Z2OFOg99Yf45s8b3TZw6vb9+TnyB27vYgA7GA83EcZOB/0AHbco73lKDJQA
+AAAASUVORK5CYII=
+"
+ id="image3341"
+ x="0"
+ y="0" />
+</svg>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/messageType.svg b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/messageType.svg
new file mode 100644
index 00000000000..7042c95bb5b
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/messageType.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3386"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ width="20.625"
+ height="19.6875"
+ viewBox="0 0 20.625 19.6875"
+ sodipodi:docname="messageType.svg">
+ <metadata
+ id="metadata3392">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3390" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="640"
+ inkscape:window-height="480"
+ id="namedview3388"
+ showgrid="false"
+ inkscape:zoom="11.987302"
+ inkscape:cx="10.3125"
+ inkscape:cy="9.84375"
+ inkscape:window-x="0"
+ inkscape:window-y="120"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg3386" />
+ <image
+ width="20.625"
+ height="19.6875"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAVCAMAAAB1/u6nAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF
+ECB4GCh4GCiAIDCAKDCIIECAOFiQOGCQOGCYSFiIQFiQQGCYUGiYQGCoQGiwSGiwWGigUHC4WHi4
+aHi4WHjAcIi4cJCweJC4WIDAcIjIeIjIcJDIcJjIeJDIeJjIcJjQcKDAcKDIgJjIgJDQgJjQgKDQ
+kLjYoLjQmMDYmMDgoMDYsMDYoMDgoMjgqMjgsNDouNjoyNjo2ODo2ODw2Ojw4Ojw4Oj44PD46PD4
+8PD48Pj4////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZCu2bAAAAAlwSFlzAAAOwgAADsIBFShKgAAAABl0
+RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuNUmK/OAAAADCSURBVChTnczZDoIwEAVQsdqO4r7h
+Lm64oIALWKb//182Y0VNfNFp2vSeTG5OfZ1/eM5BAF2XsmGRxOYAZcMQS76JNzyJP1lKG/bCllJQ
+zjgVKddXOpSf3QoBFWo7U35u06vUuDto0ccwCBugd7r6HcpZN6YoEft+f0ZguvWucM7NNAoOtRcD
+7a6vGAaeN83Y1d3Opa4wCnZeNePHJHgLj1tvpL8vXhRKjfZy0ijz4uqNmcVYZThhzMrnPkre5hdW
+6g4h41g17e/qigAAAABJRU5ErkJggg==
+"
+ id="image3394"
+ x="0"
+ y="0" />
+</svg>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/msgtype16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/msgtype16x16.png
new file mode 100644
index 00000000000..e9611c89ed4
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/msgtype16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/participant16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/participant16x16.png
new file mode 100644
index 00000000000..82b5ace7f44
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/participant16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/participant16x16.svg b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/participant16x16.svg
new file mode 100644
index 00000000000..a1822abdcc3
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/participant16x16.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3356"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ width="15"
+ height="15"
+ viewBox="0 0 15 15"
+ sodipodi:docname="participant16x16.svg">
+ <metadata
+ id="metadata3362">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3360" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="640"
+ inkscape:window-height="480"
+ id="namedview3358"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="7.5"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="120"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg3356" />
+ <image
+ width="15"
+ height="15"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
+jwv8YQUAAAMAUExURRAgeBgoeCAweCAwgCA4gABQkDBQkDhYoEBYiFBomEBgqEhosFh4uGB4sECA
+sHCIuGiAwHiIyHCQyHCYyHiYyHCQ0ICYyIiw2Ii42JC42Ji40Ji42Ki42JjA2LjA0KDA4KDI4LDQ
+4LDQ6LjQ6NDg6NDo8Njo8ODw+Ojw+PDw+PD4+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeEOQMAAAAJcEhZcwAADsMA
+AA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjVJivzgAAAAhElEQVQoU2XM
+DQ+CIBCAYZAsSfqACksrtNLQ+///LzjUnL7bbezZHQRmeYiHRviGAuyxBVjr3jmCG38C6nAUCGGj
+6+AuPhMAEE9xQXDjP0vbyhTbAeL8XNvK3LJTAFcK9l0W2WYE1TYv87iqHjRL+E5KnqxXGoHRiHEp
+WUQJ6U/+zQDgB6sIH3B7JjvUAAAAAElFTkSuQmCC
+"
+ id="image3364"
+ x="0"
+ y="0" />
+</svg>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/request16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/request16x16.png
new file mode 100644
index 00000000000..f5bcd35f51b
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/request16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sa16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sa16x16.png
new file mode 100644
index 00000000000..a1a0369bbfa
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sa16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sa16x16.svg b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sa16x16.svg
new file mode 100644
index 00000000000..97f66bd95ca
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sa16x16.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3336"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ width="15"
+ height="15"
+ viewBox="0 0 15 15"
+ sodipodi:docname="sa16x16.svg">
+ <metadata
+ id="metadata3342">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3340" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1005"
+ id="namedview3338"
+ showgrid="false"
+ inkscape:zoom="1.6854167"
+ inkscape:cx="7.5"
+ inkscape:cy="-19.199629"
+ inkscape:window-x="1911"
+ inkscape:window-y="-9"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg3336" />
+ <image
+ width="15"
+ height="15"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
+jwv8YQUAAAMAUExURRAgeBgoeBAogCAwgCAwiCA4gDhQkCBooDBwqDB4qEhYiEBYkFBomEBgqEho
+sFhooFhwoFBwuFh4wECAsGiAuHCIuFiAwFiQwHCIyHiIyHCQyHCYyHiQyHCQ0HiY0HCgwHCgyICY
+yICg0Iig0ICw0Iiw0JC42JjA2JjA4KDA2LDAyLDA2KDA4KDI4KjI4LDQ4LDQ6LjY6MDY6Njg8Njo
+8Njo+ODo+ODw+Ojw+PDw+PD4+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG+z2moAAAAJcEhZcwAADsMA
+AA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjVJivzgAAAAqElEQVQoU22O
+2RaCMAxEwaKAu1ZRBAUVqwWNW8XS/v9/2QLy4HHyknMzk8SQP/oH0gjbruPaOEpLELsJBS2aOLEC
+sAD2qkv10sDActXnXHDBACtAyynfzJdTQTXQCeXhmVc56h3cy7w10ztk7BwoPCfifjkP9ZXqjx0T
+VyAkaD4dyuIBJzJoQFC8b3Akqxpsre54FvqjXqe9LwEykdX3Q4TMllFHvpLyA32gLBsswmx9AAAA
+AElFTkSuQmCC
+"
+ id="image3344"
+ x="0.31520396"
+ y="0.76019806" />
+</svg>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sc16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sc16x16.png
new file mode 100644
index 00000000000..cd925c24072
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sc16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sc16x16.svg b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sc16x16.svg
new file mode 100644
index 00000000000..255c4f8bf57
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/sc16x16.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3366"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ width="15"
+ height="15"
+ viewBox="0 0 15 15"
+ sodipodi:docname="sc16x16.svg">
+ <metadata
+ id="metadata3372">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3370" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="640"
+ inkscape:window-height="480"
+ id="namedview3368"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="7.5"
+ inkscape:cy="7.5"
+ inkscape:window-x="2544"
+ inkscape:window-y="284"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg3366" />
+ <image
+ width="15"
+ height="15"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
+jwv8YQUAAAMAUExURRgoeBAogCAwgCAwiCA4gDhQkEhYiEBYkFBomEBgqEhosFhooFhwoFBwuFh4
+wFCAsFiIsGCIuGiAuHCIuHiQuFiAwHCIyHiIyHCQyHCYyHiQyHiYyHCQ0HiY0HCgwICYyICgwICg
+yIioyICg0ICo0JCw0JC42Ji42JjA2JjA4KDA2LDA2KDA4KDI4KjI4LDQ4LDQ6LjQ4LjY6MDY6MjY
+6NDg6NDg8Njo8ODo8ODo+ODw+Ojw+PDw+PD4+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOjRB3QAAAAJcEhZcwAADsMA
+AA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjVJivzgAAAAtElEQVQoU0XN
+WRaCMAwF0AqOOCAqIuBAgVYFRVRkbva/LKHFY/qT3vOSIABt2T7oqgHeE41/OQSQJxCQLoOAYp+0
+XRdBJGFlTD6BmGwAs6rMvJox5wdFkaZ28jystwsObpymkV9VdaiLBGD76OZFrof6XgA4ekjCOXvd
+bwoHV3U24GXsEVFqCsAqKFC/oyudtNCcO4NZl3F0oTu+A+AkD2cry5iOBn0BEpLksWFJEuoJ+BfA
+Fw6VLrYZ6nUgAAAAAElFTkSuQmCC
+"
+ id="image3374"
+ x="0"
+ y="0" />
+</svg>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/service16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/service16x16.png
new file mode 100644
index 00000000000..fb32b628975
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/service16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/si16x16.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/si16x16.png
new file mode 100644
index 00000000000..e7b2567e1f6
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/si16x16.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/si16x16.svg b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/si16x16.svg
new file mode 100644
index 00000000000..441859faa0f
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/si16x16.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg3376"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ width="15"
+ height="15"
+ viewBox="0 0 15 15"
+ sodipodi:docname="si16x16.svg">
+ <metadata
+ id="metadata3382">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3380" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="640"
+ inkscape:window-height="480"
+ id="namedview3378"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="7.5"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="120"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg3376" />
+ <image
+ width="15"
+ height="15"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
+jwv8YQUAAAMAUExURRAgeBgoeCAweCAwgCA4gDBQkDhYkDhYoEBYiFBomEBgqEhosFh4uGB4sHCI
+sHCIuGiAwGiYwHiIyHCQyHCYyHiYyHCQ0ICYyIiw2Ii42JC42Ji42Ki42JjA2LjA0KDA4KDI4LDQ
+4LDQ6LjQ6MjQ4Njg6NDo8Njg8Njo8ODo8Ojo8Ojw+PDw+P///wAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHe8w2kAAAAJcEhZcwAADsMA
+AA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjVJivzgAAAAkklEQVQoU02O
+YR/BIBCH2yKLxBo2hgzDdPf9v54rZZ4Xd7+e7n/FSpEo0cPEkBCjoOs/8Sa+JQpHhKKjAACKAGIf
+RWiI1WqtfGfhRaHvz2M4xx3OgTqr3Tih+wV0tp3/JmD7cJ09NBsS/us0gO52aZsZCZ9DHOB1tad9
+FUXNC7k0RhbTSR0Ez3IujeF5xliMJBA/lBoe0HnhP/sAAAAASUVORK5CYII=
+"
+ id="image3384"
+ x="0"
+ y="0" />
+</svg>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/soaml_header.png b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/soaml_header.png
new file mode 100644
index 00000000000..af0ec2cdc41
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/icons/soaml_header.png
Binary files differ
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaML.ecore b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaML.ecore
new file mode 100644
index 00000000000..90d95acd61b
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaML.ecore
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="SoaML" nsURI="http://Papyrus/SoaML/1" nsPrefix="SoaML">
+ <eClassifiers xsi:type="ecore:EClass" name="Agent" eSuperTypes="#//Participant">
+ <eOperations name="isActive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="base_Class.isActive"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Participant">
+ <eOperations name="noRealizedUsedInterface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="portTypes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Collaboration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Collaboration" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Collaboration"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStrict" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MotivationElement" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Provider">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Interface" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FreeFormValue">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_ValueSpecification"
+ ordered="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//ValueSpecification"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MessageType">
+ <eOperations name="noOwnedBehaviors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Class&lt;>null implies self.base_Class.ownedBehavior->size()=0"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="noOwnedOperations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="publicAttributes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Signal" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Signal"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="encoding" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_DataType" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Category" eSuperTypes="#//NodeDescriptor"/>
+ <eClassifiers xsi:type="ecore:EClass" name="NodeDescriptor">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Artifact" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Artifact"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Milestone">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Signal"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="progress" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
+ upperBound="-1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//ValueSpecification"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Comment" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Comment"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FreeFormDescriptor">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CategoryValue" eSuperTypes="#//FreeFormValue"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ServiceContract" eSuperTypes="#//Collaboration">
+ <eOperations name="RoleType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="AttachedBehaviorCompatibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Request">
+ <eOperations name="requestType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="isConjugatedTrue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="base_Port.isConjugated"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Consumer">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Interface" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Catalog" eSuperTypes="#//NodeDescriptor">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Capability">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Categorization">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Dependency" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Dependency"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MotivationRealization">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Realization" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Realization"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServiceInterface">
+ <eOperations name="partsTypesOfServiceInterface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Interface" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServicesArchitecture" eSuperTypes="#//Collaboration">
+ <eOperations name="participantsRoleCompatibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="partsTypes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attachment">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="encoding" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mimetype" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CollaborationUse">
+ <eOperations name="RoleBindingClientSupplierCompatibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_CollaborationUse"
+ ordered="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//CollaborationUse"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStrict" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServiceChannel">
+ <eOperations name="Onlybinaryconnectorsallowed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.base_Connector.end->size() = 2 &#xD;&#xA;--and self.base_Connector.end->forAll(e|e.oclIsTypeOf(UML::Port)) "/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="serviceChannelEndTypes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="Compatibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Connector" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Service">
+ <eOperations name="serviceType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="isConjugatedFalse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value=" &#xD;&#xA; not base_Port.isConjugated"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Port">
+ <eOperations name="connectorRequired" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="--self.connectorRequired=true implies self.base_Port.owner.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The chain of diagnostics to which problems are to be appended."/>
+ </eAnnotations>
+ </eParameters>
+ <eParameters name="context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The cache of context-specific information."/>
+ </eAnnotations>
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="connectorRequired" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Property">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isID" ordered="false" lowerBound="1"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Expose">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Dependency" ordered="false"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Dependency"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaML.genmodel b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaML.genmodel
new file mode 100644
index 00000000000..7c4166fbe4a
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaML.genmodel
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.papyrus.soaml.profile/src" modelPluginID="org.eclipse.papyrus.soaml.profile"
+ modelName="SoaML" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+ usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>SoaML.ecore</foreignModel>
+ <genPackages prefix="SoaML" disposableProviderFactory="true" ecorePackage="SoaML.ecore#/">
+ <genClasses ecoreClass="SoaML.ecore#//Agent">
+ <genOperations ecoreOperation="SoaML.ecore#//Agent/isActive">
+ <genParameters ecoreParameter="SoaML.ecore#//Agent/isActive/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//Agent/isActive/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Participant">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Participant/base_Class"/>
+ <genOperations ecoreOperation="SoaML.ecore#//Participant/noRealizedUsedInterface">
+ <genParameters ecoreParameter="SoaML.ecore#//Participant/noRealizedUsedInterface/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//Participant/noRealizedUsedInterface/context"/>
+ </genOperations>
+ <genOperations ecoreOperation="SoaML.ecore#//Participant/portTypes">
+ <genParameters ecoreParameter="SoaML.ecore#//Participant/portTypes/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//Participant/portTypes/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Collaboration">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Collaboration/base_Collaboration"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Collaboration/isStrict"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="SoaML.ecore#//MotivationElement"/>
+ <genClasses ecoreClass="SoaML.ecore#//Provider">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Provider/base_Class"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Provider/base_Interface"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//FreeFormValue">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//FreeFormValue/base_ValueSpecification"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//MessageType">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//MessageType/base_Signal"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//MessageType/encoding"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//MessageType/base_Class"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//MessageType/base_DataType"/>
+ <genOperations ecoreOperation="SoaML.ecore#//MessageType/noOwnedBehaviors">
+ <genParameters ecoreParameter="SoaML.ecore#//MessageType/noOwnedBehaviors/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//MessageType/noOwnedBehaviors/context"/>
+ </genOperations>
+ <genOperations ecoreOperation="SoaML.ecore#//MessageType/noOwnedOperations">
+ <genParameters ecoreParameter="SoaML.ecore#//MessageType/noOwnedOperations/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//MessageType/noOwnedOperations/context"/>
+ </genOperations>
+ <genOperations ecoreOperation="SoaML.ecore#//MessageType/publicAttributes">
+ <genParameters ecoreParameter="SoaML.ecore#//MessageType/publicAttributes/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//MessageType/publicAttributes/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Category"/>
+ <genClasses ecoreClass="SoaML.ecore#//NodeDescriptor">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//NodeDescriptor/base_Artifact"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Milestone">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Milestone/signal"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Milestone/progress"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Milestone/value"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Milestone/base_Comment"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//FreeFormDescriptor">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//FreeFormDescriptor/base_Property"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//CategoryValue"/>
+ <genClasses ecoreClass="SoaML.ecore#//ServiceContract"/>
+ <genClasses ecoreClass="SoaML.ecore#//Request">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Request/base_Port"/>
+ <genOperations ecoreOperation="SoaML.ecore#//Request/requestType">
+ <genParameters ecoreParameter="SoaML.ecore#//Request/requestType/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//Request/requestType/context"/>
+ </genOperations>
+ <genOperations ecoreOperation="SoaML.ecore#//Request/isConjugatedTrue">
+ <genParameters ecoreParameter="SoaML.ecore#//Request/isConjugatedTrue/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//Request/isConjugatedTrue/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Consumer">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Consumer/base_Interface"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Consumer/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Catalog">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Catalog/base_Package"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Capability">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Capability/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Categorization">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Categorization/base_Dependency"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//MotivationRealization">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//MotivationRealization/base_Realization"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//ServiceInterface">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//ServiceInterface/base_Interface"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//ServiceInterface/base_Class"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//ServicesArchitecture">
+ <genOperations ecoreOperation="SoaML.ecore#//ServicesArchitecture/participantsTypesAnsRole">
+ <genParameters ecoreParameter="SoaML.ecore#//ServicesArchitecture/participantsTypesAnsRole/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//ServicesArchitecture/participantsTypesAnsRole/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Attachment">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Attachment/encoding"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Attachment/base_Property"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Attachment/mimetype"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//CollaborationUse">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//CollaborationUse/base_CollaborationUse"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//CollaborationUse/isStrict"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//ServiceChannel">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//ServiceChannel/base_Connector"/>
+ <genOperations ecoreOperation="SoaML.ecore#//ServiceChannel/Onlybinaryconnectorsallowed">
+ <genParameters ecoreParameter="SoaML.ecore#//ServiceChannel/Onlybinaryconnectorsallowed/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//ServiceChannel/Onlybinaryconnectorsallowed/context"/>
+ </genOperations>
+ <genOperations ecoreOperation="SoaML.ecore#//ServiceChannel/serviceChannelEndTypes">
+ <genParameters ecoreParameter="SoaML.ecore#//ServiceChannel/serviceChannelEndTypes/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//ServiceChannel/serviceChannelEndTypes/context"/>
+ </genOperations>
+ <genOperations ecoreOperation="SoaML.ecore#//ServiceChannel/Compatibility">
+ <genParameters ecoreParameter="SoaML.ecore#//ServiceChannel/Compatibility/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//ServiceChannel/Compatibility/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Service">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Service/base_Port"/>
+ <genOperations ecoreOperation="SoaML.ecore#//Service/serviceType">
+ <genParameters ecoreParameter="SoaML.ecore#//Service/serviceType/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//Service/serviceType/context"/>
+ </genOperations>
+ <genOperations ecoreOperation="SoaML.ecore#//Service/isConjugatedFalse">
+ <genParameters ecoreParameter="SoaML.ecore#//Service/isConjugatedFalse/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//Service/isConjugatedFalse/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Port">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Port/base_Port"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Port/connectorRequired"/>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Property">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Property/isID"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Property/base_Property"/>
+ <genOperations ecoreOperation="SoaML.ecore#//Property/portTypeMustCorrespondToRoleType">
+ <genParameters ecoreParameter="SoaML.ecore#//Property/portTypeMustCorrespondToRoleType/diagnostics"/>
+ <genParameters ecoreParameter="SoaML.ecore#//Property/portTypeMustCorrespondToRoleType/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SoaML.ecore#//Expose">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Expose/base_Dependency"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.di b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.di
new file mode 100644
index 00000000000..2cdd42cf8a7
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.di
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_WvH5oADyEeO_SKgrbXd_6g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_1ezHcAD8EeO_SKgrbXd_6g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_LT_SEAD9EeO_SKgrbXd_6g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_FjfdoAD-EeO_SKgrbXd_6g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_dbsMYAD_EeO_SKgrbXd_6g"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_lndCAAEBEeO_SKgrbXd_6g"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_WvH5oADyEeO_SKgrbXd_6g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_1ezHcAD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_LT_SEAD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_FjfdoAD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_dbsMYAD_EeO_SKgrbXd_6g"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="SoaMLProfile.profile.notation#_lndCAAEBEeO_SKgrbXd_6g"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.genmodel b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.genmodel
new file mode 100644
index 00000000000..5192084e998
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.genmodel
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+ modelDirectory="/org.eclipse.papyrus.soaml.profile/src" modelPluginID="org.eclipse.papyrus.soaml.profile"
+ modelName="SoaMLProfile" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="6.0" copyrightFields="false"
+ usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ operationReflection="true" importOrganizing="true">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="REPORT"/>
+ <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+ <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+ <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+ <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+ <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+ <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+ <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="NON_API_INVARIANTS" value="IGNORE"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+ <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+ <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ </genAnnotations>
+ <foreignModel>SoaMLProfile.profile.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="SoaML" disposableProviderFactory="true"
+ ecorePackage="SoaML.ecore#/">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Agent">
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//Agent/isActive">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Agent/isActive/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Agent/isActive/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Participant">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Participant/base_Class"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//Participant/noRealizedUsedInterface">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Participant/noRealizedUsedInterface/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Participant/noRealizedUsedInterface/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//Participant/portTypes">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Participant/portTypes/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Participant/portTypes/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Collaboration">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Collaboration/base_Collaboration"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Collaboration/isStrict"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="SoaML.ecore#//MotivationElement"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Provider">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Provider/base_Class"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Provider/base_Interface"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//FreeFormValue">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//FreeFormValue/base_ValueSpecification"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//MessageType">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//MessageType/base_Signal"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//MessageType/encoding"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//MessageType/base_Class"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//MessageType/base_DataType"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//MessageType/noOwnedBehaviors">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//MessageType/noOwnedBehaviors/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//MessageType/noOwnedBehaviors/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//MessageType/noOwnedOperations">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//MessageType/noOwnedOperations/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//MessageType/noOwnedOperations/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//MessageType/publicAttributes">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//MessageType/publicAttributes/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//MessageType/publicAttributes/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Category"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//NodeDescriptor">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//NodeDescriptor/base_Artifact"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Milestone">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Milestone/signal"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Milestone/progress"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Milestone/value"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Milestone/base_Comment"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//FreeFormDescriptor">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//FreeFormDescriptor/base_Property"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//CategoryValue"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//ServiceContract">
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//ServiceContract/RoleType">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceContract/RoleType/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceContract/RoleType/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//ServiceContract/AttachedBehaviorCompatibility">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceContract/AttachedBehaviorCompatibility/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceContract/AttachedBehaviorCompatibility/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Request">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Request/base_Port"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//Request/requestType">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Request/requestType/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Request/requestType/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//Request/isConjugatedTrue">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Request/isConjugatedTrue/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Request/isConjugatedTrue/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Consumer">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Consumer/base_Interface"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Consumer/base_Class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Catalog">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Catalog/base_Package"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Capability">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Capability/base_Class"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Categorization">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Categorization/base_Dependency"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//MotivationRealization">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//MotivationRealization/base_Realization"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//ServiceInterface">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//ServiceInterface/base_Interface"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//ServiceInterface/base_Class"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//ServiceInterface/partsTypesOfServiceInterface">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceInterface/partsTypesOfServiceInterface/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceInterface/partsTypesOfServiceInterface/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//ServicesArchitecture">
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//ServicesArchitecture/participantsRoleCompatibility">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServicesArchitecture/participantsRoleCompatibility/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServicesArchitecture/participantsRoleCompatibility/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//ServicesArchitecture/partsTypes">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServicesArchitecture/partsTypes/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServicesArchitecture/partsTypes/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Attachment">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Attachment/encoding"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Attachment/base_Property"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Attachment/mimetype"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//CollaborationUse">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//CollaborationUse/base_CollaborationUse"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//CollaborationUse/isStrict"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//CollaborationUse/RoleBindingClientSupplierCompatibility">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//CollaborationUse/RoleBindingClientSupplierCompatibility/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//CollaborationUse/RoleBindingClientSupplierCompatibility/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//ServiceChannel">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//ServiceChannel/base_Connector"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//ServiceChannel/Onlybinaryconnectorsallowed">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceChannel/Onlybinaryconnectorsallowed/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceChannel/Onlybinaryconnectorsallowed/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//ServiceChannel/serviceChannelEndTypes">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceChannel/serviceChannelEndTypes/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceChannel/serviceChannelEndTypes/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//ServiceChannel/Compatibility">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceChannel/Compatibility/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//ServiceChannel/Compatibility/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Service">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Service/base_Port"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//Service/serviceType">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Service/serviceType/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Service/serviceType/context"/>
+ </genOperations>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//Service/isConjugatedFalse">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Service/isConjugatedFalse/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Service/isConjugatedFalse/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Port">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Port/base_Port"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Port/connectorRequired.1"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="SoaML.ecore#//Port/connectorRequired">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Port/connectorRequired/diagnostics"/>
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="SoaML.ecore#//Port/connectorRequired/context"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Property">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute SoaML.ecore#//Property/isID"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Property/base_Property"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="SoaML.ecore#//Expose">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference SoaML.ecore#//Expose/base_Dependency"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.notation b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.notation
new file mode 100644
index 00000000000..34bffcbaed5
--- /dev/null
+++ b/extraplugins/soaml/org.eclipse.papyrus.soaml.profile/model/SoaMLProfile.profile.notation
@@ -0,0 +1,1436 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_WvH5oADyEeO_SKgrbXd_6g" type="PapyrusUMLProfileDiagram" name="ServiceInterfaceDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_axA9kAD5EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_axCLsAD5EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_axCLsQD5EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_axCLsgD5EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_axCLswD5EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_axCLtAD5EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_axCLtQD5EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_axCywAD5EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_axCywQD5EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_axCywgD5EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_axCywwD5EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_axCyxAD5EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_axCyxQD5EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_axCyxgD5EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_axCyxwD5EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_axCyyAD5EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_axCyyQD5EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_axCyygD5EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_npfN0K3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_npfN0a3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_npfN0q3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Agent"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_axA9kQD5EeO_SKgrbXd_6g" x="188" y="482" height="151"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bje8UAD5EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bjfjYAD5EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bjfjYQD5EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bjgKcAD5EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bjgKcQD5EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bjgKcgD5EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bjgKcwD5EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bjgKdAD5EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bjgKdQD5EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bjgKdgD5EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bjgKdwD5EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bjgKeAD5EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bjgKeQD5EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bjgKegD5EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bjgKewD5EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bjgKfAD5EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bjgxgAD5EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bjgxgQD5EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nptQQK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nptQQa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nptQQq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Participant"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bje8UQD5EeO_SKgrbXd_6g" x="190" y="190" height="231"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nQiucAD7EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nQjVgAD7EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nQjVgQD7EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nQj8kAD7EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nQj8kQD7EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nQj8kgD7EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nQj8kwD7EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nQj8lAD7EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nQj8lQD7EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nQj8lgD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nQj8lwD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nQj8mAD7EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nQj8mQD7EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nQj8mgD7EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nQj8mwD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nQj8nAD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nQj8nQD7EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nQj8ngD7EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_np3oUK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_np3oUa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_np3oUq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Request"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nQiucQD7EeO_SKgrbXd_6g" x="1324" y="313" height="348"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_obdpcAD7EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obeQgAD7EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obeQgQD7EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obe3kAD7EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obe3kQD7EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obe3kgD7EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obe3kwD7EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_obe3lAD7EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_obe3lQD7EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_obe3lgD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_obe3lwD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_obe3mAD7EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_obe3mQD7EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_obe3mgD7EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_obe3mwD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_obe3nAD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_obe3nQD7EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_obe3ngD7EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_np6EkK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_np6Eka3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_np6Ekq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-ServiceInterface"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_obdpcQD7EeO_SKgrbXd_6g" x="195" y="-206"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_p3RgIAD7EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p3SHMAD7EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p3SHMQD7EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p3SHMgD7EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p3SHMwD7EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_p3SuQAD7EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p3SuQQD7EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_p3SuQgD7EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_p3SuQwD7EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_p3SuRAD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p3SuRQD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p3SuRgD7EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p3SuRwD7EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_p3SuSAD7EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_p3SuSQD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p3SuSgD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p3SuSwD7EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p3SuTAD7EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_np8g0K3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_np8g0a3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_np8g0q3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Service"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p3RgIQD7EeO_SKgrbXd_6g" x="1324" y="-119" height="419"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sTN-IAD7EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sTOlMAD7EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sTOlMQD7EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sTPMQAD7EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sTPMQQD7EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sTPMQgD7EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sTPMQwD7EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sTPMRAD7EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sTPMRQD7EeO_SKgrbXd_6g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_tBsNsAD7EeO_SKgrbXd_6g" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="SoaMLProfile.profile.uml#SoaML-Port-connectorRequired"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tBsNsQD7EeO_SKgrbXd_6g" x="34" y="29"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sTPMRgD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sTPMRwD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sTPMSAD7EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sTPMSQD7EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sTPMSgD7EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sTPMSwD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sTPMTAD7EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sTPMTQD7EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sTPMTgD7EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nqFqwK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nqFqwa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nqFqwq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Port"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sTN-IQD7EeO_SKgrbXd_6g" x="1324" y="-248"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f1wicAD8EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f1xJgAD8EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f1xJgQD8EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f1xJggD8EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f1xwkAD8EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f1xwkQD8EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f1xwkgD8EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f1xwkwD8EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f1xwlAD8EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f1xwlQD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f1xwlgD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f1xwlwD8EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1xwmAD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f1xwmQD8EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f1xwmgD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f1xwmwD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f1xwnAD8EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1xwnQD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nqRQ8K3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nqRQ8a3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nqRQ8q3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-ServiceChannel"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1wicQD8EeO_SKgrbXd_6g" x="2433" y="-349" height="694"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kODYYAD8EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kOEmgAD8EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kOEmgQD8EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kOFNkAD8EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kOFNkQD8EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kOFNkgD8EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kOFNkwD8EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kOFNlAD8EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kOFNlQD8EeO_SKgrbXd_6g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_k1-7EAD8EeO_SKgrbXd_6g" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="SoaMLProfile.profile.uml#SoaML-Property-isID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k1-7EQD8EeO_SKgrbXd_6g" x="72" y="31"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kOFNlgD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kOFNlwD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kOFNmAD8EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kOFNmQD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kOFNmgD8EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kOFNmwD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kOFNnAD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kOFNnQD8EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kOFNngD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nqZMwK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nqZMwa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nqZMwq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kODYYQD8EeO_SKgrbXd_6g" x="1320" y="-389"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2JSD4KVhEeSXLM3PPnJI_A" type="1014">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2JTSAKVhEeSXLM3PPnJI_A" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2JTSAaVhEeSXLM3PPnJI_A" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_2JOZgKVhEeSXLM3PPnJI_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2JSD4aVhEeSXLM3PPnJI_A" x="327" y="537"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_p8IHEKX8EeSyVbgMGJ_UVQ" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7IMOELadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7IMOEbadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7IM1ILadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7IM1IbadEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7IM1IradEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7INcMLadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_p8IuIKX8EeSyVbgMGJ_UVQ" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_p8JVMKX8EeSyVbgMGJ_UVQ" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_p8D1oKX8EeSyVbgMGJ_UVQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p8IHEaX8EeSyVbgMGJ_UVQ" x="2594" y="-261"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IKkmMKX-EeSyVbgMGJ_UVQ" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0snRwLadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0snRwbadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0sn40LadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0sn40badEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0sof4LadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0sof4badEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IKlNQKX-EeSyVbgMGJ_UVQ" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IKlNQaX-EeSyVbgMGJ_UVQ" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_IKftsKX-EeSyVbgMGJ_UVQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IKkmMaX-EeSyVbgMGJ_UVQ" x="1447" y="-79"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pZpEEKYHEeSyVbgMGJ_UVQ" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y03tALadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y04UELadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y047ILadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y047IbadEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y05iMLadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y05iMbadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pZqSMKYHEeSyVbgMGJ_UVQ" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pZqSMaYHEeSyVbgMGJ_UVQ" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_pZkyoKYHEeSyVbgMGJ_UVQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pZpEEaYHEeSyVbgMGJ_UVQ" x="1461" y="379"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QEPiQKYsEeS49ZHKZ2knEA" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5Jys4LaLEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Jys4baLEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5JzT8LaLEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5JzT8baLEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5JzT8raLEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5JzT87aLEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QEQwYKYsEeS49ZHKZ2knEA" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QEQwYaYsEeS49ZHKZ2knEA" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_QD7ZMKYsEeS49ZHKZ2knEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QEPiQaYsEeS49ZHKZ2knEA" x="2594" y="-158"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QYRBwKY9EeSpr8ht2uoOkw" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5MvOALadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Mv1ELadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Mv1EbadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Mv1EradEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MwcILadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5MwcIbadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QYUFEKY9EeSpr8ht2uoOkw" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QYUsIKY9EeSpr8ht2uoOkw" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_QWsUcKY9EeSpr8ht2uoOkw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QYRBwaY9EeSpr8ht2uoOkw" x="2599" y="-9"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tamk8KcAEeSrk7bGRySKyg" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tapoQKcAEeSrk7bGRySKyg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_taqPUKcAEeSrk7bGRySKyg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_taq2YKcAEeSrk7bGRySKyg" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_taq2YacAEeSrk7bGRySKyg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_taq2YqcAEeSrk7bGRySKyg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tardcKcAEeSrk7bGRySKyg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tanMAKcAEeSrk7bGRySKyg" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tanzEKcAEeSrk7bGRySKyg" x="186" y="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sNw3AKcDEeSBFrJi24CP7w" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sN1IcKcDEeSBFrJi24CP7w" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN1vgKcDEeSBFrJi24CP7w" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN1vgacDEeSBFrJi24CP7w" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN2WkKcDEeSBFrJi24CP7w" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN2WkacDEeSBFrJi24CP7w" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN2WkqcDEeSBFrJi24CP7w" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sNyFIKcDEeSBFrJi24CP7w" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sNysMKcDEeSBFrJi24CP7w" x="274" y="-313"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sN3ksKcDEeSBFrJi24CP7w" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sN6A8KcDEeSBFrJi24CP7w" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN6oAKcDEeSBFrJi24CP7w" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN6oAacDEeSBFrJi24CP7w" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN7PEKcDEeSBFrJi24CP7w" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN72IKcDEeSBFrJi24CP7w" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sN72IacDEeSBFrJi24CP7w" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sN4LwKcDEeSBFrJi24CP7w" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sN4y0KcDEeSBFrJi24CP7w" x="123" y="-311"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xlS-UKexEeScGqpAk9QH7A" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x9NFMLadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x9NsQLadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x9OTULadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x9OTUbadEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x9O6YLadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x9O6YbadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xlTlYKexEeScGqpAk9QH7A" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xlTlYaexEeScGqpAk9QH7A" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_xkHSkKexEeScGqpAk9QH7A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xlS-UaexEeScGqpAk9QH7A" x="1461" y="532"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ADXbUKe7EeSS1b7ZnN9lfQ" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zoNOcLadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zoN1gLadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zoOckLadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zoOckbadEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zoPDoLadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zoPDobadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ADZQgKe7EeSS1b7ZnN9lfQ" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ADZQgae7EeSS1b7ZnN9lfQ" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_AC_A0Ke7EeSS1b7ZnN9lfQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADXbUae7EeSS1b7ZnN9lfQ" x="1448" y="102"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T-0X8KfNEeST-v5ZDF0kWg" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vgi1gLadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vgjckLadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vgjckbadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vgjckradEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vgjck7adEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vgkDoLadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T-1mEKfNEeST-v5ZDF0kWg" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T-2NIKfNEeST-v5ZDF0kWg" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_zQitcKVnEeSXLM3PPnJI_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T-0X8afNEeST-v5ZDF0kWg" x="329" y="201"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VLipwKfNEeST-v5ZDF0kWg" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wmqwELadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wmrXILadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wmrXIbadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wmrXIradEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wmr-MLadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wmr-MbadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VLj34KfNEeST-v5ZDF0kWg" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VLke8KfNEeST-v5ZDF0kWg" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_Ngm2AKVqEeSXLM3PPnJI_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VLipwafNEeST-v5ZDF0kWg" x="325" y="319"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mwp_4Kr6EeSzWoL50MoSpQ" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uFpk0LadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uFpk0badEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uFpk0radEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uFpk07adEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uFpk1LadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uFqL4LadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mwqm8Kr6EeSzWoL50MoSpQ" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mwqm8ar6EeSzWoL50MoSpQ" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_mwXE8Kr6EeSzWoL50MoSpQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mwp_4ar6EeSzWoL50MoSpQ" x="369" y="-189"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r3QDsK0SEeSlTMA1djG_jg" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3PpPMLadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Pp2QLadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Pp2QbadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PqdULadEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PqdUbadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3PqdUradEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_r3QqwK0SEeSlTMA1djG_jg" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_r3Qqwa0SEeSlTMA1djG_jg" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_r3NAYK0SEeSlTMA1djG_jg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r3QDsa0SEeSlTMA1djG_jg" x="1633" y="-229"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_WvIgsADyEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_2qfUcL6EEeSvUdl1XXO70w" name="css_stylesheets" eObjectListValue="_2qf7gL6EEeSvUdl1XXO70w"/>
+ <element xmi:type="uml:Profile" href="SoaMLProfile.profile.uml#SoaML"/>
+ <edges xmi:type="notation:Connector" xmi:id="_2gWgEKVhEeSXLM3PPnJI_A" type="8500" source="_2JSD4KVhEeSXLM3PPnJI_A" target="_axA9kAD5EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2gWgEaVhEeSXLM3PPnJI_A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2gWgEqVhEeSXLM3PPnJI_A" points="[0, 0, 100, 288]$[-84, -265, 16, 23]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2gdNwKVhEeSXLM3PPnJI_A" id="(0.0,0.31666666666666665)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2gd00KVhEeSXLM3PPnJI_A" id="(1.0,0.5562913907284768)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_zgcxsKVnEeSXLM3PPnJI_A" type="8500" target="_bje8UAD5EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_zgcxsaVnEeSXLM3PPnJI_A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zgcxsqVnEeSXLM3PPnJI_A" points="[0, 1, 55, 5]$[-48, 1, 7, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zgi4UKVnEeSXLM3PPnJI_A" id="(0.007827788649706457,0.30434782608695654)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XKArIKVoEeSXLM3PPnJI_A" id="(1.0,0.13921113689095127)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_N8gH0KVqEeSXLM3PPnJI_A" type="8500" target="_bje8UAD5EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_N8gH0aVqEeSXLM3PPnJI_A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_N8gH0qVqEeSXLM3PPnJI_A" points="[0, 0, 51, -77]$[-51, 77, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_N8m1gKVqEeSXLM3PPnJI_A" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PMSUsKVqEeSXLM3PPnJI_A" id="(0.91,0.5475638051044084)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qJ7SgKX8EeSyVbgMGJ_UVQ" type="8500" source="_p8IHEKX8EeSyVbgMGJ_UVQ" target="_f1wicAD8EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_qJ7SgaX8EeSyVbgMGJ_UVQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qJ7SgqX8EeSyVbgMGJ_UVQ" points="[0, 0, 48, 22]$[-48, -22, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qKCAMKX8EeSyVbgMGJ_UVQ" id="(0.0,0.18055555555555555)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HriWQKX9EeSyVbgMGJ_UVQ" id="(0.96,0.16501650165016502)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Ic99wKX-EeSyVbgMGJ_UVQ" type="8500" source="_IKkmMKX-EeSyVbgMGJ_UVQ" target="_p3RgIAD7EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Ic99waX-EeSyVbgMGJ_UVQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ic99wqX-EeSyVbgMGJ_UVQ" points="[0, 0, 39, -86]$[-39, 86, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IdEEYKX-EeSyVbgMGJ_UVQ" id="(0.0,0.2549019607843137)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I5qg0KX-EeSyVbgMGJ_UVQ" id="(1.0,0.1575178997613365)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_p5easKYHEeSyVbgMGJ_UVQ" type="8500" source="_pZpEEKYHEeSyVbgMGJ_UVQ" target="_nQiucAD7EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_p5easaYHEeSyVbgMGJ_UVQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_p5easqYHEeSyVbgMGJ_UVQ" points="[0, 19, 169, 14]$[-119, -27, 50, -32]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p5khUKYHEeSyVbgMGJ_UVQ" id="(0.0,0.4166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AlLEoKYKEeSyVbgMGJ_UVQ" id="(1.0,0.27586206896551724)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QjBwAKYsEeS49ZHKZ2knEA" type="8500" source="_QEPiQKYsEeS49ZHKZ2knEA" target="_f1wicAD8EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_QjBwAaYsEeS49ZHKZ2knEA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QjBwAqYsEeS49ZHKZ2knEA" points="[0, 0, 87, -61]$[-87, 61, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QjH2oKYsEeS49ZHKZ2knEA" id="(0.0,0.21212121212121213)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Rm3yoKYsEeS49ZHKZ2knEA" id="(1.0,0.31556195965417866)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Qs7DIKY9EeSpr8ht2uoOkw" type="8500" source="_QYRBwKY9EeSpr8ht2uoOkw" target="_f1wicAD8EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Qs7DIaY9EeSpr8ht2uoOkw"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Qs7DIqY9EeSpr8ht2uoOkw" points="[0, 0, 157, 30]$[-107, 40, 50, 70]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QtDmAKY9EeSpr8ht2uoOkw" id="(0.0,0.2446236559139785)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RDJx0KY9EeSpr8ht2uoOkw" id="(1.0,0.6210374639769453)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uRa4MKcAEeSrk7bGRySKyg" type="1013" source="_bje8UAD5EeO_SKgrbXd_6g" target="_tamk8KcAEeSrk7bGRySKyg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_uRa4MacAEeSrk7bGRySKyg"/>
+ <element xmi:type="uml:Extension" href="SoaMLProfile.profile.uml#_uRRuQKcAEeSrk7bGRySKyg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uRa4MqcAEeSrk7bGRySKyg" points="[-50, 13, 110, -38]$[-156, 26, 4, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MY2U0Ke8EeSS1b7ZnN9lfQ" id="(0.5,0.012987012987012988)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MY274Ke8EeSS1b7ZnN9lfQ" id="(0.56,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_t8d0gKcDEeSBFrJi24CP7w" type="1013" source="_obdpcAD7EeO_SKgrbXd_6g" target="_sNw3AKcDEeSBFrJi24CP7w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_t8d0gacDEeSBFrJi24CP7w"/>
+ <element xmi:type="uml:Extension" href="SoaMLProfile.profile.uml#_t8SOUKcDEeSBFrJi24CP7w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t8d0gqcDEeSBFrJi24CP7w" points="[22, -50, -40, 89]$[62, -151, 0, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oG4L8ar6EeSzWoL50MoSpQ" id="(0.55,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t8m-cKcDEeSBFrJi24CP7w" id="(0.32,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ufzLEKcDEeSBFrJi24CP7w" type="1013" source="_obdpcAD7EeO_SKgrbXd_6g" target="_sN3ksKcDEeSBFrJi24CP7w">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ufzLEacDEeSBFrJi24CP7w"/>
+ <element xmi:type="uml:Extension" href="SoaMLProfile.profile.uml#_ufrPQKcDEeSBFrJi24CP7w"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ufzLEqcDEeSBFrJi24CP7w" points="[-33, -50, 57, 75]$[-40, -121, 50, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xLi_oKcDEeSBFrJi24CP7w" id="(0.51,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xLi_oacDEeSBFrJi24CP7w" id="(0.91,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_yjfE4KexEeScGqpAk9QH7A" type="8500" source="_xlS-UKexEeScGqpAk9QH7A" target="_nQiucAD7EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_yjfE4aexEeScGqpAk9QH7A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yjfE4qexEeScGqpAk9QH7A" points="[0, 0, 111, 13]$[-105, -13, 6, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yjoO0KexEeScGqpAk9QH7A" id="(0.0029850746268656717,0.23931623931623933)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zNBKEKexEeScGqpAk9QH7A" id="(0.97,0.6982758620689655)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AeClIKe7EeSS1b7ZnN9lfQ" type="8500" source="_ADXbUKe7EeSS1b7ZnN9lfQ" target="_p3RgIAD7EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_AeClIae7EeSS1b7ZnN9lfQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AeClIqe7EeSS1b7ZnN9lfQ" points="[0, 0, 95, 81]$[-86, 120, 9, 201]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AeJS0Ke7EeSS1b7ZnN9lfQ" id="(0.0,0.018832391713747645)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GFaA0Ke8EeSS1b7ZnN9lfQ" id="(0.98,0.5417661097852029)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_T_cqEKfNEeST-v5ZDF0kWg" type="4014" source="_T-0X8KfNEeST-v5ZDF0kWg" target="_bje8UAD5EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_T_cqEafNEeST-v5ZDF0kWg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T_cqEqfNEeST-v5ZDF0kWg" points="[0, 0, -240, -405]$[190, 321, -50, -84]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ud4SgKfNEeST-v5ZDF0kWg" id="(0.0,0.2717391304347826)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ud5goKfNEeST-v5ZDF0kWg" id="(0.96,0.1471861471861472)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_VL7EQKfNEeST-v5ZDF0kWg" type="4014" source="_VLipwKfNEeST-v5ZDF0kWg" target="_bje8UAD5EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_VL7EQafNEeST-v5ZDF0kWg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VL7EQqfNEeST-v5ZDF0kWg" points="[0, 0, -240, -405]$[190, 321, -50, -84]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V8p9oKfNEeST-v5ZDF0kWg" id="(0.008517887563884156,0.2413793103448276)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V8qksKfNEeST-v5ZDF0kWg" id="(0.93,0.6666666666666666)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XplDYKfWEeSJqPDxTBeNYw" type="4002" source="_axA9kAD5EeO_SKgrbXd_6g" target="_bje8UAD5EeO_SKgrbXd_6g">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XpotwKfWEeSJqPDxTBeNYw" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XppU0KfWEeSJqPDxTBeNYw" y="-34"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XplDYafWEeSJqPDxTBeNYw"/>
+ <element xmi:type="uml:Generalization" href="SoaMLProfile.profile.uml#_XoWUUKfWEeSJqPDxTBeNYw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XplDYqfWEeSJqPDxTBeNYw" points="[-7, 29, 0, -77]$[-6, 93, 1, -13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XqJEEKfWEeSJqPDxTBeNYw" id="(0.67,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XqJrIKfWEeSJqPDxTBeNYw" id="(0.66,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nGwLsKr6EeSzWoL50MoSpQ" type="8500" source="_mwp_4Kr6EeSzWoL50MoSpQ" target="_obdpcAD7EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nGwLsar6EeSzWoL50MoSpQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nGwLsqr6EeSzWoL50MoSpQ" points="[0, 0, 384, -180]$[-380, 130, 4, -50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nG0dIKr6EeSzWoL50MoSpQ" id="(0.0,0.19135802469135801)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oG4L8Kr6EeSzWoL50MoSpQ" id="(1.0,0.48)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_sWu1AK0SEeSlTMA1djG_jg" type="8500" source="_r3QDsK0SEeSlTMA1djG_jg" target="_sTN-IAD7EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_sWu1Aa0SEeSlTMA1djG_jg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sWu1Aq0SEeSlTMA1djG_jg" points="[0, 0, 115, 0]$[-81, -12, 34, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sWzGcK0SEeSlTMA1djG_jg" id="(0.0,0.09782608695652174)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sWztgK0SEeSlTMA1djG_jg" id="(1.0,0.2545454545454545)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_1ezHcAD8EeO_SKgrbXd_6g" type="PapyrusUMLProfileDiagram" name="DataDiagram" measurementUnit="Pixel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fvSh8K3uEeOyHqF9NZpViQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fvSh8a3uEeOyHqF9NZpViQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fvTJAK3uEeOyHqF9NZpViQ" key="StereotypeList" value="Ecore::EPackage"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fvTJAa3uEeOyHqF9NZpViQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fvTJAq3uEeOyHqF9NZpViQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fvTJA63uEeOyHqF9NZpViQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_3jCQEAD8EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3jC3IAD8EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3jC3IQD8EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3jC3IgD8EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3jC3IwD8EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3jC3JAD8EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3jDeMAD8EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3jDeMQD8EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3jDeMgD8EeO_SKgrbXd_6g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_50YnoAD8EeO_SKgrbXd_6g" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="SoaMLProfile.profile.uml#SoaML-MessageType-encoding"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_50YnoQD8EeO_SKgrbXd_6g" x="26" y="47"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3jDeMwD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3jDeNAD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3jDeNQD8EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3jDeNgD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3jDeNwD8EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3jDeOAD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3jDeOQD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3jDeOgD8EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3jDeOwD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nsuvEK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nsuvEa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nsuvEq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-MessageType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3jCQEQD8EeO_SKgrbXd_6g" x="17" y="31" height="420"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9zUiYAD8EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9zVJcAD8EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9zVJcQD8EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9zVJcgD8EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9zVJcwD8EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9zVwgAD8EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9zVwgQD8EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zVwggD8EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9zVwgwD8EeO_SKgrbXd_6g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_-XltEAD8EeO_SKgrbXd_6g" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="SoaMLProfile.profile.uml#SoaML-Attachment-encoding"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-XltEQD8EeO_SKgrbXd_6g" x="20" y="31"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-xroEAD8EeO_SKgrbXd_6g" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="SoaMLProfile.profile.uml#SoaML-Attachment-mimetype"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-xroEQD8EeO_SKgrbXd_6g" x="30" y="49"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9zVwhAD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9zVwhQD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9zVwhgD8EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zVwhwD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9zVwiAD8EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9zVwiQD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9zVwigD8EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9zVwiwD8EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zVwjAD8EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ns_00K3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ns_00a3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ns_00q3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Attachment"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9zUiYQD8EeO_SKgrbXd_6g" x="1510" y="23"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yq6fkKVhEeSXLM3PPnJI_A" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-tF4MLadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-tF4MbadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-tGfQLadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-tGfQbadEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-tGfQradEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-tHGULadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yq7GoKVhEeSXLM3PPnJI_A" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yq7GoaVhEeSXLM3PPnJI_A" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_yq21MKVhEeSXLM3PPnJI_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yq6fkaVhEeSXLM3PPnJI_A" x="299" y="42"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UVqJoKVnEeSXLM3PPnJI_A" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9xRwMLadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9xSXQLadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9xSXQbadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9xSXQradEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9xS-ULadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9xS-UbadEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UVrXwKVnEeSXLM3PPnJI_A" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UVrXwaVnEeSXLM3PPnJI_A" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_UVl4MKVnEeSXLM3PPnJI_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UVqJoaVnEeSXLM3PPnJI_A" x="304" y="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ObEAMKV3EeSyVbgMGJ_UVQ" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_84mbwLadEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_84mbwbadEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_84nC0LadEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_84nC0badEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_84np4LadEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_84np4badEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ObQNcKV3EeSyVbgMGJ_UVQ" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ObQ0gKV3EeSyVbgMGJ_UVQ" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_OTmGQKV3EeSyVbgMGJ_UVQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ObEAMaV3EeSyVbgMGJ_UVQ" x="301" y="319"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vmqzkKrUEeSGStNqgFd0KA" type="1031">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vmsBsKrUEeSGStNqgFd0KA" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vmqzkarUEeSGStNqgFd0KA" x="52" y="-91"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_1ezHcQD8EeO_SKgrbXd_6g"/>
+ <element xmi:type="uml:Profile" href="SoaMLProfile.profile.uml#SoaML"/>
+ <edges xmi:type="notation:Connector" xmi:id="_zLMiIKVhEeSXLM3PPnJI_A" type="8500" source="_yq6fkKVhEeSXLM3PPnJI_A" target="_3jCQEAD8EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_zLNJMKVhEeSXLM3PPnJI_A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zLNJMaVhEeSXLM3PPnJI_A" points="[-43, 19, 85, -37]$[-128, 56, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zLVsEKVhEeSXLM3PPnJI_A" id="(0.0,0.3055555555555556)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oMWcsKVmEeSXLM3PPnJI_A" id="(0.9685863874345549,0.09761904761904762)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UnA_YKVnEeSXLM3PPnJI_A" type="8500" source="_UVqJoKVnEeSXLM3PPnJI_A" target="_3jCQEAD8EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_UnA_YaVnEeSXLM3PPnJI_A"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UnA_YqVnEeSXLM3PPnJI_A" points="[-9, -7, 97, 65]$[-95, -65, 11, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UnHtEKVnEeSXLM3PPnJI_A" id="(0.0,0.24479166666666666)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VMr4QKVnEeSXLM3PPnJI_A" id="(0.9581151832460733,0.31666666666666665)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_PMdn8KV3EeSyVbgMGJ_UVQ" type="8500" source="_ObEAMKV3EeSyVbgMGJ_UVQ" target="_3jCQEAD8EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_PMePAKV3EeSyVbgMGJ_UVQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PMePAaV3EeSyVbgMGJ_UVQ" points="[0, 0, 19, 298]$[1, -287, 20, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PMoAAKV3EeSyVbgMGJ_UVQ" id="(0.0,0.1419753086419753)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PMonEKV3EeSyVbgMGJ_UVQ" id="(0.9874213836477987,0.7309523809523809)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vm75UKrUEeSGStNqgFd0KA" type="1013" source="_3jCQEAD8EeO_SKgrbXd_6g" target="_vmqzkKrUEeSGStNqgFd0KA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gxAdkLtAEeS1hc9noFXniA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gxBEoLtAEeS1hc9noFXniA" key="routing" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vm75UarUEeSGStNqgFd0KA"/>
+ <element xmi:type="uml:Extension" href="SoaMLProfile.profile.uml#SoaML-Class_MessageType"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vm75UqrUEeSGStNqgFd0KA" points="[0, 0, 22, 186]$[-22, -186, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zDVHsKrUEeSGStNqgFd0KA" id="(0.43455497382198954,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zDVuwKrUEeSGStNqgFd0KA" id="(0.54,0.86)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_LT_SEAD9EeO_SKgrbXd_6g" type="PapyrusUMLProfileDiagram" name="ServiceContractDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_R9RTMAD9EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R9ShUAD9EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R9ShUQD9EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R9ShUgD9EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R9TIYAD9EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R9TIYQD9EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R9TIYgD9EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R9TIYwD9EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_R9TIZAD9EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_R9TIZQD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_R9TIZgD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_R9TIZwD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R9TIaAD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_R9TvcAD9EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_R9TvcQD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_R9TvcgD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_R9TvcwD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R9TvdAD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nv5X0K3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nv5X0a3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nv5X0q3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-ServicesArchitecture"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R9RTMQD9EeO_SKgrbXd_6g" x="215" y="-169" height="773"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ScQVQAD9EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ScQ8UAD9EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ScQ8UQD9EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ScRjYAD9EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ScRjYQD9EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ScRjYgD9EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ScRjYwD9EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ScRjZAD9EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ScRjZQD9EeO_SKgrbXd_6g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_leoaAAD9EeO_SKgrbXd_6g" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="SoaMLProfile.profile.uml#SoaML-Collaboration-isStrict"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_leoaAQD9EeO_SKgrbXd_6g" x="40" y="15"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ScRjZgD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ScRjZwD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ScRjaAD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ScRjaQD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ScRjagD9EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ScRjawD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ScRjbAD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ScRjbQD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ScRjbgD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nv9CMK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nv9CMa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nv9CMq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Collaboration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ScQVQQD9EeO_SKgrbXd_6g" x="279" y="-311" width="231"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UF-FEAD9EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UF_TMAD9EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UF_TMQD9EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UF_6QAD9EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UF_6QQD9EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UF_6QgD9EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UF_6QwD9EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UF_6RAD9EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UF_6RQD9EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UF_6RgD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UF_6RwD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UF_6SAD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UF_6SQD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UGAhUAD9EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UGAhUQD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UGAhUgD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UGAhUwD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UGAhVAD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nv_ecK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nv_eca3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nv_ecq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-ServiceContract"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UF-FEQD9EeO_SKgrbXd_6g" x="385" y="-172" width="162" height="767"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t5tv8AD9EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t5uXAAD9EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t5u-EAD9EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t5u-EQD9EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t5u-EgD9EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t5u-EwD9EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t5u-FAD9EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t5u-FQD9EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t5u-FgD9EeO_SKgrbXd_6g" type="1071">
+ <children xmi:type="notation:Shape" xmi:id="_ucrTEAD9EeO_SKgrbXd_6g" type="3002" fontName="Segoe UI" lineColor="0">
+ <element xmi:type="uml:Property" href="SoaMLProfile.profile.uml#SoaML-CollaborationUse-isStrict"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ucrTEQD9EeO_SKgrbXd_6g" x="13" y="22"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t5u-FwD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t5u-GAD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t5u-GQD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t5u-GgD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t5vlIAD9EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t5vlIQD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t5vlIgD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t5vlIwD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t5vlJAD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nwGzMK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nwGzMa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nwGzMq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-CollaborationUse"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t5tv8QD9EeO_SKgrbXd_6g" x="1790" y="-196" height="282"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ygdRkAD9EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ygd4oAD9EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ygd4oQD9EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ygd4ogD9EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ygd4owD9EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ygefsAD9EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ygefsQD9EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ygefsgD9EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ygefswD9EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ygeftAD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ygeftQD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ygeftgD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ygeftwD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ygefuAD9EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ygefuQD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ygefugD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ygefuwD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ygefvAD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nwOvAK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nwOvAa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nwOvAq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Consumer"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ygdRkQD9EeO_SKgrbXd_6g" x="222" y="784"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2uszoAD9EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2utasAD9EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2utasQD9EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2utasgD9EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2utaswD9EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2utatAD9EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2utatQD9EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2utatgD9EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2utatwD9EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2utauAD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2uuBwAD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2uuBwQD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2uuBwgD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2uuBwwD9EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2uuBxAD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2uuBxQD9EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2uuBxgD9EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2uuBxwD9EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nwaVMK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nwaVMa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nwaVMq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Provider"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2uszoQD9EeO_SKgrbXd_6g" x="354" y="784"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Av7v4KYaEeSseIkCe_35AA" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A6QTULaeEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A6Q6YLaeEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A6RhcLaeEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A6RhcbaeEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A6RhcraeEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A6SIgLaeEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Av8-AKYaEeSseIkCe_35AA" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Av8-AaYaEeSseIkCe_35AA" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_Avo08KYaEeSseIkCe_35AA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Av7v4aYaEeSseIkCe_35AA" x="-564" y="-170" width="732"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zzvEgKbwEeSZVKXq5L0J5A" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zzxgwKbwEeSZVKXq5L0J5A" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zzxgwabwEeSZVKXq5L0J5A" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zzxgwqbwEeSZVKXq5L0J5A" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zzyH0KbwEeSZVKXq5L0J5A" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zzyH0abwEeSZVKXq5L0J5A" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zzyH0qbwEeSZVKXq5L0J5A" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zzvrkKbwEeSZVKXq5L0J5A" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zzwSoKbwEeSZVKXq5L0J5A" x="222" y="661"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zzyu4KbwEeSZVKXq5L0J5A" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zzz9AKbwEeSZVKXq5L0J5A" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zzz9AabwEeSZVKXq5L0J5A" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zzz9AqbwEeSZVKXq5L0J5A" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zz0kEKbwEeSZVKXq5L0J5A" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zz0kEabwEeSZVKXq5L0J5A" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zz0kEqbwEeSZVKXq5L0J5A" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zzzV8KbwEeSZVKXq5L0J5A" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zzzV8abwEeSZVKXq5L0J5A" x="354" y="662"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0msPQKuBEeS67dn1jOrjhg" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CEM98LaeEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CENlALaeEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CENlAbaeEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CEOMELaeEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CEOMEbaeEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CEOMEraeEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0murgKuBEeS67dn1jOrjhg" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0mvSkKuBEeS67dn1jOrjhg" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_0k-YAKuBEeS67dn1jOrjhg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0msPQauBEeS67dn1jOrjhg" x="-560" y="433" width="728"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8LoDYK0NEeSlTMA1djG_jg" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EI1IILaeEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EI1IIbaeEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EI1vMLaeEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EI1vMbaeEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EI1vMraeEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EI2WQLaeEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LpRgK0NEeSlTMA1djG_jg" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LpRga0NEeSlTMA1djG_jg" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_8JzecK0NEeSlTMA1djG_jg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LoDYa0NEeSlTMA1djG_jg" x="600" y="-171"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1lNdIK0aEeSlTMA1djG_jg" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FjqHYLaeEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FjqucLaeEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FjqucbaeEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FjrVgLaeEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FjrVgbaeEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FjrVgraeEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1lOEMK0aEeSlTMA1djG_jg" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1lOEMa0aEeSlTMA1djG_jg" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_1lKZ0K0aEeSlTMA1djG_jg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1lNdIa0aEeSlTMA1djG_jg" x="1995" y="-203" height="297"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hxpFcLHPEeS8wqq-i9d2rg" type="1014">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DSadgLaeEeSBk8ZDbVpaMQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DSbEkLaeEeSBk8ZDbVpaMQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DSbEkbaeEeSBk8ZDbVpaMQ" key="StereotypeList" value="PapyrusDSMLValidationRule::ValidationRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DSbroLaeEeSBk8ZDbVpaMQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DSbrobaeEeSBk8ZDbVpaMQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DSbroraeEeSBk8ZDbVpaMQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hxpsgLHPEeS8wqq-i9d2rg" type="1015"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hxpsgbHPEeS8wqq-i9d2rg" type="5063"/>
+ <element xmi:type="uml:Constraint" href="SoaMLProfile.profile.uml#_hxXYoLHPEeS8wqq-i9d2rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hxpFcbHPEeS8wqq-i9d2rg" x="604" y="64"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_LT_SEQD9EeO_SKgrbXd_6g"/>
+ <element xmi:type="uml:Profile" href="SoaMLProfile.profile.uml#SoaML"/>
+ <edges xmi:type="notation:Connector" xmi:id="_SciCEAD9EeO_SKgrbXd_6g" type="4002" source="_R9RTMAD9EeO_SKgrbXd_6g" target="_ScQVQAD9EeO_SKgrbXd_6g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ScipIAD9EeO_SKgrbXd_6g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ScipIQD9EeO_SKgrbXd_6g" x="-2" y="-27"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SciCEQD9EeO_SKgrbXd_6g" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="SoaMLProfile.profile.uml#SoaML-ServicesArchitecture-generalization"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SciCEgD9EeO_SKgrbXd_6g" points="[0, 0, -61, -60]$[61, 60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RkCXsDC8EeOCi8J5eD1UtQ" id="(0.6944444444444444,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RkC-wDC8EeOCi8J5eD1UtQ" id="(0.0763888888888889,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UnHqUAD9EeO_SKgrbXd_6g" type="4002" source="_UF-FEAD9EeO_SKgrbXd_6g" target="_ScQVQAD9EeO_SKgrbXd_6g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_UnIRYAD9EeO_SKgrbXd_6g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UnIRYQD9EeO_SKgrbXd_6g" x="-4" y="26"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UnHqUQD9EeO_SKgrbXd_6g" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="SoaMLProfile.profile.uml#SoaML-ServiceContract-generalization"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UnHqUgD9EeO_SKgrbXd_6g" points="[0, 0, 61, -60]$[-61, 60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RkKTgDC8EeOCi8J5eD1UtQ" id="(0.49038461538461536,0.00522875816993464)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RkK6kDC8EeOCi8J5eD1UtQ" id="(0.8541666666666666,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_A8AdAKYaEeSseIkCe_35AA" type="8500" source="_Av7v4KYaEeSseIkCe_35AA" target="_R9RTMAD9EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_A8AdAaYaEeSseIkCe_35AA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A8AdAqYaEeSseIkCe_35AA" points="[0, 0, -75, -28]$[75, 28, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A8GjoKYaEeSseIkCe_35AA" id="(1.0,0.12837837837837837)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RrQFUK0cEeSlTMA1djG_jg" id="(0.0,0.11089866156787763)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1j_hMKbwEeSZVKXq5L0J5A" type="1013" source="_ygdRkAD9EeO_SKgrbXd_6g" target="_zzyu4KbwEeSZVKXq5L0J5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_1j_hMabwEeSZVKXq5L0J5A"/>
+ <element xmi:type="uml:Extension" href="SoaMLProfile.profile.uml#_1j2XQKbwEeSZVKXq5L0J5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1j_hMqbwEeSZVKXq5L0J5A" points="[23, -11, -257, 118]$[274, -104, -6, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1kG18KbwEeSZVKXq5L0J5A" id="(0.86,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A977EKeYEeS-eMdtOM54rg" id="(0.34,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2SZfUKbwEeSZVKXq5L0J5A" type="1013" source="_2uszoAD9EeO_SKgrbXd_6g" target="_zzvEgKbwEeSZVKXq5L0J5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2SZfUabwEeSZVKXq5L0J5A"/>
+ <element xmi:type="uml:Extension" href="SoaMLProfile.profile.uml#_2SRjgKbwEeSZVKXq5L0J5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2SZfUqbwEeSZVKXq5L0J5A" points="[9, -9, -97, 118]$[156, -122, 50, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2Sg0EKbwEeSZVKXq5L0J5A" id="(0.17,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AsuPQKeYEeS-eMdtOM54rg" id="(0.8,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_22TdoKbwEeSZVKXq5L0J5A" type="1013" source="_ygdRkAD9EeO_SKgrbXd_6g" target="_zzvEgKbwEeSZVKXq5L0J5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_22TdoabwEeSZVKXq5L0J5A"/>
+ <element xmi:type="uml:Extension" href="SoaMLProfile.profile.uml#_22PMMabwEeSZVKXq5L0J5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_22TdoqbwEeSZVKXq5L0J5A" points="[32, -10, -257, 86]$[339, -88, 50, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_22Y9MKbwEeSZVKXq5L0J5A" id="(0.26,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AsuPQaeYEeS-eMdtOM54rg" id="(0.26,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Zm_AKbwEeSZVKXq5L0J5A" type="1013" source="_2uszoAD9EeO_SKgrbXd_6g" target="_zzyu4KbwEeSZVKXq5L0J5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Zm_AabwEeSZVKXq5L0J5A"/>
+ <element xmi:type="uml:Extension" href="SoaMLProfile.profile.uml#_3ZhfcKbwEeSZVKXq5L0J5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Zm_AqbwEeSZVKXq5L0J5A" points="[50, -24, -203, 94]$[244, -106, -9, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A96s8KeYEeS-eMdtOM54rg" id="(0.9,0.06)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3ZtssKbwEeSZVKXq5L0J5A" id="(0.95,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1Kya0KuBEeS67dn1jOrjhg" type="8500" source="_0msPQKuBEeS67dn1jOrjhg" target="_R9RTMAD9EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_1Kya0auBEeS67dn1jOrjhg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1Kya0quBEeS67dn1jOrjhg" points="[0, 0, 180, 156]$[-182, -130, -2, 26]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1K69sKuBEeS67dn1jOrjhg" id="(1.0,0.1686046511627907)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1K7kwKuBEeS67dn1jOrjhg" id="(0.022556390977443608,0.8111254851228978)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_81mNcK0NEeSlTMA1djG_jg" type="8500" source="_8LoDYK0NEeSlTMA1djG_jg" target="_UF-FEAD9EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_81mNca0NEeSlTMA1djG_jg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_81mNcq0NEeSlTMA1djG_jg" points="[0, 0, 120, -62]$[-124, -82, -4, -144]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_81s7IK0NEeSlTMA1djG_jg" id="(0.0,0.21982758620689655)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2_drEK0OEeSlTMA1djG_jg" id="(1.0,0.06779661016949153)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2Tth4K0aEeSlTMA1djG_jg" type="8500" source="_1lNdIK0aEeSlTMA1djG_jg" target="_t5tv8AD9EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2Tth4a0aEeSlTMA1djG_jg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2Tth4q0aEeSlTMA1djG_jg" points="[0, 0, 143, -5]$[-71, -40, 72, -45]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2TyaYK0aEeSlTMA1djG_jg" id="(0.0,0.21885521885521886)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VNlZEK0bEeSlTMA1djG_jg" id="(1.0,0.1347517730496454)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ik5uYLHPEeS8wqq-i9d2rg" type="8500" source="_hxpFcLHPEeS8wqq-i9d2rg" target="_UF-FEAD9EeO_SKgrbXd_6g">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ik5uYbHPEeS8wqq-i9d2rg"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ik5uYrHPEeS8wqq-i9d2rg" points="[0, 0, 64, 14]$[-56, -221, 8, -207]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ik9_0LHPEeS8wqq-i9d2rg" id="(0.0,0.03389830508474576)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i_gmwLHPEeS8wqq-i9d2rg" id="(1.0,0.3285528031290743)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_FjfdoAD-EeO_SKgrbXd_6g" type="PapyrusUMLProfileDiagram" name="CategorizationDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_JYdkEAD-EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JYeLIAD-EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JYeLIQD-EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JYeLIgD-EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JYeLIwD-EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JYeyMAD-EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JYeyMQD-EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JYeyMgD-EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JYeyMwD-EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JYeyNAD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JYeyNQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JYeyNgD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYeyNwD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JYeyOAD-EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JYeyOQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JYeyOgD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JYeyOwD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYeyPAD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n0MB8K3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n0MB8a3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n0MB8q3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-FreeFormValue"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYdkEQD-EeO_SKgrbXd_6g" x="515" y="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LpxfYAD-EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LpyGcAD-EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LpytgAD-EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LpytgQD-EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LpytggD-EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LpytgwD-EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LpythAD-EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LpythQD-EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LpythgD-EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LpythwD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LpytiAD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LpytiQD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LpytigD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LpzUkAD-EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LpzUkQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LpzUkgD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LpzUkwD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LpzUlAD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n0TWsK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n0TWsa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n0TWsq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Category"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LpxfYQD-EeO_SKgrbXd_6g" x="195" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MQsVcAD-EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MQs8gAD-EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MQs8gQD-EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MQs8ggD-EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MQs8gwD-EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MQs8hAD-EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MQs8hQD-EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MQtjkAD-EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MQtjkQD-EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MQtjkgD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MQtjkwD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MQtjlAD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQtjlQD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MQtjlgD-EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MQtjlwD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MQtjmAD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MQtjmQD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQtjmgD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n0WaAK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n0WaAa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n0WaAq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-NodeDescriptor"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MQsVcQD-EeO_SKgrbXd_6g" x="195" y="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_P0M4cAD-EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P0OGkAD-EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P0OGkQD-EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P0OGkgD-EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P0OGkwD-EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P0OGlAD-EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P0OGlQD-EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P0OtoAD-EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P0OtoQD-EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_P0OtogD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P0OtowD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P0OtpAD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P0OtpQD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P0OtpgD-EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_P0OtpwD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P0OtqAD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P0OtqQD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P0OtqgD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n0ZdUK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n0ZdUa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n0ZdUq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-FreeFormDescriptor"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P0M4cQD-EeO_SKgrbXd_6g" x="30" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qkpd8AD-EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QkqFAAD-EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkqFAQD-EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QkqFAgD-EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkqFAwD-EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QkqsEAD-EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkqsEQD-EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QkqsEgD-EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QkqsEwD-EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QkqsFAD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QkqsFQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QkqsFgD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkqsFwD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QkqsGAD-EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QkqsGQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QkqsGgD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QkqsGwD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkqsHAD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n0duwK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n0duwa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n0duwq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-CategoryValue"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qkpd8QD-EeO_SKgrbXd_6g" x="515" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WsDhEAD-EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WsEIIAD-EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WsEIIQD-EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WsEIIgD-EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WsEIIwD-EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WsEvMAD-EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WsEvMQD-EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WsEvMgD-EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WsEvMwD-EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WsEvNAD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WsEvNQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WsEvNgD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WsEvNwD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WsEvOAD-EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WsEvOQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WsEvOgD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WsEvOwD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WsEvPAD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n0lDgK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n0lDga3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n0lDgq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Catalog"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WsDhEQD-EeO_SKgrbXd_6g" x="355" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y4ik8AD-EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y4jzEAD-EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y4jzEQD-EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y4jzEgD-EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y4jzEwD-EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y4jzFAD-EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y4jzFQD-EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y4jzFgD-EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y4jzFwD-EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y4jzGAD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y4jzGQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y4jzGgD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4jzGwD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y4kaIAD-EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y4kaIQD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y4kaIgD-EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y4kaIwD-EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4kaJAD-EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n0sYQK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n0sYQa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n0sYQq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Categorization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4jMAAD-EeO_SKgrbXd_6g" x="675" y="30"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_FjfdoQD-EeO_SKgrbXd_6g"/>
+ <element xmi:type="uml:Profile" href="SoaMLProfile.profile.uml#SoaML"/>
+ <edges xmi:type="notation:Connector" xmi:id="_MQ80IAD-EeO_SKgrbXd_6g" type="4002" source="_LpxfYAD-EeO_SKgrbXd_6g" target="_MQsVcAD-EeO_SKgrbXd_6g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MQ9bMAD-EeO_SKgrbXd_6g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MQ9bMQD-EeO_SKgrbXd_6g" x="-1" y="-13"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MQ80IQD-EeO_SKgrbXd_6g" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="SoaMLProfile.profile.uml#SoaML-Category-generalization"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MQ80IgD-EeO_SKgrbXd_6g" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YgS_MDC8EeOCi8J5eD1UtQ" id="(0.5,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YgTmQDC8EeOCi8J5eD1UtQ" id="(0.5,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SURogAD-EeO_SKgrbXd_6g" type="4002" source="_Qkpd8AD-EeO_SKgrbXd_6g" target="_JYdkEAD-EeO_SKgrbXd_6g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SUSPkAD-EeO_SKgrbXd_6g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SUS2oAD-EeO_SKgrbXd_6g" x="-4" y="32"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SURogQD-EeO_SKgrbXd_6g" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="SoaMLProfile.profile.uml#SoaML-CategoryValue-generalization"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SURoggD-EeO_SKgrbXd_6g" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YgVbcDC8EeOCi8J5eD1UtQ" id="(0.5,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YgWCgDC8EeOCi8J5eD1UtQ" id="(0.5,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_YLwZQAD-EeO_SKgrbXd_6g" type="4002" source="_WsDhEAD-EeO_SKgrbXd_6g" target="_MQsVcAD-EeO_SKgrbXd_6g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YLxAUAD-EeO_SKgrbXd_6g" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YLxAUQD-EeO_SKgrbXd_6g" x="-5" y="13"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YLwZQQD-EeO_SKgrbXd_6g" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="SoaMLProfile.profile.uml#SoaML-Catalog-generalization"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YLwZQgD-EeO_SKgrbXd_6g" points="[0, 0, 110, -60]$[-110, 60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YgP74DC8EeOCi8J5eD1UtQ" id="(0.25,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YgQi8DC8EeOCi8J5eD1UtQ" id="(0.75,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_dbsMYAD_EeO_SKgrbXd_6g" type="PapyrusUMLProfileDiagram" name="CapabilityDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_nt74QAD_EeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nt9GYAD_EeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nt9GYQD_EeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nt9GYgD_EeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nt9GYwD_EeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nt9GZAD_EeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nt9GZQD_EeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nt9GZgD_EeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nt9tcAD_EeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nt9tcQD_EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nt9tcgD_EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nt9tcwD_EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nt9tdAD_EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nt9tdQD_EeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nt9tdgD_EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nt9tdwD_EeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nt9teAD_EeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nt9teQD_EeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n2-QMK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n2-QMa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n2-QMq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Capability"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nt74QQD_EeO_SKgrbXd_6g" x="30" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CPlyAAEAEeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CPmZEAEAEeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CPmZEQEAEeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CPmZEgEAEeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CPmZEwEAEeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CPmZFAEAEeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CPmZFQEAEeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CPmZFgEAEeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CPmZFwEAEeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CPmZGAEAEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CPmZGQEAEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CPmZGgEAEeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CPmZGwEAEeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CPnAIAEAEeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CPnAIQEAEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CPnAIgEAEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CPnAIwEAEeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CPnAJAEAEeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n3HaIK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n3HaIa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n3HaIq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-Expose"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CPlyAQEAEeO_SKgrbXd_6g" x="190" y="30"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_dbsMYQD_EeO_SKgrbXd_6g"/>
+ <element xmi:type="uml:Profile" href="SoaMLProfile.profile.uml#SoaML"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_lndCAAEBEeO_SKgrbXd_6g" type="PapyrusUMLProfileDiagram" name="BMMDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_t2TSwAEBEeO_SKgrbXd_6g" type="1026" fontName="Segoe UI" gradient="11267050, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t2T50AEBEeO_SKgrbXd_6g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t2T50QEBEeO_SKgrbXd_6g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t2T50gEBEeO_SKgrbXd_6g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t2T50wEBEeO_SKgrbXd_6g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t2Ug4AEBEeO_SKgrbXd_6g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t2Ug4QEBEeO_SKgrbXd_6g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t2Ug4gEBEeO_SKgrbXd_6g" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t2Ug4wEBEeO_SKgrbXd_6g" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t2Ug5AEBEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t2Ug5QEBEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t2Ug5gEBEeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t2Ug5wEBEeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t2Ug6AEBEeO_SKgrbXd_6g" visible="false" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t2Ug6QEBEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t2Ug6gEBEeO_SKgrbXd_6g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t2Ug6wEBEeO_SKgrbXd_6g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t2Ug7AEBEeO_SKgrbXd_6g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n447wK3tEeOyHqF9NZpViQ" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n447wa3tEeOyHqF9NZpViQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n447wq3tEeOyHqF9NZpViQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="SoaMLProfile.profile.uml#SoaML-MotivationRealization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t2TSwQEBEeO_SKgrbXd_6g" x="30" y="30"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_lndCAQEBEeO_SKgrbXd_6g"/>
+ <element xmi:type="uml:Profile" href="SoaMLProfile.profile.uml#SoaML"/>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_b7lB0L6EEeSvUdl1XXO70w"/>
+ <css:StyleSheetReference xmi:id="_2qf7gL6EEeSvUdl1XXO70w" path="/org.eclipse.papyrus.soaml.profile/style/style.css"/>
+</xmi:XMI>
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=