Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkhussey2006-04-05 13:49:57 +0000
committerkhussey2006-04-05 13:49:57 +0000
commitd67ad0cb00115cb97f3d5d5814b2038645d970f9 (patch)
tree7b20b58faf194796374fad462b11e1792b8d318a /plugins/org.eclipse.uml2.uml/model/UML.merged.uml
parent83594e6e13cde0240d377218813c0b1c17af468a (diff)
downloadorg.eclipse.uml2-d67ad0cb00115cb97f3d5d5814b2038645d970f9.tar.gz
org.eclipse.uml2-d67ad0cb00115cb97f3d5d5814b2038645d970f9.tar.xz
org.eclipse.uml2-d67ad0cb00115cb97f3d5d5814b2038645d970f9.zip
[105191] Bootstrapping on *.uml models (instead of *.uml2).
Diffstat (limited to 'plugins/org.eclipse.uml2.uml/model/UML.merged.uml')
-rw-r--r--plugins/org.eclipse.uml2.uml/model/UML.merged.uml15308
1 files changed, 15308 insertions, 0 deletions
diff --git a/plugins/org.eclipse.uml2.uml/model/UML.merged.uml b/plugins/org.eclipse.uml2.uml/model/UML.merged.uml
new file mode 100644
index 000000000..c4158b7b9
--- /dev/null
+++ b/plugins/org.eclipse.uml2.uml/model/UML.merged.uml
@@ -0,0 +1,15308 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/3" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/3 pathmap://UML_PROFILES/Ecore.profile.uml#_vy-HUYinEdqtvbnfB2L_5w">
+ <uml:Model xmi:id="_o8I_sGvaEdq4DLWZOhbdEA" name="UML">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvOUwMRUEdq3a_CVKGVcKw" source="capabilities">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvOUwcRUEdq3a_CVKGVcKw" source="UML::Activities::FundamentalActivities" references="_xWj9J8RUEdq3a_CVKGVcKw _xWj9K8RUEdq3a_CVKGVcKw _xWj9IMRUEdq3a_CVKGVcKw _xWdPjcRUEdq3a_CVKGVcKw _xWj9LsRUEdq3a_CVKGVcKw _xWdPgsRUEdq3a_CVKGVcKw _xWj9I8RUEdq3a_CVKGVcKw _xWdPhsRUEdq3a_CVKGVcKw _xWdPicRUEdq3a_CVKGVcKw _xWdPlcRUEdq3a_CVKGVcKw _xWj9LcRUEdq3a_CVKGVcKw _xWdPeMRUEdq3a_CVKGVcKw _xWXI0MRUEdq3a_CVKGVcKw _xWj9MMRUEdq3a_CVKGVcKw _xWdPkcRUEdq3a_CVKGVcKw _xWdPfsRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvOUwsRUEdq3a_CVKGVcKw" source="UML::Activities::StructuredActivities" references="_xWj9J8RUEdq3a_CVKGVcKw _xWj9K8RUEdq3a_CVKGVcKw _xW8XoMRUEdq3a_CVKGVcKw _xW8XusRUEdq3a_CVKGVcKw _xWj9IMRUEdq3a_CVKGVcKw _xWwKZMRUEdq3a_CVKGVcKw _xWdPjcRUEdq3a_CVKGVcKw _xWj9PcRUEdq3a_CVKGVcKw _xW2REMRUEdq3a_CVKGVcKw _xWj9QcRUEdq3a_CVKGVcKw _xWqD9MRUEdq3a_CVKGVcKw _xW2RBsRUEdq3a_CVKGVcKw _xWj9LsRUEdq3a_CVKGVcKw _xWqD18RUEdq3a_CVKGVcKw _xW2RBMRUEdq3a_CVKGVcKw _xWwKYMRUEdq3a_CVKGVcKw _xWqD7MRUEdq3a_CVKGVcKw _xWwKfsRUEdq3a_CVKGVcKw _xWqDzcRUEdq3a_CVKGVcKw _xWqD4cRUEdq3a_CVKGVcKw _xW8XocRUEdq3a_CVKGVcKw _xWj9RcRUEdq3a_CVKGVcKw _xWqDxcRUEdq3a_CVKGVcKw _xWqD0cRUEdq3a_CVKGVcKw _xW2RDMRUEdq3a_CVKGVcKw _xWdPgsRUEdq3a_CVKGVcKw _xW8XscRUEdq3a_CVKGVcKw _xWqD_sRUEdq3a_CVKGVcKw _xWqEBsRUEdq3a_CVKGVcKw _xWj9I8RUEdq3a_CVKGVcKw _xWdPhsRUEdq3a_CVKGVcKw _xW8XtcRUEdq3a_CVKGVcKw _xW2REsRUEdq3a_CVKGVcKw _xWj9NsRUEdq3a_CVKGVcKw _xWdPicRUEdq3a_CVKGVcKw _xW8XuMRUEdq3a_CVKGVcKw _xWj9LcRUEdq3a_CVKGVcKw _xWqD-sRUEdq3a_CVKGVcKw _xW8XvMRUEdq3a_CVKGVcKw _xWqD2sRUEdq3a_CVKGVcKw _xWwKcMRUEdq3a_CVKGVcKw _xWwKeMRUEdq3a_CVKGVcKw _xW8XssRUEdq3a_CVKGVcKw _xWqD1MRUEdq3a_CVKGVcKw _xWqECsRUEdq3a_CVKGVcKw _xWqEAsRUEdq3a_CVKGVcKw _xW8XpMRUEdq3a_CVKGVcKw _xWdPeMRUEdq3a_CVKGVcKw _xW2RCMRUEdq3a_CVKGVcKw _xWwKe8RUEdq3a_CVKGVcKw _xWqD5MRUEdq3a_CVKGVcKw _xW2REcRUEdq3a_CVKGVcKw _xWqD3sRUEdq3a_CVKGVcKw _xWqDycRUEdq3a_CVKGVcKw _xWqD6MRUEdq3a_CVKGVcKw _xW2RCcRUEdq3a_CVKGVcKw _xW2RDcRUEdq3a_CVKGVcKw _xW8XqsRUEdq3a_CVKGVcKw _xW8XrsRUEdq3a_CVKGVcKw _xWXI0MRUEdq3a_CVKGVcKw _xWqD8MRUEdq3a_CVKGVcKw _xW8XqcRUEdq3a_CVKGVcKw _xWqDwMRUEdq3a_CVKGVcKw _xW8XrcRUEdq3a_CVKGVcKw _xW8XpsRUEdq3a_CVKGVcKw _xWdPfsRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvOUw8RUEdq3a_CVKGVcKw" source="UML::Activities::IntermediateActivities" references="_xWj9J8RUEdq3a_CVKGVcKw _xWj9IMRUEdq3a_CVKGVcKw _xZzeaMRUEdq3a_CVKGVcKw _xWdPjcRUEdq3a_CVKGVcKw _xZhKucRUEdq3a_CVKGVcKw _xZnRQcRUEdq3a_CVKGVcKw _xWj9LsRUEdq3a_CVKGVcKw _xX_glcRUEdq3a_CVKGVcKw _xZhKj8RUEdq3a_CVKGVcKw _xZzeasRUEdq3a_CVKGVcKw _xZtXycRUEdq3a_CVKGVcKw _xZhKscRUEdq3a_CVKGVcKw _xX_gocRUEdq3a_CVKGVcKw _xZnRKMRUEdq3a_CVKGVcKw _xZtXz8RUEdq3a_CVKGVcKw _xZhKqcRUEdq3a_CVKGVcKw _xZtXwsRUEdq3a_CVKGVcKw _xWdPgsRUEdq3a_CVKGVcKw _xWdPhsRUEdq3a_CVKGVcKw _xZzeb8RUEdq3a_CVKGVcKw _xWdPicRUEdq3a_CVKGVcKw _xZzeYMRUEdq3a_CVKGVcKw _xZhKtcRUEdq3a_CVKGVcKw _xZhKicRUEdq3a_CVKGVcKw _xWj9LcRUEdq3a_CVKGVcKw _xZhKpcRUEdq3a_CVKGVcKw _xZzea8RUEdq3a_CVKGVcKw _xX5aDMRUEdq3a_CVKGVcKw _xZzeYsRUEdq3a_CVKGVcKw _xZhKn8RUEdq3a_CVKGVcKw _xZzeccRUEdq3a_CVKGVcKw _xX5Z98RUEdq3a_CVKGVcKw _xZzebMRUEdq3a_CVKGVcKw _xZhKosRUEdq3a_CVKGVcKw _xZnRMcRUEdq3a_CVKGVcKw _xWdPeMRUEdq3a_CVKGVcKw _xZzeZcRUEdq3a_CVKGVcKw _xZhKrcRUEdq3a_CVKGVcKw _xZhKgMRUEdq3a_CVKGVcKw _xZhKjMRUEdq3a_CVKGVcKw _xZhKvcRUEdq3a_CVKGVcKw _xYFnN8RUEdq3a_CVKGVcKw _xZzeZMRUEdq3a_CVKGVcKw _xZnRPcRUEdq3a_CVKGVcKw _xZnRIsRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvOUxMRUEdq3a_CVKGVcKw" source="UML::Activities::CompleteActivities" references="_xWj9J8RUEdq3a_CVKGVcKw _xgBbNcRUEdq3a_CVKGVcKw _xgZ1s8RUEdq3a_CVKGVcKw _xWj9IMRUEdq3a_CVKGVcKw _xgZ1psRUEdq3a_CVKGVcKw _xgZ1p8RUEdq3a_CVKGVcKw _xgTvFcRUEdq3a_CVKGVcKw _xgZ1rsRUEdq3a_CVKGVcKw _xgZ1sMRUEdq3a_CVKGVcKw _xgTvBsRUEdq3a_CVKGVcKw _xgBbRcRUEdq3a_CVKGVcKw _xgTvH8RUEdq3a_CVKGVcKw _xgHh08RUEdq3a_CVKGVcKw _xgBbScRUEdq3a_CVKGVcKw _xgHh78RUEdq3a_CVKGVcKw _xgHh3MRUEdq3a_CVKGVcKw _xgNoaMRUEdq3a_CVKGVcKw _xgZ1uMRUEdq3a_CVKGVcKw _xgHhz8RUEdq3a_CVKGVcKw _xgHh5sRUEdq3a_CVKGVcKw _xX5Z6sRUEdq3a_CVKGVcKw _xgf8QsRUEdq3a_CVKGVcKw _xZtXwsRUEdq3a_CVKGVcKw _xgTvD8RUEdq3a_CVKGVcKw _xgTvAMRUEdq3a_CVKGVcKw _xgTvEcRUEdq3a_CVKGVcKw _xgTvFMRUEdq3a_CVKGVcKw _xgHhzMRUEdq3a_CVKGVcKw _TUPtYGveEdq4DLWZOhbdEA _xf7UnMRUEdq3a_CVKGVcKw _xgBbJ8RUEdq3a_CVKGVcKw _xf7Ug8RUEdq3a_CVKGVcKw _xgZ1oMRUEdq3a_CVKGVcKw _xWdPhsRUEdq3a_CVKGVcKw _xgZ1osRUEdq3a_CVKGVcKw _xWdPicRUEdq3a_CVKGVcKw _xgZ1q8RUEdq3a_CVKGVcKw _xWj9LcRUEdq3a_CVKGVcKw _xgZ1scRUEdq3a_CVKGVcKw _xgTvDMRUEdq3a_CVKGVcKw _xX_ggMRUEdq3a_CVKGVcKw _xf7UisRUEdq3a_CVKGVcKw _xX5Z98RUEdq3a_CVKGVcKw _xf7Un8RUEdq3a_CVKGVcKw _xf7UrsRUEdq3a_CVKGVcKw _xgZ1pMRUEdq3a_CVKGVcKw _xgBbKsRUEdq3a_CVKGVcKw _xf7UpsRUEdq3a_CVKGVcKw _xgBbTcRUEdq3a_CVKGVcKw _xWdPeMRUEdq3a_CVKGVcKw _xgZ1o8RUEdq3a_CVKGVcKw _xWK7p8RUEdq3a_CVKGVcKw _xgTvDsRUEdq3a_CVKGVcKw _xgHh4MRUEdq3a_CVKGVcKw _xgBbOcRUEdq3a_CVKGVcKw _xWXI0MRUEdq3a_CVKGVcKw _xgf8QMRUEdq3a_CVKGVcKw _xf7UhsRUEdq3a_CVKGVcKw _xgNoY8RUEdq3a_CVKGVcKw _xgTvHcRUEdq3a_CVKGVcKw _xf7UqsRUEdq3a_CVKGVcKw _xgHh2MRUEdq3a_CVKGVcKw _xgZ1qsRUEdq3a_CVKGVcKw _xgHh6sRUEdq3a_CVKGVcKw _xgTvGMRUEdq3a_CVKGVcKw _xgTvGcRUEdq3a_CVKGVcKw _xgZ1tsRUEdq3a_CVKGVcKw _xf7UosRUEdq3a_CVKGVcKw _rHT3YKOsEdqi_5gqUMOQtA _KyaPMGveEdq4DLWZOhbdEA _xgHhycRUEdq3a_CVKGVcKw _xgNob8RUEdq3a_CVKGVcKw _xgBbMcRUEdq3a_CVKGVcKw _xgTvGsRUEdq3a_CVKGVcKw _xgBbLcRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbYMRUEdq3a_CVKGVcKw" source="InfrastructureLibrary::Core::Constructs" references="_xQP58cRUEdq3a_CVKGVcKw _xQP50sRUEdq3a_CVKGVcKw _xP3fRMRUEdq3a_CVKGVcKw _xP9mAcRUEdq3a_CVKGVcKw _xR3qj8RUEdq3a_CVKGVcKw _xPY-PMRUEdq3a_CVKGVcKw _xR3qdsRUEdq3a_CVKGVcKw _xQWAa8RUEdq3a_CVKGVcKw _xQJzL8RUEdq3a_CVKGVcKw _xPxYz8RUEdq3a_CVKGVcKw _xR9xBMRUEdq3a_CVKGVcKw _xR3qbMRUEdq3a_CVKGVcKw _xRxj3sRUEdq3a_CVKGVcKw _xR9xEcRUEdq3a_CVKGVcKw _xPlLe8RUEdq3a_CVKGVcKw _xP3fQMRUEdq3a_CVKGVcKw _xRxjwcRUEdq3a_CVKGVcKw _xRrdQMRUEdq3a_CVKGVcKw _xR3qhcRUEdq3a_CVKGVcKw _xPS3lMRUEdq3a_CVKGVcKw _xPrSNMRUEdq3a_CVKGVcKw _xR9xD8RUEdq3a_CVKGVcKw _xR9xAMRUEdq3a_CVKGVcKw _xR9xA8RUEdq3a_CVKGVcKw _xRxj1sRUEdq3a_CVKGVcKw _xPY-IMRUEdq3a_CVKGVcKw _xR3qgcRUEdq3a_CVKGVcKw _kl90MGvbEdq4DLWZOhbdEA _xRxjx8RUEdq3a_CVKGVcKw _xRxj0cRUEdq3a_CVKGVcKw _xR3qgsRUEdq3a_CVKGVcKw _xQJzMsRUEdq3a_CVKGVcKw _xQP5xcRUEdq3a_CVKGVcKw _xRlWhcRUEdq3a_CVKGVcKw _xRZJXMRUEdq3a_CVKGVcKw _xQDsisRUEdq3a_CVKGVcKw _xPxYp8RUEdq3a_CVKGVcKw _xQJzWsRUEdq3a_CVKGVcKw _xPxYtcRUEdq3a_CVKGVcKw _xRfQD8RUEdq3a_CVKGVcKw _xPrSGsRUEdq3a_CVKGVcKw _xPfEx8RUEdq3a_CVKGVcKw _xQDsr8RUEdq3a_CVKGVcKw _xQDsq8RUEdq3a_CVKGVcKw _xRxj4cRUEdq3a_CVKGVcKw _xQDsu8RUEdq3a_CVKGVcKw _xPrSCsRUEdq3a_CVKGVcKw _xPS3jMRUEdq3a_CVKGVcKw _xP9mFsRUEdq3a_CVKGVcKw _xRrdS8RUEdq3a_CVKGVcKw _xR9xB8RUEdq3a_CVKGVcKw _xRfP4MRUEdq3a_CVKGVcKw _xR3qeMRUEdq3a_CVKGVcKw _xRZJTMRUEdq3a_CVKGVcKw _AyM_oGwMEdq7X4sGURiZYA _xRrdK8RUEdq3a_CVKGVcKw _xRrdUcRUEdq3a_CVKGVcKw _xRxjyMRUEdq3a_CVKGVcKw _xPlLd8RUEdq3a_CVKGVcKw _xR9xCsRUEdq3a_CVKGVcKw _xR3qgMRUEdq3a_CVKGVcKw _xRxj5sRUEdq3a_CVKGVcKw _xR3qasRUEdq3a_CVKGVcKw _xR3qesRUEdq3a_CVKGVcKw _xRxjzcRUEdq3a_CVKGVcKw _xRZJRcRUEdq3a_CVKGVcKw _xRxj3MRUEdq3a_CVKGVcKw _xQP528RUEdq3a_CVKGVcKw _xRxj08RUEdq3a_CVKGVcKw _xQJzS8RUEdq3a_CVKGVcKw _xRxj58RUEdq3a_CVKGVcKw _xRlWk8RUEdq3a_CVKGVcKw _xP9mCcRUEdq3a_CVKGVcKw _xR3qiMRUEdq3a_CVKGVcKw _xRxjxMRUEdq3a_CVKGVcKw _xRlWj8RUEdq3a_CVKGVcKw _xPlLjsRUEdq3a_CVKGVcKw _xR3qb8RUEdq3a_CVKGVcKw _xRfQE8RUEdq3a_CVKGVcKw _xP9mIsRUEdq3a_CVKGVcKw _OQcbgGwOEdq7X4sGURiZYA _xPxYsMRUEdq3a_CVKGVcKw _xQWAgsRUEdq3a_CVKGVcKw _xPxY0sRUEdq3a_CVKGVcKw _xRfP8sRUEdq3a_CVKGVcKw _ZiwkoGwLEdq7X4sGURiZYA _V6vuYGwGEdq7X4sGURiZYA _xRrdPMRUEdq3a_CVKGVcKw _xRxj4MRUEdq3a_CVKGVcKw _Gjgl0GveEdq4DLWZOhbdEA _xPS3mMRUEdq3a_CVKGVcKw _xQJzIMRUEdq3a_CVKGVcKw _xR3qjsRUEdq3a_CVKGVcKw _xQWAjsRUEdq3a_CVKGVcKw _xQWAd8RUEdq3a_CVKGVcKw _xPxYoMRUEdq3a_CVKGVcKw _DH62EKPAEdqi_5gqUMOQtA _xRfQC8RUEdq3a_CVKGVcKw _M4X2IGveEdq4DLWZOhbdEA _xRZJYMRUEdq3a_CVKGVcKw _xR9xFMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw _xR9xIcRUEdq3a_CVKGVcKw _xQP538RUEdq3a_CVKGVcKw _xPlLf8RUEdq3a_CVKGVcKw _xP3fSMRUEdq3a_CVKGVcKw _xPrSMMRUEdq3a_CVKGVcKw _xRfQIcRUEdq3a_CVKGVcKw _xQDsosRUEdq3a_CVKGVcKw _xRrdTsRUEdq3a_CVKGVcKw _xQWAc8RUEdq3a_CVKGVcKw _xPY-U8RUEdq3a_CVKGVcKw _xP3fVcRUEdq3a_CVKGVcKw _xRZJQMRUEdq3a_CVKGVcKw _xQJzNcRUEdq3a_CVKGVcKw _xR3qaMRUEdq3a_CVKGVcKw _xR3qbsRUEdq3a_CVKGVcKw _xP9l8cRUEdq3a_CVKGVcKw _xR3qfcRUEdq3a_CVKGVcKw _xPrSAMRUEdq3a_CVKGVcKw _xQJzOsRUEdq3a_CVKGVcKw _xP9mBcRUEdq3a_CVKGVcKw _xQP56cRUEdq3a_CVKGVcKw _xRlWiMRUEdq3a_CVKGVcKw _xRfQA8RUEdq3a_CVKGVcKw _xRxj1MRUEdq3a_CVKGVcKw _xR9xI8RUEdq3a_CVKGVcKw _xPrSHsRUEdq3a_CVKGVcKw _xQDss8RUEdq3a_CVKGVcKw _xP3ffsRUEdq3a_CVKGVcKw _xRxj3cRUEdq3a_CVKGVcKw _xRrdO8RUEdq3a_CVKGVcKw _csVgUGvtEdqG6fBIPwe-mw _xPfEwMRUEdq3a_CVKGVcKw _xRrdIMRUEdq3a_CVKGVcKw _xP9l5MRUEdq3a_CVKGVcKw _6UV2QGwJEdq7X4sGURiZYA _xR9xDcRUEdq3a_CVKGVcKw _xRxjwMRUEdq3a_CVKGVcKw _xR9xF8RUEdq3a_CVKGVcKw _xP9mDsRUEdq3a_CVKGVcKw _xR3qicRUEdq3a_CVKGVcKw _xPxYxMRUEdq3a_CVKGVcKw _Jp_1oGveEdq4DLWZOhbdEA _xR3qi8RUEdq3a_CVKGVcKw _xQJzR8RUEdq3a_CVKGVcKw _jKxnwGwLEdq7X4sGURiZYA _xP9mHcRUEdq3a_CVKGVcKw _xQJzQ8RUEdq3a_CVKGVcKw _xR3qY8RUEdq3a_CVKGVcKw _SnNPIGwIEdq7X4sGURiZYA _xQDsnMRUEdq3a_CVKGVcKw _xQWAksRUEdq3a_CVKGVcKw _xRxj48RUEdq3a_CVKGVcKw _xPlLaMRUEdq3a_CVKGVcKw _JBgfoKPAEdqi_5gqUMOQtA _AwvxoGwNEdq7X4sGURiZYA _xQWAisRUEdq3a_CVKGVcKw _xQJzT8RUEdq3a_CVKGVcKw _xPfEzMRUEdq3a_CVKGVcKw _xRxjwsRUEdq3a_CVKGVcKw _xRxj2cRUEdq3a_CVKGVcKw _xR3qYMRUEdq3a_CVKGVcKw _xQWAhsRUEdq3a_CVKGVcKw _xPfE7sRUEdq3a_CVKGVcKw _xRZJWcRUEdq3a_CVKGVcKw _xP9l9cRUEdq3a_CVKGVcKw _xPY-W8RUEdq3a_CVKGVcKw _xPS3kMRUEdq3a_CVKGVcKw _xP3fXcRUEdq3a_CVKGVcKw _xR9xHMRUEdq3a_CVKGVcKw _xQJzP8RUEdq3a_CVKGVcKw _xRrdPcRUEdq3a_CVKGVcKw _xPxYusRUEdq3a_CVKGVcKw _xR9xGcRUEdq3a_CVKGVcKw _xR9xJsRUEdq3a_CVKGVcKw _xRfQB8RUEdq3a_CVKGVcKw _xPfE5MRUEdq3a_CVKGVcKw _xR3qcMRUEdq3a_CVKGVcKw _xR3qg8RUEdq3a_CVKGVcKw _xQJzLMRUEdq3a_CVKGVcKw _xRlWjMRUEdq3a_CVKGVcKw _xPxYv8RUEdq3a_CVKGVcKw _xPS3rMRUEdq3a_CVKGVcKw _xPrSEcRUEdq3a_CVKGVcKw _RPl78GwIEdq7X4sGURiZYA _xPfE9cRUEdq3a_CVKGVcKw _xQJzU8RUEdq3a_CVKGVcKw _xR9xDMRUEdq3a_CVKGVcKw _xRlWgMRUEdq3a_CVKGVcKw _xPfE3sRUEdq3a_CVKGVcKw _xP9l6sRUEdq3a_CVKGVcKw _xRfQGsRUEdq3a_CVKGVcKw _xQDslsRUEdq3a_CVKGVcKw _xR9xBcRUEdq3a_CVKGVcKw _xPxYq8RUEdq3a_CVKGVcKw _xPlLYMRUEdq3a_CVKGVcKw __1ap4HLzEdqziYxiZo0YtA _xR3qh8RUEdq3a_CVKGVcKw _xPlLi8RUEdq3a_CVKGVcKw _ynRtoGvtEdqG6fBIPwe-mw _xPY-RMRUEdq3a_CVKGVcKw _xP3fWcRUEdq3a_CVKGVcKw _xRxj18RUEdq3a_CVKGVcKw _xR9xHsRUEdq3a_CVKGVcKw _xQJzXcRUEdq3a_CVKGVcKw _xPS3pcRUEdq3a_CVKGVcKw _xR9xFsRUEdq3a_CVKGVcKw _xPY-KsRUEdq3a_CVKGVcKw _xPfE4cRUEdq3a_CVKGVcKw _xRfP48RUEdq3a_CVKGVcKw _xRrdUMRUEdq3a_CVKGVcKw _xPlLh8RUEdq3a_CVKGVcKw _xP9l7cRUEdq3a_CVKGVcKw _xPS3nsRUEdq3a_CVKGVcKw _xPlLlcRUEdq3a_CVKGVcKw _xQJzYMRUEdq3a_CVKGVcKw _-cvRAGvzEdq7X4sGURiZYA _xP3fUcRUEdq3a_CVKGVcKw _xP9l_cRUEdq3a_CVKGVcKw _xPfEz8RUEdq3a_CVKGVcKw _xPY-SMRUEdq3a_CVKGVcKw _I6N3UGwGEdq7X4sGURiZYA _xRxj5MRUEdq3a_CVKGVcKw _xPlLbcRUEdq3a_CVKGVcKw _xRxjxcRUEdq3a_CVKGVcKw _xPS3s8RUEdq3a_CVKGVcKw _xR3qhMRUEdq3a_CVKGVcKw _xR3qc8RUEdq3a_CVKGVcKw _xRrdUsRUEdq3a_CVKGVcKw _xRfP58RUEdq3a_CVKGVcKw _00owUGvdEdq4DLWZOhbdEA _xPY-V8RUEdq3a_CVKGVcKw _xR3qecRUEdq3a_CVKGVcKw _xR3qfsRUEdq3a_CVKGVcKw _xQWAb8RUEdq3a_CVKGVcKw _xQWAaMRUEdq3a_CVKGVcKw _xP9l4MRUEdq3a_CVKGVcKw _xR3qd8RUEdq3a_CVKGVcKw _xRfP7sRUEdq3a_CVKGVcKw _xP9l-cRUEdq3a_CVKGVcKw _rHT3YKOsEdqi_5gqUMOQtA _xPfE6cRUEdq3a_CVKGVcKw _xQDshsRUEdq3a_CVKGVcKw _xQDsgsRUEdq3a_CVKGVcKw _xRxjysRUEdq3a_CVKGVcKw _xQP54sRUEdq3a_CVKGVcKw _xQP5ysRUEdq3a_CVKGVcKw _xR3qZcRUEdq3a_CVKGVcKw _ChRfcGveEdq4DLWZOhbdEA _xQJzV8RUEdq3a_CVKGVcKw _xPrSKMRUEdq3a_CVKGVcKw _xR3qdcRUEdq3a_CVKGVcKw _xP9l58RUEdq3a_CVKGVcKw _xPY-MsRUEdq3a_CVKGVcKw _xR3qe8RUEdq3a_CVKGVcKw _xQP57cRUEdq3a_CVKGVcKw _KyaPMGveEdq4DLWZOhbdEA _xPlLncRUEdq3a_CVKGVcKw _xPS3iMRUEdq3a_CVKGVcKw _xPS3usRUEdq3a_CVKGVcKw _xQP5wMRUEdq3a_CVKGVcKw _xPrSIsRUEdq3a_CVKGVcKw _xP3fTsRUEdq3a_CVKGVcKw _xPxYo8RUEdq3a_CVKGVcKw _xQJzZcRUEdq3a_CVKGVcKw _xRrdRMRUEdq3a_CVKGVcKw _xQJzasRUEdq3a_CVKGVcKw _xRrdSMRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbYcRUEdq3a_CVKGVcKw" source="UML::Classes::Kernel" references="_xQP58cRUEdq3a_CVKGVcKw _xQP50sRUEdq3a_CVKGVcKw _xTHnn8RUEdq3a_CVKGVcKw _xP3fRMRUEdq3a_CVKGVcKw _xP9mAcRUEdq3a_CVKGVcKw _xR3qj8RUEdq3a_CVKGVcKw _xPY-PMRUEdq3a_CVKGVcKw _xR3qdsRUEdq3a_CVKGVcKw _xQWAa8RUEdq3a_CVKGVcKw _xQJzL8RUEdq3a_CVKGVcKw _xPxYz8RUEdq3a_CVKGVcKw _xSumF8RUEdq3a_CVKGVcKw _xR9xBMRUEdq3a_CVKGVcKw _xR3qbMRUEdq3a_CVKGVcKw _xRxj3sRUEdq3a_CVKGVcKw _xR9xEcRUEdq3a_CVKGVcKw _xPlLe8RUEdq3a_CVKGVcKw _xP3fQMRUEdq3a_CVKGVcKw _xRxjwcRUEdq3a_CVKGVcKw _xRrdQMRUEdq3a_CVKGVcKw _xR3qhcRUEdq3a_CVKGVcKw _xPS3lMRUEdq3a_CVKGVcKw _xPrSNMRUEdq3a_CVKGVcKw _xR9xD8RUEdq3a_CVKGVcKw _xR9xAMRUEdq3a_CVKGVcKw _xVaGlcRUEdq3a_CVKGVcKw _xTBhAcRUEdq3a_CVKGVcKw _xR9xA8RUEdq3a_CVKGVcKw _xRxj1sRUEdq3a_CVKGVcKw _xPY-IMRUEdq3a_CVKGVcKw _xR3qgcRUEdq3a_CVKGVcKw _kl90MGvbEdq4DLWZOhbdEA _xSumIcRUEdq3a_CVKGVcKw _xRxjx8RUEdq3a_CVKGVcKw _xRxj0cRUEdq3a_CVKGVcKw _xR3qgsRUEdq3a_CVKGVcKw _xQJzMsRUEdq3a_CVKGVcKw _xQP5xcRUEdq3a_CVKGVcKw _xRlWhcRUEdq3a_CVKGVcKw _xRZJXMRUEdq3a_CVKGVcKw _xVgNMMRUEdq3a_CVKGVcKw _xTsPb8RUEdq3a_CVKGVcKw _xPxYp8RUEdq3a_CVKGVcKw _xQJzWsRUEdq3a_CVKGVcKw _xPxYtcRUEdq3a_CVKGVcKw _xRfQD8RUEdq3a_CVKGVcKw _xPrSGsRUEdq3a_CVKGVcKw _xPfEx8RUEdq3a_CVKGVcKw _xQDsr8RUEdq3a_CVKGVcKw _xQDsq8RUEdq3a_CVKGVcKw _xVaGnMRUEdq3a_CVKGVcKw _xRxj4cRUEdq3a_CVKGVcKw _xQDsu8RUEdq3a_CVKGVcKw _xTsPVMRUEdq3a_CVKGVcKw _xPrSCsRUEdq3a_CVKGVcKw _xPS3jMRUEdq3a_CVKGVcKw _xP9mFsRUEdq3a_CVKGVcKw _xRrdS8RUEdq3a_CVKGVcKw _xVN5WMRUEdq3a_CVKGVcKw _xR9xB8RUEdq3a_CVKGVcKw _xRfP4MRUEdq3a_CVKGVcKw _xR3qeMRUEdq3a_CVKGVcKw _xRZJTMRUEdq3a_CVKGVcKw _AyM_oGwMEdq7X4sGURiZYA _xRrdK8RUEdq3a_CVKGVcKw _xRrdUcRUEdq3a_CVKGVcKw _B3q9cGwNEdq7X4sGURiZYA _xRxjyMRUEdq3a_CVKGVcKw _xTsPaMRUEdq3a_CVKGVcKw _xPlLd8RUEdq3a_CVKGVcKw _xTsPd8RUEdq3a_CVKGVcKw _xR9xCsRUEdq3a_CVKGVcKw _xVN5UMRUEdq3a_CVKGVcKw _xR3qgMRUEdq3a_CVKGVcKw _xTsPYMRUEdq3a_CVKGVcKw _xRxj5sRUEdq3a_CVKGVcKw _xR3qasRUEdq3a_CVKGVcKw _xTHnnMRUEdq3a_CVKGVcKw _xR3qesRUEdq3a_CVKGVcKw _xRxjzcRUEdq3a_CVKGVcKw _xRZJRcRUEdq3a_CVKGVcKw _xRxj3MRUEdq3a_CVKGVcKw _xS1TtMRUEdq3a_CVKGVcKw _xQP528RUEdq3a_CVKGVcKw _xRxj08RUEdq3a_CVKGVcKw _xQJzS8RUEdq3a_CVKGVcKw _xRxj58RUEdq3a_CVKGVcKw _xRlWk8RUEdq3a_CVKGVcKw _xTsPc8RUEdq3a_CVKGVcKw _xP9mCcRUEdq3a_CVKGVcKw _xSumCMRUEdq3a_CVKGVcKw _xVgNQcRUEdq3a_CVKGVcKw _xR3qiMRUEdq3a_CVKGVcKw _xRxjxMRUEdq3a_CVKGVcKw _xRlWj8RUEdq3a_CVKGVcKw _xVN5WcRUEdq3a_CVKGVcKw _xS1TwcRUEdq3a_CVKGVcKw _xPlLjsRUEdq3a_CVKGVcKw _xR3qb8RUEdq3a_CVKGVcKw _xRfQE8RUEdq3a_CVKGVcKw _xP9mIsRUEdq3a_CVKGVcKw _OQcbgGwOEdq7X4sGURiZYA _xPxYsMRUEdq3a_CVKGVcKw _xQWAgsRUEdq3a_CVKGVcKw _xPxY0sRUEdq3a_CVKGVcKw _xRfP8sRUEdq3a_CVKGVcKw _xVN5VcRUEdq3a_CVKGVcKw _ZiwkoGwLEdq7X4sGURiZYA _V6vuYGwGEdq7X4sGURiZYA _xTmIusRUEdq3a_CVKGVcKw _xRrdPMRUEdq3a_CVKGVcKw _xRxj4MRUEdq3a_CVKGVcKw _Gjgl0GveEdq4DLWZOhbdEA _xPS3mMRUEdq3a_CVKGVcKw _xQJzIMRUEdq3a_CVKGVcKw _xR3qjsRUEdq3a_CVKGVcKw _xVBsE8RUEdq3a_CVKGVcKw _xQWAjsRUEdq3a_CVKGVcKw _xSumHMRUEdq3a_CVKGVcKw _xQWAd8RUEdq3a_CVKGVcKw _xPxYoMRUEdq3a_CVKGVcKw _DH62EKPAEdqi_5gqUMOQtA _xRfQC8RUEdq3a_CVKGVcKw _M4X2IGveEdq4DLWZOhbdEA _xRZJYMRUEdq3a_CVKGVcKw _xTNuNMRUEdq3a_CVKGVcKw _xR9xFMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw _xR9xIcRUEdq3a_CVKGVcKw _xQP538RUEdq3a_CVKGVcKw _xPlLf8RUEdq3a_CVKGVcKw _xP3fSMRUEdq3a_CVKGVcKw _xT-jMMRUEdq3a_CVKGVcKw _xPrSMMRUEdq3a_CVKGVcKw _xRfQIcRUEdq3a_CVKGVcKw _xQDsosRUEdq3a_CVKGVcKw _xRrdTsRUEdq3a_CVKGVcKw _xQWAc8RUEdq3a_CVKGVcKw _xVBsIcRUEdq3a_CVKGVcKw _xPY-U8RUEdq3a_CVKGVcKw _xP3fVcRUEdq3a_CVKGVcKw _Q-yR4GveEdq4DLWZOhbdEA _xRZJQMRUEdq3a_CVKGVcKw _xQJzNcRUEdq3a_CVKGVcKw _xR3qaMRUEdq3a_CVKGVcKw _xR3qbsRUEdq3a_CVKGVcKw _xP9l8cRUEdq3a_CVKGVcKw _xR3qfcRUEdq3a_CVKGVcKw _xPrSAMRUEdq3a_CVKGVcKw _xQJzOsRUEdq3a_CVKGVcKw _xP9mBcRUEdq3a_CVKGVcKw _xQP56cRUEdq3a_CVKGVcKw _xVN5WsRUEdq3a_CVKGVcKw _xRlWiMRUEdq3a_CVKGVcKw _xRfQA8RUEdq3a_CVKGVcKw _FFMNsGveEdq4DLWZOhbdEA _xRxj1MRUEdq3a_CVKGVcKw _xR9xI8RUEdq3a_CVKGVcKw _xVaGl8RUEdq3a_CVKGVcKw _xPrSHsRUEdq3a_CVKGVcKw _xQDss8RUEdq3a_CVKGVcKw _xP3ffsRUEdq3a_CVKGVcKw _xS1TucRUEdq3a_CVKGVcKw _xRxj3cRUEdq3a_CVKGVcKw _xRrdO8RUEdq3a_CVKGVcKw _csVgUGvtEdqG6fBIPwe-mw _xTsPbMRUEdq3a_CVKGVcKw _xPfEwMRUEdq3a_CVKGVcKw _xVBsHMRUEdq3a_CVKGVcKw _xRrdIMRUEdq3a_CVKGVcKw _xP9l5MRUEdq3a_CVKGVcKw _6UV2QGwJEdq7X4sGURiZYA _xR9xDcRUEdq3a_CVKGVcKw _xRxjwMRUEdq3a_CVKGVcKw _xVgNOsRUEdq3a_CVKGVcKw _xVaGkMRUEdq3a_CVKGVcKw _xR9xF8RUEdq3a_CVKGVcKw _xP9mDsRUEdq3a_CVKGVcKw _xVgNPsRUEdq3a_CVKGVcKw _xR3qicRUEdq3a_CVKGVcKw _xPxYxMRUEdq3a_CVKGVcKw _Jp_1oGveEdq4DLWZOhbdEA _xR3qi8RUEdq3a_CVKGVcKw _xQJzR8RUEdq3a_CVKGVcKw _jKxnwGwLEdq7X4sGURiZYA _xP9mHcRUEdq3a_CVKGVcKw _xQJzQ8RUEdq3a_CVKGVcKw _xR3qY8RUEdq3a_CVKGVcKw _SnNPIGwIEdq7X4sGURiZYA _xVN5XcRUEdq3a_CVKGVcKw _xQDsnMRUEdq3a_CVKGVcKw _xQWAksRUEdq3a_CVKGVcKw _xSumKMRUEdq3a_CVKGVcKw _xTBg-cRUEdq3a_CVKGVcKw _xSumFMRUEdq3a_CVKGVcKw _Dy77oGveEdq4DLWZOhbdEA _xRxj48RUEdq3a_CVKGVcKw _PyCx8GveEdq4DLWZOhbdEA _xPlLaMRUEdq3a_CVKGVcKw _xVgNMsRUEdq3a_CVKGVcKw _xVHysMRUEdq3a_CVKGVcKw _JBgfoKPAEdqi_5gqUMOQtA _AwvxoGwNEdq7X4sGURiZYA _xQWAisRUEdq3a_CVKGVcKw _xQJzT8RUEdq3a_CVKGVcKw _xPfEzMRUEdq3a_CVKGVcKw _xRxjwsRUEdq3a_CVKGVcKw _xVgNPMRUEdq3a_CVKGVcKw _xRxj2cRUEdq3a_CVKGVcKw _xTmIssRUEdq3a_CVKGVcKw _xR3qYMRUEdq3a_CVKGVcKw _xSumLcRUEdq3a_CVKGVcKw _xQWAhsRUEdq3a_CVKGVcKw _xPfE7sRUEdq3a_CVKGVcKw _xRZJWcRUEdq3a_CVKGVcKw _xP9l9cRUEdq3a_CVKGVcKw _xPY-W8RUEdq3a_CVKGVcKw _xPS3kMRUEdq3a_CVKGVcKw _xP3fXcRUEdq3a_CVKGVcKw _xR9xHMRUEdq3a_CVKGVcKw _xQJzP8RUEdq3a_CVKGVcKw _xRrdPcRUEdq3a_CVKGVcKw _xPxYusRUEdq3a_CVKGVcKw _xR9xGcRUEdq3a_CVKGVcKw _xR9xJsRUEdq3a_CVKGVcKw _xRfQB8RUEdq3a_CVKGVcKw _xPfE5MRUEdq3a_CVKGVcKw _xS1TvMRUEdq3a_CVKGVcKw _xR3qcMRUEdq3a_CVKGVcKw _xR3qg8RUEdq3a_CVKGVcKw _xVgNNcRUEdq3a_CVKGVcKw _xTmItsRUEdq3a_CVKGVcKw _xVN5XMRUEdq3a_CVKGVcKw _xQJzLMRUEdq3a_CVKGVcKw _xTsPV8RUEdq3a_CVKGVcKw _xRlWjMRUEdq3a_CVKGVcKw _xPxYv8RUEdq3a_CVKGVcKw _xPS3rMRUEdq3a_CVKGVcKw _xPrSEcRUEdq3a_CVKGVcKw _xVgNO8RUEdq3a_CVKGVcKw _xSumAMRUEdq3a_CVKGVcKw _RPl78GwIEdq7X4sGURiZYA _xPfE9cRUEdq3a_CVKGVcKw _xQJzU8RUEdq3a_CVKGVcKw _xR9xDMRUEdq3a_CVKGVcKw _xTBg_cRUEdq3a_CVKGVcKw _xVT_88RUEdq3a_CVKGVcKw _xPfE3sRUEdq3a_CVKGVcKw _xP9l6sRUEdq3a_CVKGVcKw _xRfQGsRUEdq3a_CVKGVcKw _xUpRn8RUEdq3a_CVKGVcKw _xQDslsRUEdq3a_CVKGVcKw _xR9xBcRUEdq3a_CVKGVcKw _xPxYq8RUEdq3a_CVKGVcKw _xTsPZMRUEdq3a_CVKGVcKw _xPlLYMRUEdq3a_CVKGVcKw __1ap4HLzEdqziYxiZo0YtA _xR3qh8RUEdq3a_CVKGVcKw _xTZ7eMRUEdq3a_CVKGVcKw _xPlLi8RUEdq3a_CVKGVcKw _ynRtoGvtEdqG6fBIPwe-mw _xUKwdMRUEdq3a_CVKGVcKw _xPY-RMRUEdq3a_CVKGVcKw _xVT_8MRUEdq3a_CVKGVcKw _xP3fWcRUEdq3a_CVKGVcKw _xSofYMRUEdq3a_CVKGVcKw _xRxj18RUEdq3a_CVKGVcKw _xR9xHsRUEdq3a_CVKGVcKw _xQJzXcRUEdq3a_CVKGVcKw _xPS3pcRUEdq3a_CVKGVcKw _xR9xFsRUEdq3a_CVKGVcKw _xPY-KsRUEdq3a_CVKGVcKw _xSofcsRUEdq3a_CVKGVcKw _xPfE4cRUEdq3a_CVKGVcKw _xRfP48RUEdq3a_CVKGVcKw _xRrdUMRUEdq3a_CVKGVcKw _xPlLh8RUEdq3a_CVKGVcKw _xP9l7cRUEdq3a_CVKGVcKw _xPS3nsRUEdq3a_CVKGVcKw _xPlLlcRUEdq3a_CVKGVcKw _xQJzYMRUEdq3a_CVKGVcKw _-cvRAGvzEdq7X4sGURiZYA _xVaGksRUEdq3a_CVKGVcKw _xP3fUcRUEdq3a_CVKGVcKw _xP9l_cRUEdq3a_CVKGVcKw _xPfEz8RUEdq3a_CVKGVcKw _xPY-SMRUEdq3a_CVKGVcKw _I6N3UGwGEdq7X4sGURiZYA _xTgCE8RUEdq3a_CVKGVcKw _xRxj5MRUEdq3a_CVKGVcKw _xPlLbcRUEdq3a_CVKGVcKw _xTBhBsRUEdq3a_CVKGVcKw _xRxjxcRUEdq3a_CVKGVcKw _xPS3s8RUEdq3a_CVKGVcKw _xR3qhMRUEdq3a_CVKGVcKw _xVgNN8RUEdq3a_CVKGVcKw _xR3qc8RUEdq3a_CVKGVcKw _xRrdUsRUEdq3a_CVKGVcKw _xRfP58RUEdq3a_CVKGVcKw _xSumJMRUEdq3a_CVKGVcKw _00owUGvdEdq4DLWZOhbdEA _xPY-V8RUEdq3a_CVKGVcKw _xR3qecRUEdq3a_CVKGVcKw _xR3qfsRUEdq3a_CVKGVcKw _xQWAb8RUEdq3a_CVKGVcKw _xUEp2MRUEdq3a_CVKGVcKw _xVgNQ8RUEdq3a_CVKGVcKw _C7AF4GwREdq14q0ETb1t3g _xQWAaMRUEdq3a_CVKGVcKw _xP9l4MRUEdq3a_CVKGVcKw _xR3qd8RUEdq3a_CVKGVcKw _xRfP7sRUEdq3a_CVKGVcKw _xP9l-cRUEdq3a_CVKGVcKw _rHT3YKOsEdqi_5gqUMOQtA _xPfE6cRUEdq3a_CVKGVcKw _xQDshsRUEdq3a_CVKGVcKw _xQDsgsRUEdq3a_CVKGVcKw _xRxjysRUEdq3a_CVKGVcKw _xQP54sRUEdq3a_CVKGVcKw _xQP5ysRUEdq3a_CVKGVcKw _xR3qZcRUEdq3a_CVKGVcKw _ChRfcGveEdq4DLWZOhbdEA _xQJzV8RUEdq3a_CVKGVcKw _xSumNMRUEdq3a_CVKGVcKw _xSofasRUEdq3a_CVKGVcKw _xPrSKMRUEdq3a_CVKGVcKw _xR3qdcRUEdq3a_CVKGVcKw _xP9l58RUEdq3a_CVKGVcKw _xPY-MsRUEdq3a_CVKGVcKw _xVN5U8RUEdq3a_CVKGVcKw _xR3qe8RUEdq3a_CVKGVcKw _xUEp5sRUEdq3a_CVKGVcKw _xQP57cRUEdq3a_CVKGVcKw _KyaPMGveEdq4DLWZOhbdEA _xSumN8RUEdq3a_CVKGVcKw _xPlLncRUEdq3a_CVKGVcKw _xPS3iMRUEdq3a_CVKGVcKw _xPS3usRUEdq3a_CVKGVcKw _xQP5wMRUEdq3a_CVKGVcKw _xPrSIsRUEdq3a_CVKGVcKw _xP3fTsRUEdq3a_CVKGVcKw _xPxYo8RUEdq3a_CVKGVcKw _xVBsGcRUEdq3a_CVKGVcKw _xQJzZcRUEdq3a_CVKGVcKw _xRrdRMRUEdq3a_CVKGVcKw _xTmIycRUEdq3a_CVKGVcKw _xQJzasRUEdq3a_CVKGVcKw _xVaGmsRUEdq3a_CVKGVcKw _xRrdSMRUEdq3a_CVKGVcKw _xSumD8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbYsRUEdq3a_CVKGVcKw" source="UML::Actions::IntermediateActions" references="_xb6XUMRUEdq3a_CVKGVcKw _xce_GcRUEdq3a_CVKGVcKw _xcGkgMRUEdq3a_CVKGVcKw _xcGktsRUEdq3a_CVKGVcKw _xcGkocRUEdq3a_CVKGVcKw _xcSx4sRUEdq3a_CVKGVcKw _xcSxsMRUEdq3a_CVKGVcKw _xce_FsRUEdq3a_CVKGVcKw _xclFoMRUEdq3a_CVKGVcKw _xce_EMRUEdq3a_CVKGVcKw _xcGkssRUEdq3a_CVKGVcKw _xcSx9sRUEdq3a_CVKGVcKw _xcAeAsRUEdq3a_CVKGVcKw _xcY4csRUEdq3a_CVKGVcKw _xce_DcRUEdq3a_CVKGVcKw _xcSxysRUEdq3a_CVKGVcKw _xcGkjcRUEdq3a_CVKGVcKw _xclFkcRUEdq3a_CVKGVcKw _xcMrIsRUEdq3a_CVKGVcKw _xclFmcRUEdq3a_CVKGVcKw _xcGkcMRUEdq3a_CVKGVcKw _xce-_8RUEdq3a_CVKGVcKw _xce_EcRUEdq3a_CVKGVcKw _xce-9cRUEdq3a_CVKGVcKw _xcSxucRUEdq3a_CVKGVcKw _xcMrQ8RUEdq3a_CVKGVcKw _xcMrPMRUEdq3a_CVKGVcKw _xcY4dcRUEdq3a_CVKGVcKw _xb6XU8RUEdq3a_CVKGVcKw _xcGkhsRUEdq3a_CVKGVcKw _xcY4acRUEdq3a_CVKGVcKw _xcGkc8RUEdq3a_CVKGVcKw _xclFl8RUEdq3a_CVKGVcKw _xcMrMsRUEdq3a_CVKGVcKw _xcSx2cRUEdq3a_CVKGVcKw _xce_C8RUEdq3a_CVKGVcKw _xcY4YsRUEdq3a_CVKGVcKw _xcSxwcRUEdq3a_CVKGVcKw _xcY4bMRUEdq3a_CVKGVcKw _xce_CMRUEdq3a_CVKGVcKw _xcGkfMRUEdq3a_CVKGVcKw _xcSx5cRUEdq3a_CVKGVcKw _xcAeIMRUEdq3a_CVKGVcKw _xcMrJsRUEdq3a_CVKGVcKw _xcAd1cRUEdq3a_CVKGVcKw _xce-_MRUEdq3a_CVKGVcKw _xcMrNsRUEdq3a_CVKGVcKw _xclFlsRUEdq3a_CVKGVcKw _xclFsMRUEdq3a_CVKGVcKw _xb6XR8RUEdq3a_CVKGVcKw _xce_BMRUEdq3a_CVKGVcKw _xce-98RUEdq3a_CVKGVcKw _xclFrcRUEdq3a_CVKGVcKw _xb6XP8RUEdq3a_CVKGVcKw _xcGkmcRUEdq3a_CVKGVcKw _xb6XVsRUEdq3a_CVKGVcKw _xcY4ZMRUEdq3a_CVKGVcKw _xcAeBsRUEdq3a_CVKGVcKw _xcY4WsRUEdq3a_CVKGVcKw _xclFnsRUEdq3a_CVKGVcKw _xcY4XcRUEdq3a_CVKGVcKw _xclFrMRUEdq3a_CVKGVcKw _xcY4Z8RUEdq3a_CVKGVcKw _xcrMMsRUEdq3a_CVKGVcKw _xce_AMRUEdq3a_CVKGVcKw _xcSx8sRUEdq3a_CVKGVcKw _xcY4U8RUEdq3a_CVKGVcKw _xcY4ccRUEdq3a_CVKGVcKw _xcSxzsRUEdq3a_CVKGVcKw _xclFpMRUEdq3a_CVKGVcKw _xclFmsRUEdq3a_CVKGVcKw _xcSx1cRUEdq3a_CVKGVcKw _xcAd0cRUEdq3a_CVKGVcKw _xcMrEMRUEdq3a_CVKGVcKw _xcGkncRUEdq3a_CVKGVcKw _xclFkMRUEdq3a_CVKGVcKw _xcSxvcRUEdq3a_CVKGVcKw _xce_A8RUEdq3a_CVKGVcKw _xcY4UMRUEdq3a_CVKGVcKw _xce_B8RUEdq3a_CVKGVcKw _xcAeF8RUEdq3a_CVKGVcKw _xclFqcRUEdq3a_CVKGVcKw _xce--sRUEdq3a_CVKGVcKw _xcGkicRUEdq3a_CVKGVcKw _xb6XQ8RUEdq3a_CVKGVcKw _xcAd2cRUEdq3a_CVKGVcKw _xce_FMRUEdq3a_CVKGVcKw _xcY4bsRUEdq3a_CVKGVcKw _xcMrR8RUEdq3a_CVKGVcKw _xcY4X8RUEdq3a_CVKGVcKw _xcAd3cRUEdq3a_CVKGVcKw _xcAeE8RUEdq3a_CVKGVcKw _xcSx0cRUEdq3a_CVKGVcKw _xclFlMRUEdq3a_CVKGVcKw _xcrMMMRUEdq3a_CVKGVcKw _xcAd8MRUEdq3a_CVKGVcKw _xcY4VcRUEdq3a_CVKGVcKw _xce-8MRUEdq3a_CVKGVcKw _xclFp8RUEdq3a_CVKGVcKw _xclFssRUEdq3a_CVKGVcKw _xcAd7MRUEdq3a_CVKGVcKw _xcGkecRUEdq3a_CVKGVcKw _xb6XWsRUEdq3a_CVKGVcKw _xce_G8RUEdq3a_CVKGVcKw _xcSx6cRUEdq3a_CVKGVcKw _xcSx-sRUEdq3a_CVKGVcKw _xce-8sRUEdq3a_CVKGVcKw _xb6XMMRUEdq3a_CVKGVcKw _xcY4WMRUEdq3a_CVKGVcKw _xcAeCsRUEdq3a_CVKGVcKw _xcGkpsRUEdq3a_CVKGVcKw _xclFo8RUEdq3a_CVKGVcKw _xcY4d8RUEdq3a_CVKGVcKw _xclFm8RUEdq3a_CVKGVcKw _xcMrQMRUEdq3a_CVKGVcKw _xcMrL8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbY8RUEdq3a_CVKGVcKw" source="UML::CommonBehaviors::BasicBehaviors" references="_xV-uesRUEdq3a_CVKGVcKw _xV4nysRUEdq3a_CVKGVcKw _xWE1D8RUEdq3a_CVKGVcKw _xWE1BsRUEdq3a_CVKGVcKw _xWE08MRUEdq3a_CVKGVcKw _xV-ufsRUEdq3a_CVKGVcKw _xV4n0sRUEdq3a_CVKGVcKw _xWE1DcRUEdq3a_CVKGVcKw _xV4n1cRUEdq3a_CVKGVcKw _xV4nxsRUEdq3a_CVKGVcKw _xWE08sRUEdq3a_CVKGVcKw _xWE0_8RUEdq3a_CVKGVcKw _xV-uWMRUEdq3a_CVKGVcKw _xWE1AsRUEdq3a_CVKGVcKw _xV4nwsRUEdq3a_CVKGVcKw _xWE1F8RUEdq3a_CVKGVcKw _TUPtYGveEdq4DLWZOhbdEA _xWE1AMRUEdq3a_CVKGVcKw _xV-udsRUEdq3a_CVKGVcKw _xWE1FMRUEdq3a_CVKGVcKw _xWE1CcRUEdq3a_CVKGVcKw _xWE0_MRUEdq3a_CVKGVcKw _iY7sMGvsEdqG6fBIPwe-mw _xV-uVMRUEdq3a_CVKGVcKw _xV4nv8RUEdq3a_CVKGVcKw _xWE1GcRUEdq3a_CVKGVcKw _xV-uY8RUEdq3a_CVKGVcKw _xWE098RUEdq3a_CVKGVcKw _xWE1BcRUEdq3a_CVKGVcKw _xV-uZ8RUEdq3a_CVKGVcKw _xWE0-sRUEdq3a_CVKGVcKw _xV4nzsRUEdq3a_CVKGVcKw _xWE1EsRUEdq3a_CVKGVcKw _rHT3YKOsEdqi_5gqUMOQtA _xWE1CsRUEdq3a_CVKGVcKw _xWE09cRUEdq3a_CVKGVcKw _ChRfcGveEdq4DLWZOhbdEA _xV-uc8RUEdq3a_CVKGVcKw _xV-ubMRUEdq3a_CVKGVcKw _xV-ub8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbZMRUEdq3a_CVKGVcKw" source="UML::Interactions::BasicInteractions" references="_xYqPCMRUEdq3a_CVKGVcKw _xYwVgcRUEdq3a_CVKGVcKw _xYeBxMRUEdq3a_CVKGVcKw _xYqPB8RUEdq3a_CVKGVcKw _xYkIc8RUEdq3a_CVKGVcKw _xYkIWsRUEdq3a_CVKGVcKw _xYeB1sRUEdq3a_CVKGVcKw _xYeBssRUEdq3a_CVKGVcKw _xYeB08RUEdq3a_CVKGVcKw _xYqO5cRUEdq3a_CVKGVcKw _xYeBwcRUEdq3a_CVKGVcKw _xYqO68RUEdq3a_CVKGVcKw _xYeByMRUEdq3a_CVKGVcKw _xYqO_8RUEdq3a_CVKGVcKw _xYR0oMRUEdq3a_CVKGVcKw _xYLt88RUEdq3a_CVKGVcKw _xYkIZMRUEdq3a_CVKGVcKw _xYqO-sRUEdq3a_CVKGVcKw _xYkISMRUEdq3a_CVKGVcKw _xYeBzMRUEdq3a_CVKGVcKw _xYX7M8RUEdq3a_CVKGVcKw _xYwVgMRUEdq3a_CVKGVcKw _xYR0lMRUEdq3a_CVKGVcKw _xYLt18RUEdq3a_CVKGVcKw _xYqO4sRUEdq3a_CVKGVcKw _xYkIZ8RUEdq3a_CVKGVcKw _xYR0YMRUEdq3a_CVKGVcKw _xYLt58RUEdq3a_CVKGVcKw _xYR0jMRUEdq3a_CVKGVcKw _xYwVnsRUEdq3a_CVKGVcKw _xYwVo8RUEdq3a_CVKGVcKw _xYX7KMRUEdq3a_CVKGVcKw _xYX7PsRUEdq3a_CVKGVcKw _xYqO5sRUEdq3a_CVKGVcKw _xYqO4MRUEdq3a_CVKGVcKw _xYwVjcRUEdq3a_CVKGVcKw _xYqPAcRUEdq3a_CVKGVcKw _xYkIacRUEdq3a_CVKGVcKw _xYwVlsRUEdq3a_CVKGVcKw _xYLt08RUEdq3a_CVKGVcKw _xYeBvcRUEdq3a_CVKGVcKw _xYX7SMRUEdq3a_CVKGVcKw _xYkIVsRUEdq3a_CVKGVcKw _xYwVlcRUEdq3a_CVKGVcKw _xYqPAsRUEdq3a_CVKGVcKw _xYkIccRUEdq3a_CVKGVcKw _xYqO6cRUEdq3a_CVKGVcKw _gfgNwGveEdq4DLWZOhbdEA _xYeBoMRUEdq3a_CVKGVcKw _xYLty8RUEdq3a_CVKGVcKw _xYqO_MRUEdq3a_CVKGVcKw _Y_jskGvtEdqG6fBIPwe-mw _xYLt68RUEdq3a_CVKGVcKw _xYX7JMRUEdq3a_CVKGVcKw _xYkIbcRUEdq3a_CVKGVcKw _xYX7HMRUEdq3a_CVKGVcKw _xYR0hsRUEdq3a_CVKGVcKw _xYwVn8RUEdq3a_CVKGVcKw _xYLt78RUEdq3a_CVKGVcKw _xYqPA8RUEdq3a_CVKGVcKw _xYqO9MRUEdq3a_CVKGVcKw _xYkIYsRUEdq3a_CVKGVcKw _xYqO78RUEdq3a_CVKGVcKw _xYkIX8RUEdq3a_CVKGVcKw _xYeBqcRUEdq3a_CVKGVcKw _xYqPBMRUEdq3a_CVKGVcKw _xYX7B8RUEdq3a_CVKGVcKw _xYqO7cRUEdq3a_CVKGVcKw _xYR0a8RUEdq3a_CVKGVcKw _xYeBtsRUEdq3a_CVKGVcKw _xYR0kMRUEdq3a_CVKGVcKw _xYX7L8RUEdq3a_CVKGVcKw _xYX7IMRUEdq3a_CVKGVcKw _xYLtz8RUEdq3a_CVKGVcKw _xYX7RMRUEdq3a_CVKGVcKw _xYR0Y8RUEdq3a_CVKGVcKw _xYwVjMRUEdq3a_CVKGVcKw _xYwVhcRUEdq3a_CVKGVcKw _xYqO9cRUEdq3a_CVKGVcKw _xYR0mMRUEdq3a_CVKGVcKw _xYkIasRUEdq3a_CVKGVcKw _xYeBz8RUEdq3a_CVKGVcKw _xYX7EcRUEdq3a_CVKGVcKw _xYqO7MRUEdq3a_CVKGVcKw _xYR0nMRUEdq3a_CVKGVcKw _xYwVkMRUEdq3a_CVKGVcKw _xYX7AMRUEdq3a_CVKGVcKw _xYX7A8RUEdq3a_CVKGVcKw _xYX7OsRUEdq3a_CVKGVcKw _xYX7LMRUEdq3a_CVKGVcKw _xYwVicRUEdq3a_CVKGVcKw _xYqO8sRUEdq3a_CVKGVcKw _xYeBucRUEdq3a_CVKGVcKw _xYwViMRUEdq3a_CVKGVcKw _xYwVhMRUEdq3a_CVKGVcKw _xYkIWMRUEdq3a_CVKGVcKw _xYeBo8RUEdq3a_CVKGVcKw _xYR0icRUEdq3a_CVKGVcKw _xYwVm8RUEdq3a_CVKGVcKw _xYwVmcRUEdq3a_CVKGVcKw _xYX7FcRUEdq3a_CVKGVcKw _xYwVksRUEdq3a_CVKGVcKw _xYkIXcRUEdq3a_CVKGVcKw _xYX7GcRUEdq3a_CVKGVcKw _xYwVosRUEdq3a_CVKGVcKw _xYX7C8RUEdq3a_CVKGVcKw _xYLt28RUEdq3a_CVKGVcKw _xYkIbsRUEdq3a_CVKGVcKw _xYeBr8RUEdq3a_CVKGVcKw _xYqO98RUEdq3a_CVKGVcKw _xYLtx8RUEdq3a_CVKGVcKw _xYX7NsRUEdq3a_CVKGVcKw _xYX7S8RUEdq3a_CVKGVcKw _xYR0Z8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbZcRUEdq3a_CVKGVcKw" source="UML::Activities::CompleteStructuredActivities" references="_xgmC7cRUEdq3a_CVKGVcKw _xgf8UMRUEdq3a_CVKGVcKw _xgyQKMRUEdq3a_CVKGVcKw _xgmDAMRUEdq3a_CVKGVcKw _xWqD9MRUEdq3a_CVKGVcKw _xgsJjcRUEdq3a_CVKGVcKw _xgsJicRUEdq3a_CVKGVcKw _xgmDB8RUEdq3a_CVKGVcKw _xX_gocRUEdq3a_CVKGVcKw _xgsJgsRUEdq3a_CVKGVcKw _xWqD0cRUEdq3a_CVKGVcKw _xgsJhMRUEdq3a_CVKGVcKw _xgyQLcRUEdq3a_CVKGVcKw _xWdPhsRUEdq3a_CVKGVcKw _xgyQIMRUEdq3a_CVKGVcKw _xX5aDMRUEdq3a_CVKGVcKw _xgyQIcRUEdq3a_CVKGVcKw _xX5Z98RUEdq3a_CVKGVcKw _xgmC8cRUEdq3a_CVKGVcKw _xgyQJcRUEdq3a_CVKGVcKw _xgf8R8RUEdq3a_CVKGVcKw _xWqD3sRUEdq3a_CVKGVcKw _xgyQJMRUEdq3a_CVKGVcKw _xgmC-cRUEdq3a_CVKGVcKw _xgmC4MRUEdq3a_CVKGVcKw _xgsJjMRUEdq3a_CVKGVcKw _xgsJh8RUEdq3a_CVKGVcKw _xgyQKsRUEdq3a_CVKGVcKw _xWqDwMRUEdq3a_CVKGVcKw _xYFnN8RUEdq3a_CVKGVcKw _xgmC9cRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbZsRUEdq3a_CVKGVcKw" source="UML::UseCases" references="_xY8i38RUEdq3a_CVKGVcKw _xZCpgMRUEdq3a_CVKGVcKw _xY8i5sRUEdq3a_CVKGVcKw _xY2cOcRUEdq3a_CVKGVcKw _xY8iz8RUEdq3a_CVKGVcKw _xZCpeMRUEdq3a_CVKGVcKw _xZCpdMRUEdq3a_CVKGVcKw _xZCpaMRUEdq3a_CVKGVcKw _xZCpfcRUEdq3a_CVKGVcKw _xY8i28RUEdq3a_CVKGVcKw _xY8i18RUEdq3a_CVKGVcKw _xY2cRcRUEdq3a_CVKGVcKw _xY2cMcRUEdq3a_CVKGVcKw _xY2cKsRUEdq3a_CVKGVcKw _xZCpcMRUEdq3a_CVKGVcKw _xY8i7MRUEdq3a_CVKGVcKw _xZCpbcRUEdq3a_CVKGVcKw _xZCpcsRUEdq3a_CVKGVcKw _xY8iwMRUEdq3a_CVKGVcKw _6UV2QGwJEdq7X4sGURiZYA _xY2cNcRUEdq3a_CVKGVcKw _xY2cQcRUEdq3a_CVKGVcKw _xZCpe8RUEdq3a_CVKGVcKw _xZCpasRUEdq3a_CVKGVcKw _xY2cIcRUEdq3a_CVKGVcKw _xZCpY8RUEdq3a_CVKGVcKw _xY2cPcRUEdq3a_CVKGVcKw _xY8i08RUEdq3a_CVKGVcKw _xY2cScRUEdq3a_CVKGVcKw _xY8i8cRUEdq3a_CVKGVcKw _xZCpZcRUEdq3a_CVKGVcKw _xZCpd8RUEdq3a_CVKGVcKw _xZCpYMRUEdq3a_CVKGVcKw _xY8i9cRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbZ8RUEdq3a_CVKGVcKw" source="UML::StateMachines::BehaviorStateMachines" references="_xdiH9cRUEdq3a_CVKGVcKw _xdcBN8RUEdq3a_CVKGVcKw _xd0b08RUEdq3a_CVKGVcKw _xduVL8RUEdq3a_CVKGVcKw _xdP0YcRUEdq3a_CVKGVcKw _xdJtfsRUEdq3a_CVKGVcKw _xdP0PMRUEdq3a_CVKGVcKw _xd6iUsRUEdq3a_CVKGVcKw _xdJtUMRUEdq3a_CVKGVcKw _xdV6sMRUEdq3a_CVKGVcKw _xdiH-cRUEdq3a_CVKGVcKw _xduVG8RUEdq3a_CVKGVcKw _xdP0DcRUEdq3a_CVKGVcKw _xdP0VcRUEdq3a_CVKGVcKw _xd0b0MRUEdq3a_CVKGVcKw _xdP0BMRUEdq3a_CVKGVcKw _xdcBO8RUEdq3a_CVKGVcKw _xdcBZcRUEdq3a_CVKGVcKw _xd6iW8RUEdq3a_CVKGVcKw _xd0b1cRUEdq3a_CVKGVcKw _xdiIEsRUEdq3a_CVKGVcKw _xd0bxMRUEdq3a_CVKGVcKw _xdP0CsRUEdq3a_CVKGVcKw _xd0bv8RUEdq3a_CVKGVcKw _xdoOmcRUEdq3a_CVKGVcKw _xdoOlMRUEdq3a_CVKGVcKw _xd0bssRUEdq3a_CVKGVcKw _xdJthMRUEdq3a_CVKGVcKw _xdcBM8RUEdq3a_CVKGVcKw _xdoOmMRUEdq3a_CVKGVcKw _xduVFsRUEdq3a_CVKGVcKw _xdV6vMRUEdq3a_CVKGVcKw _xd6iWMRUEdq3a_CVKGVcKw _xdoOmsRUEdq3a_CVKGVcKw _xdP0RsRUEdq3a_CVKGVcKw _xd0bycRUEdq3a_CVKGVcKw _xduVHcRUEdq3a_CVKGVcKw _xd0bxsRUEdq3a_CVKGVcKw _xdiH5cRUEdq3a_CVKGVcKw _xd6iUMRUEdq3a_CVKGVcKw _xduVGMRUEdq3a_CVKGVcKw _xdiIAcRUEdq3a_CVKGVcKw _xdP0OMRUEdq3a_CVKGVcKw _xdP0QcRUEdq3a_CVKGVcKw _xdJta8RUEdq3a_CVKGVcKw _xdcBacRUEdq3a_CVKGVcKw _xdiIHsRUEdq3a_CVKGVcKw _xdJtd8RUEdq3a_CVKGVcKw _xd6iVcRUEdq3a_CVKGVcKw _xdP0MMRUEdq3a_CVKGVcKw _xd0btcRUEdq3a_CVKGVcKw _xdJtb8RUEdq3a_CVKGVcKw _xdV6zMRUEdq3a_CVKGVcKw _xd0by8RUEdq3a_CVKGVcKw _xduVJsRUEdq3a_CVKGVcKw _xdP0W8RUEdq3a_CVKGVcKw _xdP0UMRUEdq3a_CVKGVcKw _xdiH4cRUEdq3a_CVKGVcKw _xdJtX8RUEdq3a_CVKGVcKw _xdPz8MRUEdq3a_CVKGVcKw _xd6iXMRUEdq3a_CVKGVcKw _xdoOhsRUEdq3a_CVKGVcKw _xd0bwcRUEdq3a_CVKGVcKw _xdP0LMRUEdq3a_CVKGVcKw _xdP0HMRUEdq3a_CVKGVcKw _xd0busRUEdq3a_CVKGVcKw _xdV6kMRUEdq3a_CVKGVcKw _xdiIDcRUEdq3a_CVKGVcKw _xdV62cRUEdq3a_CVKGVcKw _xdJtZ8RUEdq3a_CVKGVcKw _xdP0JMRUEdq3a_CVKGVcKw _xdiH_cRUEdq3a_CVKGVcKw _xduVKMRUEdq3a_CVKGVcKw _xdcBRMRUEdq3a_CVKGVcKw _xdV6wMRUEdq3a_CVKGVcKw _xdcBMMRUEdq3a_CVKGVcKw _xdoOcMRUEdq3a_CVKGVcKw _xdcBbcRUEdq3a_CVKGVcKw _xdP0GMRUEdq3a_CVKGVcKw _xduVEMRUEdq3a_CVKGVcKw _xduVIMRUEdq3a_CVKGVcKw _xduVFMRUEdq3a_CVKGVcKw _xd0bt8RUEdq3a_CVKGVcKw _xdoOlsRUEdq3a_CVKGVcKw _xdiH2cRUEdq3a_CVKGVcKw _xdV6qcRUEdq3a_CVKGVcKw _xd0bsMRUEdq3a_CVKGVcKw _xdP0KMRUEdq3a_CVKGVcKw _xdiICcRUEdq3a_CVKGVcKw _xdV6yMRUEdq3a_CVKGVcKw _xd0bvMRUEdq3a_CVKGVcKw _xdiIBcRUEdq3a_CVKGVcKw _xdV60cRUEdq3a_CVKGVcKw _xduVIcRUEdq3a_CVKGVcKw _xdP0EMRUEdq3a_CVKGVcKw _xdP0NMRUEdq3a_CVKGVcKw _xdP0IMRUEdq3a_CVKGVcKw _xduVEcRUEdq3a_CVKGVcKw _xduVKsRUEdq3a_CVKGVcKw _xdV6tMRUEdq3a_CVKGVcKw _xdiH0MRUEdq3a_CVKGVcKw _xdiIGMRUEdq3a_CVKGVcKw _xdV6rMRUEdq3a_CVKGVcKw _xduVLMRUEdq3a_CVKGVcKw _xd6iV8RUEdq3a_CVKGVcKw _xd0bzsRUEdq3a_CVKGVcKw _xdP0S8RUEdq3a_CVKGVcKw _xduVMcRUEdq3a_CVKGVcKw _xdV6uMRUEdq3a_CVKGVcKw _xdcBP8RUEdq3a_CVKGVcKw _xdcBYsRUEdq3a_CVKGVcKw _xdV6xMRUEdq3a_CVKGVcKw _xdiH3cRUEdq3a_CVKGVcKw _xdP0FMRUEdq3a_CVKGVcKw _xdJtY8RUEdq3a_CVKGVcKw _xdP0B8RUEdq3a_CVKGVcKw _xZO2wcRUEdq3a_CVKGVcKw _xduVJMRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbaMRUEdq3a_CVKGVcKw" source="UML::Interactions::Fragments" references="_xarBIsRUEdq3a_CVKGVcKw _xarBGsRUEdq3a_CVKGVcKw _xb0Qr8RUEdq3a_CVKGVcKw _xak6gcRUEdq3a_CVKGVcKw _xb0QrsRUEdq3a_CVKGVcKw _xb0QoMRUEdq3a_CVKGVcKw _xaxH5sRUEdq3a_CVKGVcKw _xb0QqsRUEdq3a_CVKGVcKw _xaxHysRUEdq3a_CVKGVcKw _xYR0YMRUEdq3a_CVKGVcKw _xaxHsMRUEdq3a_CVKGVcKw _xb0QkMRUEdq3a_CVKGVcKw _xb0QtcRUEdq3a_CVKGVcKw _xaxH08RUEdq3a_CVKGVcKw _xb0Qo8RUEdq3a_CVKGVcKw _xarBP8RUEdq3a_CVKGVcKw _xarBHsRUEdq3a_CVKGVcKw _xaxH78RUEdq3a_CVKGVcKw _xbuKCsRUEdq3a_CVKGVcKw _xak6kMRUEdq3a_CVKGVcKw _xbuKDMRUEdq3a_CVKGVcKw _xaxHxsRUEdq3a_CVKGVcKw _xaxH4sRUEdq3a_CVKGVcKw _xb0QrcRUEdq3a_CVKGVcKw _xb0QksRUEdq3a_CVKGVcKw _xaxHwsRUEdq3a_CVKGVcKw _xb0QnsRUEdq3a_CVKGVcKw _xb0QmcRUEdq3a_CVKGVcKw _xb0QpcRUEdq3a_CVKGVcKw _xaxH38RUEdq3a_CVKGVcKw _xb0Qq8RUEdq3a_CVKGVcKw _xbuKDsRUEdq3a_CVKGVcKw _xb0QqMRUEdq3a_CVKGVcKw _xak6nMRUEdq3a_CVKGVcKw _xaxHz8RUEdq3a_CVKGVcKw _xarBN8RUEdq3a_CVKGVcKw _xak6lMRUEdq3a_CVKGVcKw _xb0QtMRUEdq3a_CVKGVcKw _xarBO8RUEdq3a_CVKGVcKw _xb0Qm8RUEdq3a_CVKGVcKw _xb0QssRUEdq3a_CVKGVcKw _xarBEMRUEdq3a_CVKGVcKw _xb0QlsRUEdq3a_CVKGVcKw _xak6mMRUEdq3a_CVKGVcKw _xbuJ8MRUEdq3a_CVKGVcKw _xYLt28RUEdq3a_CVKGVcKw _xYLtx8RUEdq3a_CVKGVcKw _xaxHv8RUEdq3a_CVKGVcKw _xb0QlcRUEdq3a_CVKGVcKw _xbuKC8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbacRUEdq3a_CVKGVcKw" source="UML::CompositeStructures::InternalStructures" references="_xXnGJsRUEdq3a_CVKGVcKw _xXnGKcRUEdq3a_CVKGVcKw _xXnGIsRUEdq3a_CVKGVcKw _xXnGAcRUEdq3a_CVKGVcKw _xXa458RUEdq3a_CVKGVcKw _xXnGHcRUEdq3a_CVKGVcKw _xRrdS8RUEdq3a_CVKGVcKw _xXnGG8RUEdq3a_CVKGVcKw _FQiVsGwYEdqHKKVoxc0dlA _xXg_ccRUEdq3a_CVKGVcKw _xXnGAMRUEdq3a_CVKGVcKw _xXa478RUEdq3a_CVKGVcKw _xXa408RUEdq3a_CVKGVcKw _6UV2QGwJEdq7X4sGURiZYA _Jp_1oGveEdq4DLWZOhbdEA _xXnGBMRUEdq3a_CVKGVcKw _xXnGDMRUEdq3a_CVKGVcKw _xXg_dcRUEdq3a_CVKGVcKw _xXg_eMRUEdq3a_CVKGVcKw _xXnGC8RUEdq3a_CVKGVcKw _xXa418RUEdq3a_CVKGVcKw _xXnGGMRUEdq3a_CVKGVcKw _xXg_acRUEdq3a_CVKGVcKw _xXnGFMRUEdq3a_CVKGVcKw _xXa428RUEdq3a_CVKGVcKw _xXg_ZcRUEdq3a_CVKGVcKw _xXnGEcRUEdq3a_CVKGVcKw _xXnGJcRUEdq3a_CVKGVcKw _xXa468RUEdq3a_CVKGVcKw _aOgw0GveEdq4DLWZOhbdEA _xXnGIMRUEdq3a_CVKGVcKw _xXnGD8RUEdq3a_CVKGVcKw _xXnGCMRUEdq3a_CVKGVcKw _xXg_bcRUEdq3a_CVKGVcKw _xPS3iMRUEdq3a_CVKGVcKw _xRrdSMRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbasRUEdq3a_CVKGVcKw" source="UML::AuxiliaryConstructs::Templates" references="_xh8GtsRUEdq3a_CVKGVcKw _xiCNVMRUEdq3a_CVKGVcKw _xh8G4cRUEdq3a_CVKGVcKw _xhjFNcRUEdq3a_CVKGVcKw _xh2AIMRUEdq3a_CVKGVcKw _xhjFKcRUEdq3a_CVKGVcKw _xiIT88RUEdq3a_CVKGVcKw _xPxYp8RUEdq3a_CVKGVcKw _xiIT-cRUEdq3a_CVKGVcKw _xh8GvcRUEdq3a_CVKGVcKw _xhpL8MRUEdq3a_CVKGVcKw _xhjFQ8RUEdq3a_CVKGVcKw _xiOaksRUEdq3a_CVKGVcKw _xiOapMRUEdq3a_CVKGVcKw _xhjFWcRUEdq3a_CVKGVcKw _xiCNYsRUEdq3a_CVKGVcKw _xiOal8RUEdq3a_CVKGVcKw _xhpLzsRUEdq3a_CVKGVcKw _xhjFOcRUEdq3a_CVKGVcKw _xhpLwMRUEdq3a_CVKGVcKw _xhc-iMRUEdq3a_CVKGVcKw _xiOalcRUEdq3a_CVKGVcKw _xhpL1sRUEdq3a_CVKGVcKw _xhpL9MRUEdq3a_CVKGVcKw _xh8G08RUEdq3a_CVKGVcKw _xiOanMRUEdq3a_CVKGVcKw _xhv5dcRUEdq3a_CVKGVcKw _xiIUBsRUEdq3a_CVKGVcKw _xh8Gy8RUEdq3a_CVKGVcKw _xh8GwcRUEdq3a_CVKGVcKw _M4X2IGveEdq4DLWZOhbdEA _xiOapcRUEdq3a_CVKGVcKw _xiIUAMRUEdq3a_CVKGVcKw _xhpL4cRUEdq3a_CVKGVcKw _xiOaocRUEdq3a_CVKGVcKw _xh8Gz8RUEdq3a_CVKGVcKw _xh2AEMRUEdq3a_CVKGVcKw _xhpL-MRUEdq3a_CVKGVcKw _xiCNV8RUEdq3a_CVKGVcKw _xiOamsRUEdq3a_CVKGVcKw _xiIT_cRUEdq3a_CVKGVcKw _csVgUGvtEdqG6fBIPwe-mw _KxRzgGvuEdqG6fBIPwe-mw _xiOamMRUEdq3a_CVKGVcKw _6UV2QGwJEdq7X4sGURiZYA _Jp_1oGveEdq4DLWZOhbdEA _jKxnwGwLEdq7X4sGURiZYA _xiCNYcRUEdq3a_CVKGVcKw _xhpL0sRUEdq3a_CVKGVcKw _xXg_dcRUEdq3a_CVKGVcKw _xh2AJMRUEdq3a_CVKGVcKw _xhjFLcRUEdq3a_CVKGVcKw _xhjFUMRUEdq3a_CVKGVcKw _xiOao8RUEdq3a_CVKGVcKw _xhjFXcRUEdq3a_CVKGVcKw _xh8GucRUEdq3a_CVKGVcKw _xhc-lcRUEdq3a_CVKGVcKw _xhjFJcRUEdq3a_CVKGVcKw _xhpL2cRUEdq3a_CVKGVcKw _xhc-kMRUEdq3a_CVKGVcKw _xiIT-sRUEdq3a_CVKGVcKw _xhpLxsRUEdq3a_CVKGVcKw _xiIT-MRUEdq3a_CVKGVcKw _xiCNWsRUEdq3a_CVKGVcKw _xhc-gsRUEdq3a_CVKGVcKw _xiIT9cRUEdq3a_CVKGVcKw _xhjFR8RUEdq3a_CVKGVcKw _xiOakMRUEdq3a_CVKGVcKw _xh8G18RUEdq3a_CVKGVcKw _xh2AHMRUEdq3a_CVKGVcKw _xhpLysRUEdq3a_CVKGVcKw _xhc-jMRUEdq3a_CVKGVcKw _xiCNUsRUEdq3a_CVKGVcKw _xiCNU8RUEdq3a_CVKGVcKw _xiCNX8RUEdq3a_CVKGVcKw _xhpL6MRUEdq3a_CVKGVcKw _xhv5fcRUEdq3a_CVKGVcKw _xiCNW8RUEdq3a_CVKGVcKw _xiOapsRUEdq3a_CVKGVcKw _xhpL7cRUEdq3a_CVKGVcKw _xhjFS8RUEdq3a_CVKGVcKw _xiIT8MRUEdq3a_CVKGVcKw _xiIUA8RUEdq3a_CVKGVcKw _xh2AE8RUEdq3a_CVKGVcKw _-cvRAGvzEdq7X4sGURiZYA _xiCNXMRUEdq3a_CVKGVcKw _xh8G5cRUEdq3a_CVKGVcKw _xiOan8RUEdq3a_CVKGVcKw _9keOQGvdEdq4DLWZOhbdEA _xhjFMcRUEdq3a_CVKGVcKw _xh8GsMRUEdq3a_CVKGVcKw _xh8G6MRUEdq3a_CVKGVcKw _xhjFYcRUEdq3a_CVKGVcKw _xhpL_sRUEdq3a_CVKGVcKw _xiIT8cRUEdq3a_CVKGVcKw _xhpL3cRUEdq3a_CVKGVcKw _xiCNXsRUEdq3a_CVKGVcKw _xhv5hsRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUba8RUEdq3a_CVKGVcKw" source="UML::Actions::BasicActions" references="_xWK7q8RUEdq3a_CVKGVcKw _xWXJAMRUEdq3a_CVKGVcKw _xWXJBsRUEdq3a_CVKGVcKw _xWK7vsRUEdq3a_CVKGVcKw _xWK7tcRUEdq3a_CVKGVcKw _xWXI6cRUEdq3a_CVKGVcKw _xWdPcMRUEdq3a_CVKGVcKw _xWK7o8RUEdq3a_CVKGVcKw _xWRCVsRUEdq3a_CVKGVcKw _xWXI4MRUEdq3a_CVKGVcKw _xWdPcsRUEdq3a_CVKGVcKw _xWRCecRUEdq3a_CVKGVcKw _xWXI48RUEdq3a_CVKGVcKw _xWRCPsRUEdq3a_CVKGVcKw _xWXI5MRUEdq3a_CVKGVcKw _xWXI28RUEdq3a_CVKGVcKw _xWXJDcRUEdq3a_CVKGVcKw _xWXI98RUEdq3a_CVKGVcKw _xWK7n8RUEdq3a_CVKGVcKw _xWRCacRUEdq3a_CVKGVcKw _xWRCQcRUEdq3a_CVKGVcKw _xWXJCcRUEdq3a_CVKGVcKw _xWXI38RUEdq3a_CVKGVcKw _xWXI-sRUEdq3a_CVKGVcKw _xWXI-8RUEdq3a_CVKGVcKw _xWRCbcRUEdq3a_CVKGVcKw _xWXI18RUEdq3a_CVKGVcKw _xWRCZcRUEdq3a_CVKGVcKw _xWK7lMRUEdq3a_CVKGVcKw _xWRCTsRUEdq3a_CVKGVcKw _xWXI58RUEdq3a_CVKGVcKw _xWXI7MRUEdq3a_CVKGVcKw _xWXI-MRUEdq3a_CVKGVcKw _xWXI8sRUEdq3a_CVKGVcKw _xWXJAsRUEdq3a_CVKGVcKw _xWRCMsRUEdq3a_CVKGVcKw _xWK7p8RUEdq3a_CVKGVcKw _xWK7u8RUEdq3a_CVKGVcKw _xWK7uMRUEdq3a_CVKGVcKw _xWXJCsRUEdq3a_CVKGVcKw _xWK7m8RUEdq3a_CVKGVcKw _xWXI8cRUEdq3a_CVKGVcKw _xWXI0MRUEdq3a_CVKGVcKw _xWK7l8RUEdq3a_CVKGVcKw _xWXJBcRUEdq3a_CVKGVcKw _xWK7scRUEdq3a_CVKGVcKw _xWXI08RUEdq3a_CVKGVcKw _xWXJC8RUEdq3a_CVKGVcKw _xWRCUsRUEdq3a_CVKGVcKw _xWXI_cRUEdq3a_CVKGVcKw _xWRCRcRUEdq3a_CVKGVcKw _xWXI7sRUEdq3a_CVKGVcKw _xWXI9cRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbbMRUEdq3a_CVKGVcKw" source="UML::CommonBehaviors::SimpleTime" references="_xc9gFsRUEdq3a_CVKGVcKw _xc3ZlsRUEdq3a_CVKGVcKw _xcxS6sRUEdq3a_CVKGVcKw _xcxTAMRUEdq3a_CVKGVcKw _xc9gIsRUEdq3a_CVKGVcKw _xc3ZgsRUEdq3a_CVKGVcKw _xc9gKMRUEdq3a_CVKGVcKw _xc9gHcRUEdq3a_CVKGVcKw _xcxS-cRUEdq3a_CVKGVcKw _xc9gGcRUEdq3a_CVKGVcKw _xc9gEsRUEdq3a_CVKGVcKw _xZbD5sRUEdq3a_CVKGVcKw _xc9gE8RUEdq3a_CVKGVcKw _xc9gJ8RUEdq3a_CVKGVcKw _xcxS8MRUEdq3a_CVKGVcKw _xcrMQ8RUEdq3a_CVKGVcKw _xc9gJsRUEdq3a_CVKGVcKw _xc9gH8RUEdq3a_CVKGVcKw _xcxS18RUEdq3a_CVKGVcKw _xZO2x8RUEdq3a_CVKGVcKw _xcrMOcRUEdq3a_CVKGVcKw _xcxS5sRUEdq3a_CVKGVcKw _xcxTA8RUEdq3a_CVKGVcKw _xc3ZjMRUEdq3a_CVKGVcKw _xc9gIMRUEdq3a_CVKGVcKw _xcxS08RUEdq3a_CVKGVcKw _xc9gJcRUEdq3a_CVKGVcKw _xcxS1cRUEdq3a_CVKGVcKw _xc3ZdcRUEdq3a_CVKGVcKw _xc3Zl8RUEdq3a_CVKGVcKw _xc3Ze8RUEdq3a_CVKGVcKw _xcxS9MRUEdq3a_CVKGVcKw _xcxS6MRUEdq3a_CVKGVcKw _xdDmscRUEdq3a_CVKGVcKw _xcrMNcRUEdq3a_CVKGVcKw _xc9gJMRUEdq3a_CVKGVcKw _xc3ZkcRUEdq3a_CVKGVcKw _xc9gIcRUEdq3a_CVKGVcKw _xc9gI8RUEdq3a_CVKGVcKw _xZbD6MRUEdq3a_CVKGVcKw _xcxS_MRUEdq3a_CVKGVcKw _xc9gEMRUEdq3a_CVKGVcKw _xcxS48RUEdq3a_CVKGVcKw _-Ixo8H4XEdq7cMP_l1l5Gg _xc3ZeMRUEdq3a_CVKGVcKw _xcxS0MRUEdq3a_CVKGVcKw _xc9gGMRUEdq3a_CVKGVcKw _xc3ZiMRUEdq3a_CVKGVcKw _xc3ZlMRUEdq3a_CVKGVcKw _xc3ZmcRUEdq3a_CVKGVcKw _xcxS2sRUEdq3a_CVKGVcKw _xcrMP8RUEdq3a_CVKGVcKw _xcxTB8RUEdq3a_CVKGVcKw _xc9gGsRUEdq3a_CVKGVcKw _xc9gG8RUEdq3a_CVKGVcKw _xc9gKcRUEdq3a_CVKGVcKw _xc3Zk8RUEdq3a_CVKGVcKw _xc3Zf8RUEdq3a_CVKGVcKw _xcxS3sRUEdq3a_CVKGVcKw _xc9gFcRUEdq3a_CVKGVcKw _xdDmsMRUEdq3a_CVKGVcKw _xc9gHMRUEdq3a_CVKGVcKw _xZO2wcRUEdq3a_CVKGVcKw _DylKEH4YEdq7cMP_l1l5Gg"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbbcRUEdq3a_CVKGVcKw" source="UML::CommonBehaviors::Communications" references="_xZO2uMRUEdq3a_CVKGVcKw _xZO2zsRUEdq3a_CVKGVcKw _xZbD6cRUEdq3a_CVKGVcKw _Pu3O0HL0EdqziYxiZo0YtA _xZU9UcRUEdq3a_CVKGVcKw _xZbD9sRUEdq3a_CVKGVcKw _xZbD48RUEdq3a_CVKGVcKw _xZIwEMRUEdq3a_CVKGVcKw _xZbD5sRUEdq3a_CVKGVcKw _xZU9X8RUEdq3a_CVKGVcKw _xZO2xMRUEdq3a_CVKGVcKw _xZO2qMRUEdq3a_CVKGVcKw _xZIwCcRUEdq3a_CVKGVcKw _xRxj3MRUEdq3a_CVKGVcKw _xZO2x8RUEdq3a_CVKGVcKw _xZIwHMRUEdq3a_CVKGVcKw _xZbD7sRUEdq3a_CVKGVcKw _xZU9QMRUEdq3a_CVKGVcKw _xZIwBsRUEdq3a_CVKGVcKw _xZbD68RUEdq3a_CVKGVcKw _xZO2oMRUEdq3a_CVKGVcKw _M4X2IGveEdq4DLWZOhbdEA _xZbD-sRUEdq3a_CVKGVcKw _xZU9VcRUEdq3a_CVKGVcKw _xZbD8cRUEdq3a_CVKGVcKw _xRxj3cRUEdq3a_CVKGVcKw _xZU9XMRUEdq3a_CVKGVcKw _xZO2ssRUEdq3a_CVKGVcKw _xZO2o8RUEdq3a_CVKGVcKw _iY7sMGvsEdqG6fBIPwe-mw _8Ugn8GvtEdqG6fBIPwe-mw _xZbD6MRUEdq3a_CVKGVcKw _xZbD4MRUEdq3a_CVKGVcKw _xZbD9MRUEdq3a_CVKGVcKw _xZIwGcRUEdq3a_CVKGVcKw _xZO2y8RUEdq3a_CVKGVcKw _00owUGvdEdq4DLWZOhbdEA _xZIwDcRUEdq3a_CVKGVcKw _xZO2vMRUEdq3a_CVKGVcKw _xZbD-cRUEdq3a_CVKGVcKw _rHT3YKOsEdqi_5gqUMOQtA _xZU9RMRUEdq3a_CVKGVcKw _xZU9WMRUEdq3a_CVKGVcKw _xZO2rMRUEdq3a_CVKGVcKw _xZU9WcRUEdq3a_CVKGVcKw _xZU9SMRUEdq3a_CVKGVcKw _xZU9UMRUEdq3a_CVKGVcKw _xZU9VMRUEdq3a_CVKGVcKw _xQP57cRUEdq3a_CVKGVcKw _xZO2v8RUEdq3a_CVKGVcKw _xZO2wcRUEdq3a_CVKGVcKw _xZIwAMRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbbsRUEdq3a_CVKGVcKw" source="UML::Actions::CompleteActions" references="_xfczhMRUEdq3a_CVKGVcKw _xfEZBcRUEdq3a_CVKGVcKw _xfEZJ8RUEdq3a_CVKGVcKw _xfQmPMRUEdq3a_CVKGVcKw _xf1N6cRUEdq3a_CVKGVcKw _xfczkMRUEdq3a_CVKGVcKw _xfEY_sRUEdq3a_CVKGVcKw _xf1N68RUEdq3a_CVKGVcKw _xfi6EMRUEdq3a_CVKGVcKw _xfKfnMRUEdq3a_CVKGVcKw _xfvHTcRUEdq3a_CVKGVcKw _xfQmX8RUEdq3a_CVKGVcKw _xfEY8sRUEdq3a_CVKGVcKw _xfvHQ8RUEdq3a_CVKGVcKw _xfczfMRUEdq3a_CVKGVcKw _xf1N6sRUEdq3a_CVKGVcKw _xfKfq8RUEdq3a_CVKGVcKw _xfWswMRUEdq3a_CVKGVcKw _xfi6EsRUEdq3a_CVKGVcKw _xfvHXcRUEdq3a_CVKGVcKw _xfvHRsRUEdq3a_CVKGVcKw _xfWs6sRUEdq3a_CVKGVcKw _xfczmMRUEdq3a_CVKGVcKw _xfi6GcRUEdq3a_CVKGVcKw _xfvHR8RUEdq3a_CVKGVcKw _xfQmIMRUEdq3a_CVKGVcKw _xfWs98RUEdq3a_CVKGVcKw _xfi6AcRUEdq3a_CVKGVcKw _xfvHSMRUEdq3a_CVKGVcKw _xfQmRMRUEdq3a_CVKGVcKw _xfi6AMRUEdq3a_CVKGVcKw _xfpArsRUEdq3a_CVKGVcKw _xfcznMRUEdq3a_CVKGVcKw _xf1N58RUEdq3a_CVKGVcKw _xfvHRcRUEdq3a_CVKGVcKw _xf1N4MRUEdq3a_CVKGVcKw _xfczqMRUEdq3a_CVKGVcKw _xfpApsRUEdq3a_CVKGVcKw _xfvHTsRUEdq3a_CVKGVcKw _xfEZCcRUEdq3a_CVKGVcKw _xfEZDcRUEdq3a_CVKGVcKw _xfvHVsRUEdq3a_CVKGVcKw _xfi6C8RUEdq3a_CVKGVcKw _xfczlMRUEdq3a_CVKGVcKw _xfczpMRUEdq3a_CVKGVcKw _xfWsz8RUEdq3a_CVKGVcKw _xfWs0sRUEdq3a_CVKGVcKw _xfpAqcRUEdq3a_CVKGVcKw _xfEZI8RUEdq3a_CVKGVcKw _xfi6BMRUEdq3a_CVKGVcKw _xfi6HsRUEdq3a_CVKGVcKw _xfpApcRUEdq3a_CVKGVcKw _xfEY7sRUEdq3a_CVKGVcKw _xfvHQsRUEdq3a_CVKGVcKw _xfpAvsRUEdq3a_CVKGVcKw _xfczgMRUEdq3a_CVKGVcKw _xfi6GsRUEdq3a_CVKGVcKw _xfczpcRUEdq3a_CVKGVcKw _xfpAsMRUEdq3a_CVKGVcKw _xfEZAcRUEdq3a_CVKGVcKw _xfWs1sRUEdq3a_CVKGVcKw _xfvHQMRUEdq3a_CVKGVcKw _xfi6DcRUEdq3a_CVKGVcKw _xf1N5MRUEdq3a_CVKGVcKw _xfczqcRUEdq3a_CVKGVcKw _xfQmOMRUEdq3a_CVKGVcKw _xfEZHMRUEdq3a_CVKGVcKw _xfKfjMRUEdq3a_CVKGVcKw _xfQmY8RUEdq3a_CVKGVcKw _xfpAucRUEdq3a_CVKGVcKw _xfWs5sRUEdq3a_CVKGVcKw _xfczn8RUEdq3a_CVKGVcKw _xfWs-8RUEdq3a_CVKGVcKw _xfvHSsRUEdq3a_CVKGVcKw _xfczocRUEdq3a_CVKGVcKw _xfEZH8RUEdq3a_CVKGVcKw _xfpAwcRUEdq3a_CVKGVcKw _xfEY4cRUEdq3a_CVKGVcKw _xfi6CMRUEdq3a_CVKGVcKw _xfi6FcRUEdq3a_CVKGVcKw _xfQmd8RUEdq3a_CVKGVcKw _xfi6FsRUEdq3a_CVKGVcKw _xfpAs8RUEdq3a_CVKGVcKw _xfKfoMRUEdq3a_CVKGVcKw _xfWs88RUEdq3a_CVKGVcKw _xfvHW8RUEdq3a_CVKGVcKw _xfpAuMRUEdq3a_CVKGVcKw _xf1N4cRUEdq3a_CVKGVcKw _xfpAoMRUEdq3a_CVKGVcKw _xfKfkMRUEdq3a_CVKGVcKw _xfKfg8RUEdq3a_CVKGVcKw _xfi6BcRUEdq3a_CVKGVcKw _xfQmZ8RUEdq3a_CVKGVcKw _xfvHWMRUEdq3a_CVKGVcKw _xf1N5sRUEdq3a_CVKGVcKw _xfQma8RUEdq3a_CVKGVcKw _xfczYMRUEdq3a_CVKGVcKw _xfpAosRUEdq3a_CVKGVcKw _xfpAtcRUEdq3a_CVKGVcKw _xfi6HcRUEdq3a_CVKGVcKw _xfi6BsRUEdq3a_CVKGVcKw _xfvHU8RUEdq3a_CVKGVcKw _xfWs2sRUEdq3a_CVKGVcKw _xcGkpsRUEdq3a_CVKGVcKw _xfvHUcRUEdq3a_CVKGVcKw _xfpAvMRUEdq3a_CVKGVcKw _xfEY6sRUEdq3a_CVKGVcKw _xfpAq8RUEdq3a_CVKGVcKw _xfczeMRUEdq3a_CVKGVcKw _xfQmQMRUEdq3a_CVKGVcKw _xfpAw8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbb8RUEdq3a_CVKGVcKw" source="InfrastructureLibrary::Profiles" references="_xeZqhMRUEdq3a_CVKGVcKw _xeTj7MRUEdq3a_CVKGVcKw _A7vDAGv0Edq7X4sGURiZYA _xeZqgsRUEdq3a_CVKGVcKw _kl90MGvbEdq4DLWZOhbdEA _xeHWp8RUEdq3a_CVKGVcKw _xeBQIcRUEdq3a_CVKGVcKw __pew8GvzEdq7X4sGURiZYA _xeHWocRUEdq3a_CVKGVcKw _uY5yQGv5Edq7X4sGURiZYA _xeZqicRUEdq3a_CVKGVcKw _xeBQHMRUEdq3a_CVKGVcKw _xeNdQMRUEdq3a_CVKGVcKw _xeBQGMRUEdq3a_CVKGVcKw _xeZqjMRUEdq3a_CVKGVcKw _xeTj6sRUEdq3a_CVKGVcKw _nDq0wJPzEdqpjIDDFZ2Hgw _xeTj9cRUEdq3a_CVKGVcKw _xeTj4MRUEdq3a_CVKGVcKw _xeZqjcRUEdq3a_CVKGVcKw _xeTj-sRUEdq3a_CVKGVcKw _xeHWq8RUEdq3a_CVKGVcKw _csVgUGvtEdqG6fBIPwe-mw _xeNdYcRUEdq3a_CVKGVcKw _xeTj_MRUEdq3a_CVKGVcKw _xeTj58RUEdq3a_CVKGVcKw _xeNdVsRUEdq3a_CVKGVcKw _xeBQCMRUEdq3a_CVKGVcKw _xeBQFMRUEdq3a_CVKGVcKw _2QuT0GvdEdq4DLWZOhbdEA _xeNdTcRUEdq3a_CVKGVcKw _xeTj9MRUEdq3a_CVKGVcKw _xeZqh8RUEdq3a_CVKGVcKw _xeHWvMRUEdq3a_CVKGVcKw _xeTj8cRUEdq3a_CVKGVcKw _xeHWycRUEdq3a_CVKGVcKw _xeTj98RUEdq3a_CVKGVcKw _xeHWrsRUEdq3a_CVKGVcKw _-cvRAGvzEdq7X4sGURiZYA _xeHWxMRUEdq3a_CVKGVcKw _00owUGvdEdq4DLWZOhbdEA _xeHWucRUEdq3a_CVKGVcKw _xeHWwMRUEdq3a_CVKGVcKw _xeNdXcRUEdq3a_CVKGVcKw _xeTj78RUEdq3a_CVKGVcKw _xeNdUcRUEdq3a_CVKGVcKw _xeNdZcRUEdq3a_CVKGVcKw _skHGwGvsEdqG6fBIPwe-mw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbcMRUEdq3a_CVKGVcKw" source="UML::Components::BasicComponents" references="_DAbfwa69EdqjppZik4kD8A _xaL49cRUEdq3a_CVKGVcKw _xaFyWMRUEdq3a_CVKGVcKw _xaL47cRUEdq3a_CVKGVcKw _xaL47MRUEdq3a_CVKGVcKw _xaFyUMRUEdq3a_CVKGVcKw _xZ_rt8RUEdq3a_CVKGVcKw _xaFyQMRUEdq3a_CVKGVcKw _xaFyRMRUEdq3a_CVKGVcKw _xaL468RUEdq3a_CVKGVcKw _xaL44MRUEdq3a_CVKGVcKw _xaL48cRUEdq3a_CVKGVcKw _xaFyf8RUEdq3a_CVKGVcKw _xaFya8RUEdq3a_CVKGVcKw _xZ_rusRUEdq3a_CVKGVcKw _xaL488RUEdq3a_CVKGVcKw _xXa428RUEdq3a_CVKGVcKw _xaFyXsRUEdq3a_CVKGVcKw _xaL47sRUEdq3a_CVKGVcKw _xaL45MRUEdq3a_CVKGVcKw _xaFyZ8RUEdq3a_CVKGVcKw _xaFySMRUEdq3a_CVKGVcKw _xaFyZMRUEdq3a_CVKGVcKw _xaL46sRUEdq3a_CVKGVcKw _xaL49MRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbccRUEdq3a_CVKGVcKw" source="UML::Components::PackagingComponents" references="_DAbfwa69EdqjppZik4kD8A _xg-dbcRUEdq3a_CVKGVcKw _xg-da8RUEdq3a_CVKGVcKw _xg-dZ8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbcsRUEdq3a_CVKGVcKw" source="UML::Actions::StructuredActions" references="_xefxK8RUEdq3a_CVKGVcKw _xel36MRUEdq3a_CVKGVcKw _xel38sRUEdq3a_CVKGVcKw _xefxNMRUEdq3a_CVKGVcKw _xel33MRUEdq3a_CVKGVcKw _xer-YMRUEdq3a_CVKGVcKw _xel3yMRUEdq3a_CVKGVcKw _xer-b8RUEdq3a_CVKGVcKw _xefxIcRUEdq3a_CVKGVcKw _xel37MRUEdq3a_CVKGVcKw _xefxOMRUEdq3a_CVKGVcKw _xer-Z8RUEdq3a_CVKGVcKw _xefxJ8RUEdq3a_CVKGVcKw _xel3wcRUEdq3a_CVKGVcKw _xel3zsRUEdq3a_CVKGVcKw _xer-asRUEdq3a_CVKGVcKw _xer-YsRUEdq3a_CVKGVcKw _xer-ZcRUEdq3a_CVKGVcKw _xefxSMRUEdq3a_CVKGVcKw _xel39cRUEdq3a_CVKGVcKw _xel38MRUEdq3a_CVKGVcKw _xer-ccRUEdq3a_CVKGVcKw _xel31cRUEdq3a_CVKGVcKw _xer-bMRUEdq3a_CVKGVcKw _xel32MRUEdq3a_CVKGVcKw _xel3xMRUEdq3a_CVKGVcKw _xefxQcRUEdq3a_CVKGVcKw _xefxRcRUEdq3a_CVKGVcKw _xel37cRUEdq3a_CVKGVcKw _xel30cRUEdq3a_CVKGVcKw _xel398RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbc8RUEdq3a_CVKGVcKw" source="UML::AuxiliaryConstructs::InformationFlows" references="_xe-SQMRUEdq3a_CVKGVcKw _xe4L2sRUEdq3a_CVKGVcKw _xe-SV8RUEdq3a_CVKGVcKw _xe-SRcRUEdq3a_CVKGVcKw _xe-SWsRUEdq3a_CVKGVcKw _xe-SU8RUEdq3a_CVKGVcKw _xe4L1sRUEdq3a_CVKGVcKw _xe-SVsRUEdq3a_CVKGVcKw _xe4LzsRUEdq3a_CVKGVcKw _xe-ST8RUEdq3a_CVKGVcKw _xe-STcRUEdq3a_CVKGVcKw _xe4LvsRUEdq3a_CVKGVcKw _xe4LwsRUEdq3a_CVKGVcKw _xe-SQcRUEdq3a_CVKGVcKw _xe4L28RUEdq3a_CVKGVcKw _xe4LysRUEdq3a_CVKGVcKw _xe4LxsRUEdq3a_CVKGVcKw _xe4L0sRUEdq3a_CVKGVcKw _xe-SRMRUEdq3a_CVKGVcKw _xe-SSsRUEdq3a_CVKGVcKw _xe4LrcRUEdq3a_CVKGVcKw _xe4LscRUEdq3a_CVKGVcKw _xe4LocRUEdq3a_CVKGVcKw _xe-SW8RUEdq3a_CVKGVcKw _xe-SSMRUEdq3a_CVKGVcKw _xe-SUsRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbdMRUEdq3a_CVKGVcKw" source="UML::Activities::BasicActivities" references="_xWj9IMRUEdq3a_CVKGVcKw _xYFnOMRUEdq3a_CVKGVcKw _xX5aBMRUEdq3a_CVKGVcKw _xX5Z9MRUEdq3a_CVKGVcKw _xYLtwsRUEdq3a_CVKGVcKw _xX5aAMRUEdq3a_CVKGVcKw _xX_glcRUEdq3a_CVKGVcKw _xYFnNcRUEdq3a_CVKGVcKw _xX5aEMRUEdq3a_CVKGVcKw _xYFnNsRUEdq3a_CVKGVcKw _xX_gpcRUEdq3a_CVKGVcKw _xX_gocRUEdq3a_CVKGVcKw _xX5aFMRUEdq3a_CVKGVcKw _xX5Z6sRUEdq3a_CVKGVcKw _xYLtwMRUEdq3a_CVKGVcKw _xX_gw8RUEdq3a_CVKGVcKw _xWdPhsRUEdq3a_CVKGVcKw _xYFnM8RUEdq3a_CVKGVcKw _xYFnL8RUEdq3a_CVKGVcKw _xX5aDMRUEdq3a_CVKGVcKw _xX_ggMRUEdq3a_CVKGVcKw _xYFnOcRUEdq3a_CVKGVcKw _xX5aCMRUEdq3a_CVKGVcKw _xX5Z98RUEdq3a_CVKGVcKw _xX_gv8RUEdq3a_CVKGVcKw _xX_gjMRUEdq3a_CVKGVcKw _xWdPeMRUEdq3a_CVKGVcKw _xWK7p8RUEdq3a_CVKGVcKw _xYFnOsRUEdq3a_CVKGVcKw _xYFnIMRUEdq3a_CVKGVcKw _xYFnLMRUEdq3a_CVKGVcKw _xYFnPMRUEdq3a_CVKGVcKw _xYFnN8RUEdq3a_CVKGVcKw _xX_gt8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvUbdcRUEdq3a_CVKGVcKw" source="UML::Classes::AssociationClasses" references="_xhW3_cRUEdq3a_CVKGVcKw _xhW38cRUEdq3a_CVKGVcKw _xhW36sRUEdq3a_CVKGVcKw _Jp_1oGveEdq4DLWZOhbdEA _xhc-gMRUEdq3a_CVKGVcKw _xhW3-cRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvaiAMRUEdq3a_CVKGVcKw" source="UML::CompositeStructures::Ports" references="_xZ5lMMRUEdq3a_CVKGVcKw _xZ5lHMRUEdq3a_CVKGVcKw _xZ5lH8RUEdq3a_CVKGVcKw _xZ_rocRUEdq3a_CVKGVcKw _xZ5lDcRUEdq3a_CVKGVcKw _xZ_rrsRUEdq3a_CVKGVcKw _xZ_rpsRUEdq3a_CVKGVcKw _xZ5lLMRUEdq3a_CVKGVcKw _xZ_roMRUEdq3a_CVKGVcKw _xZ_rrcRUEdq3a_CVKGVcKw _xZ5lCsRUEdq3a_CVKGVcKw _xZ5lEMRUEdq3a_CVKGVcKw _xZ5lGMRUEdq3a_CVKGVcKw _xZ5lM8RUEdq3a_CVKGVcKw _xZ5lFMRUEdq3a_CVKGVcKw _xZ_rqsRUEdq3a_CVKGVcKw _xZ_rpMRUEdq3a_CVKGVcKw _xZ_rqcRUEdq3a_CVKGVcKw _aOgw0GveEdq4DLWZOhbdEA _ZAuvEGveEdq4DLWZOhbdEA"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvaiAcRUEdq3a_CVKGVcKw" source="UML::Deployments::Artifacts" references="_xaSmo8RUEdq3a_CVKGVcKw _xaSmoMRUEdq3a_CVKGVcKw _xaSmtcRUEdq3a_CVKGVcKw _xaSmv8RUEdq3a_CVKGVcKw _xaSmrsRUEdq3a_CVKGVcKw _xaSmp8RUEdq3a_CVKGVcKw _xaSmkMRUEdq3a_CVKGVcKw _xaSmmMRUEdq3a_CVKGVcKw _xaSmrMRUEdq3a_CVKGVcKw _xaSmvMRUEdq3a_CVKGVcKw _xaSmlMRUEdq3a_CVKGVcKw _xaSmqcRUEdq3a_CVKGVcKw _xaL5AMRUEdq3a_CVKGVcKw _xaSmssRUEdq3a_CVKGVcKw _-lGRgHLzEdqziYxiZo0YtA _xaSmnMRUEdq3a_CVKGVcKw _xaSmucRUEdq3a_CVKGVcKw _xaSmr8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvaiAsRUEdq3a_CVKGVcKw" source="UML::CompositeStructures::Collaborations" references="_xXtMwMRUEdq3a_CVKGVcKw _xXtMs8RUEdq3a_CVKGVcKw _xXtMp8RUEdq3a_CVKGVcKw _xXzTQMRUEdq3a_CVKGVcKw _xXzTU8RUEdq3a_CVKGVcKw _xXzTTsRUEdq3a_CVKGVcKw _xXzTRMRUEdq3a_CVKGVcKw _xXzTUcRUEdq3a_CVKGVcKw _xXtMt8RUEdq3a_CVKGVcKw _6UV2QGwJEdq7X4sGURiZYA _xXzTVsRUEdq3a_CVKGVcKw _xX5Z5cRUEdq3a_CVKGVcKw _xXtMu8RUEdq3a_CVKGVcKw _xX5Z4sRUEdq3a_CVKGVcKw _xXzTTcRUEdq3a_CVKGVcKw _xX5Z58RUEdq3a_CVKGVcKw _xX5Z4MRUEdq3a_CVKGVcKw _KyaPMGveEdq4DLWZOhbdEA _xXzTWMRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvaiA8RUEdq3a_CVKGVcKw" source="UML::Classes::Dependencies" references="_xR9xAMRUEdq3a_CVKGVcKw _xXCeTcRUEdq3a_CVKGVcKw _xXCeQMRUEdq3a_CVKGVcKw _xXCeWMRUEdq3a_CVKGVcKw _xXCeQ8RUEdq3a_CVKGVcKw _xXOrjcRUEdq3a_CVKGVcKw _ZiwkoGwLEdq7X4sGURiZYA _xRfQC8RUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw _xXOrk8RUEdq3a_CVKGVcKw _xXCeZMRUEdq3a_CVKGVcKw _xXOrisRUEdq3a_CVKGVcKw _csVgUGvtEdqG6fBIPwe-mw _6UV2QGwJEdq7X4sGURiZYA _xXCeUcRUEdq3a_CVKGVcKw _xXOrhcRUEdq3a_CVKGVcKw _xXOrj8RUEdq3a_CVKGVcKw _jKxnwGwLEdq7X4sGURiZYA _xXOrh8RUEdq3a_CVKGVcKw _xXCeX8RUEdq3a_CVKGVcKw _xXOrgMRUEdq3a_CVKGVcKw _xXCeRsRUEdq3a_CVKGVcKw _xXCeW8RUEdq3a_CVKGVcKw _rEDGkGwKEdq7X4sGURiZYA _xXIk4MRUEdq3a_CVKGVcKw _xXOrgsRUEdq3a_CVKGVcKw _xXCeVcRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvaiBMRUEdq3a_CVKGVcKw" source="UML::Classes::Interfaces" references="_xXUyK8RUEdq3a_CVKGVcKw _xXUyMMRUEdq3a_CVKGVcKw _xXOrosRUEdq3a_CVKGVcKw _xXa4w8RUEdq3a_CVKGVcKw _xXUyPsRUEdq3a_CVKGVcKw _xXa4wMRUEdq3a_CVKGVcKw _M4X2IGveEdq4DLWZOhbdEA _xXUyN8RUEdq3a_CVKGVcKw _xXa4ycRUEdq3a_CVKGVcKw _xXOrpsRUEdq3a_CVKGVcKw _xXOrnsRUEdq3a_CVKGVcKw _xXUyJcRUEdq3a_CVKGVcKw _xXUyQMRUEdq3a_CVKGVcKw _iY7sMGvsEdqG6fBIPwe-mw _xXUyNMRUEdq3a_CVKGVcKw _8Ugn8GvtEdqG6fBIPwe-mw _xXUyIcRUEdq3a_CVKGVcKw _xXUyOsRUEdq3a_CVKGVcKw _xXa4y8RUEdq3a_CVKGVcKw _xXOrmsRUEdq3a_CVKGVcKw _xXa4xsRUEdq3a_CVKGVcKw _l2mXcHLzEdqziYxiZo0YtA"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvaiBcRUEdq3a_CVKGVcKw" source="UML::Activities::ExtraStructuredActivities" references="_xg-dYMRUEdq3a_CVKGVcKw _xg4W7sRUEdq3a_CVKGVcKw _xgyQNsRUEdq3a_CVKGVcKw _xg-dYcRUEdq3a_CVKGVcKw _xg-dZMRUEdq3a_CVKGVcKw _xg4W7cRUEdq3a_CVKGVcKw _xgyQMsRUEdq3a_CVKGVcKw _xg4W78RUEdq3a_CVKGVcKw _xg4W5cRUEdq3a_CVKGVcKw _xg4WxsRUEdq3a_CVKGVcKw _xWwKeMRUEdq3a_CVKGVcKw _xg4WwsRUEdq3a_CVKGVcKw _xg4W2cRUEdq3a_CVKGVcKw _xgyQL8RUEdq3a_CVKGVcKw _xg4W4cRUEdq3a_CVKGVcKw _xg4W1cRUEdq3a_CVKGVcKw _xgyQQ8RUEdq3a_CVKGVcKw _xg-dYsRUEdq3a_CVKGVcKw _xgyQQMRUEdq3a_CVKGVcKw _xg4W3cRUEdq3a_CVKGVcKw _xg-dY8RUEdq3a_CVKGVcKw _xgyQR8RUEdq3a_CVKGVcKw _xgyQOsRUEdq3a_CVKGVcKw _xg-dZcRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvgooMRUEdq3a_CVKGVcKw" source="UML::Deployments::Nodes" references="_xaYtT8RUEdq3a_CVKGVcKw _xaYtTMRUEdq3a_CVKGVcKw _xaYtRsRUEdq3a_CVKGVcKw _xak6eMRUEdq3a_CVKGVcKw _xaYtO8RUEdq3a_CVKGVcKw _xaYtScRUEdq3a_CVKGVcKw _xaYtXcRUEdq3a_CVKGVcKw _xak6csRUEdq3a_CVKGVcKw _xak6dcRUEdq3a_CVKGVcKw _xak6e8RUEdq3a_CVKGVcKw _xaez0MRUEdq3a_CVKGVcKw _xaYtQsRUEdq3a_CVKGVcKw _Jp_1oGveEdq4DLWZOhbdEA _xaYtV8RUEdq3a_CVKGVcKw _xaYtMMRUEdq3a_CVKGVcKw _xaYtM8RUEdq3a_CVKGVcKw _xTsPV8RUEdq3a_CVKGVcKw _xak6fMRUEdq3a_CVKGVcKw _-lGRgHLzEdqziYxiZo0YtA _xaYtN8RUEdq3a_CVKGVcKw _xaYtU8RUEdq3a_CVKGVcKw _xak6esRUEdq3a_CVKGVcKw _xak6cMRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvgoocRUEdq3a_CVKGVcKw" source="UML::AuxiliaryConstructs::Models" references="_NVhqMGv0Edq7X4sGURiZYA _xe-SYMRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvgoosRUEdq3a_CVKGVcKw" source="UML::CompositeStructures::InvocationActions" references="_xdDmv8RUEdq3a_CVKGVcKw _xZO2oMRUEdq3a_CVKGVcKw _xdDmxMRUEdq3a_CVKGVcKw _xdDmu8RUEdq3a_CVKGVcKw _xWK7u8RUEdq3a_CVKGVcKw _xdDmw8RUEdq3a_CVKGVcKw _xdDmtsRUEdq3a_CVKGVcKw _xdDmwMRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xvmvQMRUEdq3a_CVKGVcKw" source="UML::StateMachines::ProtocolStateMachines" references="_xhQxTsRUEdq3a_CVKGVcKw _xhQxScRUEdq3a_CVKGVcKw _xhKqrMRUEdq3a_CVKGVcKw _xhW34cRUEdq3a_CVKGVcKw _xdiH5cRUEdq3a_CVKGVcKw _xhKqsMRUEdq3a_CVKGVcKw _xhQxV8RUEdq3a_CVKGVcKw _xhQxU8RUEdq3a_CVKGVcKw _xhQxTMRUEdq3a_CVKGVcKw _xdPz8MRUEdq3a_CVKGVcKw _xhKqysRUEdq3a_CVKGVcKw _xhW34MRUEdq3a_CVKGVcKw _xhW35sRUEdq3a_CVKGVcKw _xhEkGcRUEdq3a_CVKGVcKw _xhEkHMRUEdq3a_CVKGVcKw _8Ugn8GvtEdqG6fBIPwe-mw _xhEkKsRUEdq3a_CVKGVcKw _xhQxWcRUEdq3a_CVKGVcKw _xhQxRcRUEdq3a_CVKGVcKw _xhEkIMRUEdq3a_CVKGVcKw _xhKqoMRUEdq3a_CVKGVcKw _xhEkJcRUEdq3a_CVKGVcKw _xhQxUcRUEdq3a_CVKGVcKw _xhKquMRUEdq3a_CVKGVcKw _ZAuvEGveEdq4DLWZOhbdEA _xhKqtMRUEdq3a_CVKGVcKw _xhQxSMRUEdq3a_CVKGVcKw _xhQxQMRUEdq3a_CVKGVcKw _xhW35MRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xwFQYMRUEdq3a_CVKGVcKw" source="UML::Classes::PowerTypes" references="_xeyFFsRUEdq3a_CVKGVcKw _xer-dMRUEdq3a_CVKGVcKw _xeyFHsRUEdq3a_CVKGVcKw _xe4LoMRUEdq3a_CVKGVcKw _6UV2QGwJEdq7X4sGURiZYA _xeyFCMRUEdq3a_CVKGVcKw _xeyFIsRUEdq3a_CVKGVcKw _C7AF4GwREdq14q0ETb1t3g _xeyFD8RUEdq3a_CVKGVcKw _xeyFBcRUEdq3a_CVKGVcKw _xeyFC8RUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xwLXAMRUEdq3a_CVKGVcKw" source="UML::Deployments::ComponentDeployments" references="_xhEkDcRUEdq3a_CVKGVcKw _xhEkFcRUEdq3a_CVKGVcKw _xg-dccRUEdq3a_CVKGVcKw _xaYtMMRUEdq3a_CVKGVcKw _xhEkEcRUEdq3a_CVKGVcKw _xhEkAMRUEdq3a_CVKGVcKw _xhEkCcRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xwRdoMRUEdq3a_CVKGVcKw" source="InfrastructureLibrary::Core::PrimitiveTypes" references="_aAyVgGvsEdqG6fBIPwe-mw _XqvEIGvsEdqG6fBIPwe-mw _UdivYGvsEdqG6fBIPwe-mw _dRZxsGvsEdqG6fBIPwe-mw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xwdq4MRUEdq3a_CVKGVcKw" source="UML::CompositeStructures::StructuredActivities" references="_xWj9NsRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xwqfMMRUEdq3a_CVKGVcKw" source="UML::AuxiliaryConstructs::Profiles" references="_2QuT0GvdEdq4DLWZOhbdEA _xeNdUcRUEdq3a_CVKGVcKw"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xxPG8MRUEdq3a_CVKGVcKw" source="UML::CompositeStructures::StructuredClasses" references="_00owUGvdEdq4DLWZOhbdEA"/>
+ </eAnnotations>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="__as3cGvaEdq4DLWZOhbdEA">
+ <importedPackage xmi:type="uml:Model" href="Ecore.uml#439EC3AE03B5"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_XqvEIGvsEdqG6fBIPwe-mw" name="Integer">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSQE4cRUEdq3a_CVKGVcKw" annotatedElement="_XqvEIGvsEdqG6fBIPwe-mw">
+ <body>An instance of Integer is an element in the (infinite) set of integers (...-2, -1, 0, 1, 2...). It is used for integer attributes and integer expressions in the metamodel.</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_UdivYGvsEdqG6fBIPwe-mw" name="Boolean">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSQE4sRUEdq3a_CVKGVcKw" annotatedElement="_UdivYGvsEdqG6fBIPwe-mw">
+ <body>Boolean is an instance of PrimitiveType. In the metamodel, Boolean defines an enumeration that denotes a logical condition. Its enumeration literals are:
+ - true: The Boolean condition is satisfied.
+ - false: The Boolean condition is not satisfied.
+
+It is used for Boolean attribute and Boolean expressions in the metamodel, such as OCL expression.</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_aAyVgGvsEdqG6fBIPwe-mw" name="String">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSQE48RUEdq3a_CVKGVcKw" annotatedElement="_aAyVgGvsEdqG6fBIPwe-mw">
+ <body>An instance of String defines a piece of text. The semantics of the string itself depends on its purpose, it can be a comment, computational language expression, OCL expression, etc. It is used for String attributes and String expressions in the metamodel.</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dRZxsGvsEdqG6fBIPwe-mw" name="UnlimitedNatural">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSQE5MRUEdq3a_CVKGVcKw" annotatedElement="_dRZxsGvsEdqG6fBIPwe-mw">
+ <body>An instance of UnlimitedNatural is an element in the (infinite) set of naturals (0, 1, 2...). The value of infinity is shown using an asterisk ('*').</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xRlWjMRUEdq3a_CVKGVcKw" name="Comment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRlWjcRUEdq3a_CVKGVcKw" annotatedElement="_xRlWjMRUEdq3a_CVKGVcKw">
+ <body>A comment is a textual annotation that can be attached to a set of elements.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSWLiMRUEdq3a_CVKGVcKw" annotatedElement="_xRlWjMRUEdq3a_CVKGVcKw">
+ <body>A comment gives the ability to attach various remarks to elements. A comment carries no semantic force, but may contain information that is useful to a modeler. A comment can be owned by any element.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRlWjsRUEdq3a_CVKGVcKw" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRlWj8RUEdq3a_CVKGVcKw" name="body" visibility="public" type="_aAyVgGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRlWkMRUEdq3a_CVKGVcKw" annotatedElement="_xRlWj8RUEdq3a_CVKGVcKw">
+ <body>Specifies a string that is the comment.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xScSIMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xScSIcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRlWk8RUEdq3a_CVKGVcKw" name="annotatedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" association="_xR3qd8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRlWlMRUEdq3a_CVKGVcKw" annotatedElement="_xRlWk8RUEdq3a_CVKGVcKw">
+ <body>References the Element(s) being commented.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xScSIsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xScSI8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JBgfoKPAEdqi_5gqUMOQtA" name="DirectedRelationship" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPY-QsRUEdq3a_CVKGVcKw" annotatedElement="_JBgfoKPAEdqi_5gqUMOQtA">
+ <body>A directed relationship references one or more source elements and one or more target elements. DirectedRelationship is an abstract metaclass.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPY-Q8RUEdq3a_CVKGVcKw" general="_DH62EKPAEdqi_5gqUMOQtA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPY-RMRUEdq3a_CVKGVcKw" name="source" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_xPrSMMRUEdq3a_CVKGVcKw" association="_xR3qe8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPY-RcRUEdq3a_CVKGVcKw" annotatedElement="_xPY-RMRUEdq3a_CVKGVcKw">
+ <body>Specifies the sources of the DirectedRelationship.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xScSJMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xScSJcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPY-SMRUEdq3a_CVKGVcKw" name="target" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_xPrSMMRUEdq3a_CVKGVcKw" association="_xR3qfsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPY-ScRUEdq3a_CVKGVcKw" annotatedElement="_xPY-SMRUEdq3a_CVKGVcKw">
+ <body>Specifies the targets of the DirectedRelationship.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xScSJsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xScSJ8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xSumD8RUEdq3a_CVKGVcKw" name="LiteralSpecification" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumEMRUEdq3a_CVKGVcKw" annotatedElement="_xSumD8RUEdq3a_CVKGVcKw">
+ <body>A literal specification is an abstract specialization of ValueSpecification that identifies a literal constant being modeled.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xSumEcRUEdq3a_CVKGVcKw" general="_xPxYp8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Dy77oGveEdq4DLWZOhbdEA" name="LiteralInteger">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumEsRUEdq3a_CVKGVcKw" annotatedElement="_Dy77oGveEdq4DLWZOhbdEA">
+ <body>A literal integer contains an Integer-valued attribute.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xSumE8RUEdq3a_CVKGVcKw" general="_xSumD8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xSumFMRUEdq3a_CVKGVcKw" name="value" type="_XqvEIGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumFcRUEdq3a_CVKGVcKw" annotatedElement="_xSumFMRUEdq3a_CVKGVcKw">
+ <body>The specified Integer value.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_xSumFsRUEdq3a_CVKGVcKw" type="_XqvEIGvsEdqG6fBIPwe-mw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_e2SLUGWKEdq-f4093SZhVA" name="stringValue" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hAkRkGWKEdq-f4093SZhVA" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSumF8RUEdq3a_CVKGVcKw" name="isComputable" isQuery="true" redefinedOperation="_xPxYq8RUEdq3a_CVKGVcKw" bodyCondition="_xSumGcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumGMRUEdq3a_CVKGVcKw" annotatedElement="_xSumF8RUEdq3a_CVKGVcKw">
+ <body>The query isComputable() is redefined to be true.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSumGcRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSumF8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSumGsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSumG8RUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSumHMRUEdq3a_CVKGVcKw" name="integerValue" isQuery="true" redefinedOperation="_xPxYsMRUEdq3a_CVKGVcKw" bodyCondition="_xSumHsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumHcRUEdq3a_CVKGVcKw" annotatedElement="_xSumHMRUEdq3a_CVKGVcKw">
+ <body>The query integerValue() gives the value.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSumHsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSumHMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSumH8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = value</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSumIMRUEdq3a_CVKGVcKw" type="_XqvEIGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xSumIcRUEdq3a_CVKGVcKw" name="LiteralString">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumIsRUEdq3a_CVKGVcKw" annotatedElement="_xSumIcRUEdq3a_CVKGVcKw">
+ <body>A literal string contains a String-valued attribute.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xSumI8RUEdq3a_CVKGVcKw" general="_xSumD8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xSumJMRUEdq3a_CVKGVcKw" name="value" type="_aAyVgGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumJcRUEdq3a_CVKGVcKw" annotatedElement="_xSumJMRUEdq3a_CVKGVcKw">
+ <body>The specified String value.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xSumJsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xSumJ8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSumKMRUEdq3a_CVKGVcKw" name="isComputable" isQuery="true" redefinedOperation="_xPxYq8RUEdq3a_CVKGVcKw" bodyCondition="_xSumKsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumKcRUEdq3a_CVKGVcKw" annotatedElement="_xSumKMRUEdq3a_CVKGVcKw">
+ <body>The query isComputable() is redefined to be true.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSumKsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSumKMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSumK8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSumLMRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSumLcRUEdq3a_CVKGVcKw" name="stringValue" isQuery="true" redefinedOperation="_xPxYusRUEdq3a_CVKGVcKw" bodyCondition="_xSumL8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumLsRUEdq3a_CVKGVcKw" annotatedElement="_xSumLcRUEdq3a_CVKGVcKw">
+ <body>The query stringValue() gives the value.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSumL8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSumLcRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSumMMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = value</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSumMcRUEdq3a_CVKGVcKw" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FFMNsGveEdq4DLWZOhbdEA" name="LiteralBoolean">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumMsRUEdq3a_CVKGVcKw" annotatedElement="_FFMNsGveEdq4DLWZOhbdEA">
+ <body>A literal boolean contains a Boolean-valued attribute.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xSumM8RUEdq3a_CVKGVcKw" general="_xSumD8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xSumNMRUEdq3a_CVKGVcKw" name="value" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumNcRUEdq3a_CVKGVcKw" annotatedElement="_xSumNMRUEdq3a_CVKGVcKw">
+ <body>The specified Boolean value.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xSumNsRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aXS3gGWKEdq-f4093SZhVA" name="stringValue" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cFthIGWKEdq-f4093SZhVA" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSumN8RUEdq3a_CVKGVcKw" name="isComputable" isQuery="true" redefinedOperation="_xPxYq8RUEdq3a_CVKGVcKw" bodyCondition="_xS1TscRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1TsMRUEdq3a_CVKGVcKw" annotatedElement="_xSumN8RUEdq3a_CVKGVcKw">
+ <body>The query isComputable() is redefined to be true.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS1TscRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSumN8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1TssRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xS1Ts8RUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xS1TtMRUEdq3a_CVKGVcKw" name="booleanValue" isQuery="true" redefinedOperation="_xPxYtcRUEdq3a_CVKGVcKw" bodyCondition="_xS1TtsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1TtcRUEdq3a_CVKGVcKw" annotatedElement="_xS1TtMRUEdq3a_CVKGVcKw">
+ <body>The query booleanValue() gives the value.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS1TtsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xS1TtMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1Tt8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = value</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xS1TuMRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xS1TucRUEdq3a_CVKGVcKw" name="LiteralNull">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1TusRUEdq3a_CVKGVcKw" annotatedElement="_xS1TucRUEdq3a_CVKGVcKw">
+ <body>A literal null is used to represent null, i.e., the absence of a value.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xS1Tu8RUEdq3a_CVKGVcKw" general="_xSumD8RUEdq3a_CVKGVcKw"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xS1TvMRUEdq3a_CVKGVcKw" name="isComputable" isQuery="true" redefinedOperation="_xPxYq8RUEdq3a_CVKGVcKw" bodyCondition="_xS1TvsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1TvcRUEdq3a_CVKGVcKw" annotatedElement="_xS1TvMRUEdq3a_CVKGVcKw">
+ <body>The query isComputable() is redefined to be true.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS1TvsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xS1TvMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1Tv8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xS1TwMRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xS1TwcRUEdq3a_CVKGVcKw" name="isNull" isQuery="true" redefinedOperation="_xPxYxMRUEdq3a_CVKGVcKw" bodyCondition="_xS1Tw8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1TwsRUEdq3a_CVKGVcKw" annotatedElement="_xS1TwcRUEdq3a_CVKGVcKw">
+ <body>The query isNull() returns true.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS1Tw8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xS1TwcRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1TxMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xS1TxcRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xQDsosRUEdq3a_CVKGVcKw" name="Constraint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDso8RUEdq3a_CVKGVcKw" annotatedElement="_xQDsosRUEdq3a_CVKGVcKw">
+ <body>Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association &quot;xor&quot; constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used.
+Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to the element. Constraint contains an optional name, although they are commonly unnamed.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1TxsRUEdq3a_CVKGVcKw" annotatedElement="_xQDsosRUEdq3a_CVKGVcKw">
+ <body>Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association &quot;xor&quot; constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used.
+Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to that element. Constraint contains an optional name, although they are commonly unnamed.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xQDspMRUEdq3a_CVKGVcKw" name="not_apply_to_self" constrainedElement="_xQDsosRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDspcRUEdq3a_CVKGVcKw" annotatedElement="_xQDspMRUEdq3a_CVKGVcKw">
+ <body>A constraint cannot be applied to itself.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xQDspsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>not constrainedElement->includes(self)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xQDsp8RUEdq3a_CVKGVcKw" name="value_specification_boolean" constrainedElement="_xQDsosRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsqMRUEdq3a_CVKGVcKw" annotatedElement="_xQDsp8RUEdq3a_CVKGVcKw">
+ <body>The value specification for a constraint must evaluate to a Boolean value.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xQDsqcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.specification().booleanValue().isOclKindOf(Boolean)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS1Tx8RUEdq3a_CVKGVcKw" name="boolean_value" constrainedElement="_xQDsosRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1TyMRUEdq3a_CVKGVcKw" annotatedElement="_xS1Tx8RUEdq3a_CVKGVcKw">
+ <body>The value specification for a constraint must evaluate to a Boolean value.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1TycRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS1TysRUEdq3a_CVKGVcKw" name="no_side_effects" constrainedElement="_xQDsosRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1Ty8RUEdq3a_CVKGVcKw" annotatedElement="_xS1TysRUEdq3a_CVKGVcKw">
+ <body>Evaluating the value specification for a constraint must not have side effects.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1TzMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS1TzcRUEdq3a_CVKGVcKw" name="not_applied_to_self" constrainedElement="_xQDsosRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1TzsRUEdq3a_CVKGVcKw" annotatedElement="_xS1TzcRUEdq3a_CVKGVcKw">
+ <body>A constraint cannot be applied to itself.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1Tz8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>not constrainedElement->includes(self)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xQDsqsRUEdq3a_CVKGVcKw" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQDsq8RUEdq3a_CVKGVcKw" name="constrainedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isOrdered="true" association="_xR3qh8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsrMRUEdq3a_CVKGVcKw" annotatedElement="_xQDsq8RUEdq3a_CVKGVcKw">
+ <body>The ordered set of Elements referenced by this Constraint.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS1T0MRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xS1T0cRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQDsr8RUEdq3a_CVKGVcKw" name="specification" visibility="public" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xR3qicRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDssMRUEdq3a_CVKGVcKw" annotatedElement="_xQDsr8RUEdq3a_CVKGVcKw">
+ <body>A condition that must be true when evaluated in order for the constraint to be satisfied.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1T0sRUEdq3a_CVKGVcKw" annotatedElement="_xQDsr8RUEdq3a_CVKGVcKw">
+ <body>A condition that must be true when evaluated in order for the constraint to be satisfied.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS1T08RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xS1T1MRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQDss8RUEdq3a_CVKGVcKw" name="context" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xR9xJsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS1T1cRUEdq3a_CVKGVcKw" annotatedElement="_xQDss8RUEdq3a_CVKGVcKw">
+ <body>Specifies the namespace that owns the NamedElement.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS1T1sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xS1T18RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RPl78GwIEdq7X4sGURiZYA" name="ElementImport">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQWAYMRUEdq3a_CVKGVcKw" annotatedElement="_RPl78GwIEdq7X4sGURiZYA">
+ <body>An element import is defined as a directed relationship between an importing namespace and a packageable element. The name of the packageable element or its alias is to be added to the namespace of the importing namespace. It is also possible to control whether the imported element can be further imported.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xQWAYcRUEdq3a_CVKGVcKw" name="visibility_public_or_private" constrainedElement="_RPl78GwIEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQWAYsRUEdq3a_CVKGVcKw" annotatedElement="_xQWAYcRUEdq3a_CVKGVcKw">
+ <body>The visibility of an ElementImport is either public or private.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1T2MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.visibility = #public or self.visibility = #private</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xQWAZMRUEdq3a_CVKGVcKw" name="imported_element_is_public" constrainedElement="_RPl78GwIEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQWAZcRUEdq3a_CVKGVcKw" annotatedElement="_xQWAZMRUEdq3a_CVKGVcKw">
+ <body>An importedElement has either public visibility or no visibility at all.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS1T2cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xQWAZ8RUEdq3a_CVKGVcKw" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQWAaMRUEdq3a_CVKGVcKw" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQWAacRUEdq3a_CVKGVcKw" annotatedElement="_xQWAaMRUEdq3a_CVKGVcKw">
+ <body>Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:InstanceValue" xmi:id="_xS7aUMRUEdq3a_CVKGVcKw" type="_AyM_oGwMEdq7X4sGURiZYA" instance="_xRrdM8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQWAa8RUEdq3a_CVKGVcKw" name="alias" visibility="public" type="_aAyVgGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQWAbMRUEdq3a_CVKGVcKw" annotatedElement="_xQWAa8RUEdq3a_CVKGVcKw">
+ <body>Specifies the name that should be added to the namespace of the importing Package in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS7aUcRUEdq3a_CVKGVcKw" annotatedElement="_xQWAa8RUEdq3a_CVKGVcKw">
+ <body>Specifies the name that should be added to the namespace of the importing Pack-age in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS7aUsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xS7aU8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQWAb8RUEdq3a_CVKGVcKw" name="importedElement" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" subsettedProperty="_xPY-SMRUEdq3a_CVKGVcKw" association="_xRxj5MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQWAcMRUEdq3a_CVKGVcKw" annotatedElement="_xQWAb8RUEdq3a_CVKGVcKw">
+ <body>Specifies the PackageableElement whose name is to be added to a Namespace.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS7aVMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xS7aVcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQWAc8RUEdq3a_CVKGVcKw" name="importingNamespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_xPY-RMRUEdq3a_CVKGVcKw _xPY-V8RUEdq3a_CVKGVcKw" association="_xRxj58RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQWAdMRUEdq3a_CVKGVcKw" annotatedElement="_xQWAc8RUEdq3a_CVKGVcKw">
+ <body>Specifies the Namespace that imports a PackageableElement from another Package.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS7aVsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xS7aV8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xQWAd8RUEdq3a_CVKGVcKw" name="getName" visibility="public" isQuery="true" bodyCondition="_xQWAecRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQWAeMRUEdq3a_CVKGVcKw" annotatedElement="_xQWAd8RUEdq3a_CVKGVcKw">
+ <body>The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xQWAecRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xQWAd8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS7aWMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = if self.alias->notEmpty() then&#xA; self.alias&#xA;else&#xA; self.importedElement.name&#xA;endif</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xQWAe8RUEdq3a_CVKGVcKw" visibility="public" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Gjgl0GveEdq4DLWZOhbdEA" name="MultiplicityElement" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE08RUEdq3a_CVKGVcKw" annotatedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+ <body>A MultiplicityElement is an abstract metaclass which includes optional attributes for defining the bounds of a multiplicity. A MultiplicityElement also includes specifications of whether the values in an instantiation of this element must be unique or ordered.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPfE1MRUEdq3a_CVKGVcKw" name="upper_gt_0" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE1cRUEdq3a_CVKGVcKw" annotatedElement="_xPfE1MRUEdq3a_CVKGVcKw">
+ <body>A multiplicity must define at least one valid cardinality that is greater than zero.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS7aWcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>upperBound()->notEmpty() implies upperBound() > 0</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPfE2sRUEdq3a_CVKGVcKw" name="lower_ge_0" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE28RUEdq3a_CVKGVcKw" annotatedElement="_xPfE2sRUEdq3a_CVKGVcKw">
+ <body>The lower bound must be a non-negative integer literal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS7aWsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>lowerBound()->notEmpty() implies lowerBound() >= 0</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPfE18RUEdq3a_CVKGVcKw" name="upper_ge_lower" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE2MRUEdq3a_CVKGVcKw" annotatedElement="_xPfE18RUEdq3a_CVKGVcKw">
+ <body>The upper bound must be greater than or equal to the lower bound.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS7aW8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS7aXMRUEdq3a_CVKGVcKw" name="value_specification_no_side_effects" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS7aXcRUEdq3a_CVKGVcKw" annotatedElement="_xS7aXMRUEdq3a_CVKGVcKw">
+ <body>If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS7aXsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xS7aX8RUEdq3a_CVKGVcKw" name="value_specification_constant" constrainedElement="_Gjgl0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS7aYMRUEdq3a_CVKGVcKw" annotatedElement="_xS7aX8RUEdq3a_CVKGVcKw">
+ <body>If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xS7aYcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPfE3cRUEdq3a_CVKGVcKw" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPfE3sRUEdq3a_CVKGVcKw" name="isOrdered" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE38RUEdq3a_CVKGVcKw" annotatedElement="_xPfE3sRUEdq3a_CVKGVcKw">
+ <body>For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered..</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xS7aYsRUEdq3a_CVKGVcKw" annotatedElement="_xPfE3sRUEdq3a_CVKGVcKw">
+ <body>For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xS7aY8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPfE4cRUEdq3a_CVKGVcKw" name="isUnique" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE4sRUEdq3a_CVKGVcKw" annotatedElement="_xPfE4cRUEdq3a_CVKGVcKw">
+ <body>For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xTBg8MRUEdq3a_CVKGVcKw" value="true"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPfE6cRUEdq3a_CVKGVcKw" name="upper" visibility="public" type="_dRZxsGvsEdqG6fBIPwe-mw" isDerived="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE6sRUEdq3a_CVKGVcKw" annotatedElement="_xPfE6cRUEdq3a_CVKGVcKw">
+ <body>Specifies the upper bound of the multiplicity interval.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTBg8cRUEdq3a_CVKGVcKw" annotatedElement="_xPfE6cRUEdq3a_CVKGVcKw">
+ <body>Specifies the upper bound of the multiplicity interval, if it is expressed as an unlimited natural.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTBg8sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTBg88RUEdq3a_CVKGVcKw"/>
+ <defaultValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTBg9MRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPfE5MRUEdq3a_CVKGVcKw" name="lower" visibility="public" type="_XqvEIGvsEdqG6fBIPwe-mw" isDerived="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE5cRUEdq3a_CVKGVcKw" annotatedElement="_xPfE5MRUEdq3a_CVKGVcKw">
+ <body>Specifies the lower bound of the multiplicity interval.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTBg9cRUEdq3a_CVKGVcKw" annotatedElement="_xPfE5MRUEdq3a_CVKGVcKw">
+ <body>Specifies the lower bound of the multiplicity interval, if it is expressed as an integer.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTBg9sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTBg98RUEdq3a_CVKGVcKw"/>
+ <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_xTBg-MRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTBg-cRUEdq3a_CVKGVcKw" name="upperValue" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xVgNMMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTBg-sRUEdq3a_CVKGVcKw" annotatedElement="_xTBg-cRUEdq3a_CVKGVcKw">
+ <body>The specification of the upper bound for this multiplicity.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTBg-8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTBg_MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTBg_cRUEdq3a_CVKGVcKw" name="lowerValue" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xVgNNcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTBg_sRUEdq3a_CVKGVcKw" annotatedElement="_xTBg_cRUEdq3a_CVKGVcKw">
+ <body>The specification of the lower bound for this multiplicity.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTBg_8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTBhAMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_qtCaIFYkEdqB6vblk3tuMA" name="setLower" visibility="protected">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_scWboFYkEdqB6vblk3tuMA" name="newLower" visibility="protected" type="_XqvEIGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_vlEgEFYkEdqB6vblk3tuMA" name="setUpper" visibility="protected">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xJp4QFYkEdqB6vblk3tuMA" name="newUpper" visibility="protected" type="_dRZxsGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xTBhAcRUEdq3a_CVKGVcKw" name="lower" isQuery="true" bodyCondition="_xTBhA8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTBhAsRUEdq3a_CVKGVcKw" annotatedElement="_xTBhAcRUEdq3a_CVKGVcKw">
+ <body>The derived lower attribute must equal the lowerBound.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xTBhA8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xTBhAcRUEdq3a_CVKGVcKw _xPfE5MRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTBhBMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = lowerBound()</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xTBhBcRUEdq3a_CVKGVcKw" type="_XqvEIGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xTBhBsRUEdq3a_CVKGVcKw" name="upper" isQuery="true" bodyCondition="_xTBhCMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTBhB8RUEdq3a_CVKGVcKw" annotatedElement="_xTBhBsRUEdq3a_CVKGVcKw">
+ <body>The derived upper attribute must equal the upperBound.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xTBhCMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xTBhBsRUEdq3a_CVKGVcKw _xPfE6cRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTBhCcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = upperBound()</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xTBhCsRUEdq3a_CVKGVcKw" type="_dRZxsGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPfE7sRUEdq3a_CVKGVcKw" name="isMultivalued" visibility="public" isQuery="true" precondition="_xPfE8MRUEdq3a_CVKGVcKw" bodyCondition="_xPfE8sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE78RUEdq3a_CVKGVcKw" annotatedElement="_xPfE7sRUEdq3a_CVKGVcKw">
+ <body>The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPfE8MRUEdq3a_CVKGVcKw" constrainedElement="_xPfE7sRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTBhC8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>upperBound()->notEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPfE8sRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPfE7sRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTBhDMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = upperBound() > 1</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPfE9MRUEdq3a_CVKGVcKw" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPlLYMRUEdq3a_CVKGVcKw" name="includesCardinality" visibility="public" isQuery="true" precondition="_xPlLYsRUEdq3a_CVKGVcKw" bodyCondition="_xPlLZMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLYcRUEdq3a_CVKGVcKw" annotatedElement="_xPlLYMRUEdq3a_CVKGVcKw">
+ <body>The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPlLYsRUEdq3a_CVKGVcKw" constrainedElement="_xPlLYMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTBhDcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>upperBound()->notEmpty() and lowerBound()->notEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPlLZMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPlLYMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTBhDsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = (lowerBound() &lt;= C) and (upperBound() >= C)</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLZsRUEdq3a_CVKGVcKw" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLZ8RUEdq3a_CVKGVcKw" name="C" visibility="public" type="_XqvEIGvsEdqG6fBIPwe-mw"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPfE9cRUEdq3a_CVKGVcKw" name="includesMultiplicity" visibility="public" isQuery="true" precondition="_xPfE98RUEdq3a_CVKGVcKw" bodyCondition="_xPfE-cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE9sRUEdq3a_CVKGVcKw" annotatedElement="_xPfE9cRUEdq3a_CVKGVcKw">
+ <body>The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPfE98RUEdq3a_CVKGVcKw" constrainedElement="_xPfE9cRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTBhD8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.upperBound()->notEmpty() and self.lowerBound()->notEmpty()&#xA;and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPfE-cRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPfE9cRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTBhEMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPfE-8RUEdq3a_CVKGVcKw" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPfE_MRUEdq3a_CVKGVcKw" name="M" visibility="public" type="_Gjgl0GveEdq4DLWZOhbdEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPlLaMRUEdq3a_CVKGVcKw" name="lowerBound" visibility="public" isQuery="true" bodyCondition="_xPlLasRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLacRUEdq3a_CVKGVcKw" annotatedElement="_xPlLaMRUEdq3a_CVKGVcKw">
+ <body>The query lowerBound() returns the lower bound of the multiplicity as an integer.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPlLasRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPlLaMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTHnkMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLbMRUEdq3a_CVKGVcKw" visibility="public" type="_XqvEIGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPlLbcRUEdq3a_CVKGVcKw" name="upperBound" visibility="public" isQuery="true" bodyCondition="_xPlLb8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLbsRUEdq3a_CVKGVcKw" annotatedElement="_xPlLbcRUEdq3a_CVKGVcKw">
+ <body>The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPlLb8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPlLbcRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTHnkcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLccRUEdq3a_CVKGVcKw" visibility="public" type="_dRZxsGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xPxYoMRUEdq3a_CVKGVcKw" name="TypedElement" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPxYocRUEdq3a_CVKGVcKw" annotatedElement="_xPxYoMRUEdq3a_CVKGVcKw">
+ <body>A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. Typed element is an abstract metaclass.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTHnksRUEdq3a_CVKGVcKw" annotatedElement="_xPxYoMRUEdq3a_CVKGVcKw">
+ <body>A typed element is an element that has a type that serves as a constraint on the range of values the element can represent.
+Typed element is an abstract metaclass.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPxYosRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPxYo8RUEdq3a_CVKGVcKw" name="type" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" association="_xRrdO8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPxYpMRUEdq3a_CVKGVcKw" annotatedElement="_xPxYo8RUEdq3a_CVKGVcKw">
+ <body>Redefines the corresponding property from Basic to derive this information from the return result for this Operation.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTHnk8RUEdq3a_CVKGVcKw" annotatedElement="_xPxYo8RUEdq3a_CVKGVcKw">
+ <body>The type of the TypedElement.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTHnlMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTHnlcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xPfEzMRUEdq3a_CVKGVcKw" name="Feature" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfEzcRUEdq3a_CVKGVcKw" annotatedElement="_xPfEzMRUEdq3a_CVKGVcKw">
+ <body>A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPfEzsRUEdq3a_CVKGVcKw" general="_xPrSEcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTZ7eMRUEdq3a_CVKGVcKw" name="isStatic" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTZ7ecRUEdq3a_CVKGVcKw" annotatedElement="_xTZ7eMRUEdq3a_CVKGVcKw">
+ <body>Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xTZ7esRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPfEz8RUEdq3a_CVKGVcKw" name="featuringClassifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_xR3qhcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPfE0MRUEdq3a_CVKGVcKw" annotatedElement="_xPfEz8RUEdq3a_CVKGVcKw">
+ <body>Redefines the corresponding association in Abstractions.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTZ7e8RUEdq3a_CVKGVcKw" annotatedElement="_xPfEz8RUEdq3a_CVKGVcKw">
+ <body>The Classifiers that have this Feature as a feature.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTZ7fMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTZ7fcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xPrSEcRUEdq3a_CVKGVcKw" name="RedefinableElement" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSEsRUEdq3a_CVKGVcKw" annotatedElement="_xPrSEcRUEdq3a_CVKGVcKw">
+ <body>A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier. </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTgCEMRUEdq3a_CVKGVcKw" annotatedElement="_xPrSEcRUEdq3a_CVKGVcKw">
+ <body>A redefinable element is a named element that can be redefined in the context of a generalization. RedefinableElement is an abstract metaclass.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPrSE8RUEdq3a_CVKGVcKw" name="redefinition_context_valid" constrainedElement="_xPrSEcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSFMRUEdq3a_CVKGVcKw" annotatedElement="_xPrSE8RUEdq3a_CVKGVcKw">
+ <body>At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTgCEcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPrSFsRUEdq3a_CVKGVcKw" name="redefinition_consistent" constrainedElement="_xPrSEcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSF8RUEdq3a_CVKGVcKw" annotatedElement="_xPrSFsRUEdq3a_CVKGVcKw">
+ <body>A redefining element must be consistent with each redefined element.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTgCEsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.redefinedElement->forAll(re | re.isConsistentWith(self))</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPrSGcRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTgCE8RUEdq3a_CVKGVcKw" name="isLeaf" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTgCFMRUEdq3a_CVKGVcKw" annotatedElement="_xTgCE8RUEdq3a_CVKGVcKw">
+ <body>Indicates whether it is possible to further specialize a RedefinableElement. If the value is true, then it is not possible to further specialize the RedefinableElement.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xTgCFcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPrSHsRUEdq3a_CVKGVcKw" name="redefinedElement" visibility="public" type="_xPrSEcRUEdq3a_CVKGVcKw" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_xR3qg8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSH8RUEdq3a_CVKGVcKw" annotatedElement="_xPrSHsRUEdq3a_CVKGVcKw">
+ <body>The redefinable element that is being redefined by this element.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTgCFsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTgCF8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPrSGsRUEdq3a_CVKGVcKw" name="redefinitionContext" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_xR3qgcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSG8RUEdq3a_CVKGVcKw" annotatedElement="_xPrSGsRUEdq3a_CVKGVcKw">
+ <body>References the contexts that this element may be redefined from.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTgCGMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTgCGcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPrSIsRUEdq3a_CVKGVcKw" name="isConsistentWith" visibility="public" isQuery="true" precondition="_xTgCGsRUEdq3a_CVKGVcKw" bodyCondition="_xPrSJMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSI8RUEdq3a_CVKGVcKw" annotatedElement="_xPrSIsRUEdq3a_CVKGVcKw">
+ <body>The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xTgCGsRUEdq3a_CVKGVcKw" constrainedElement="_xPrSIsRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTgCG8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>redefinee.isRedefinitionContextValid(self)&#xA;&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPrSJMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPrSIsRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTgCHMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = false</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPrSJsRUEdq3a_CVKGVcKw" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPrSJ8RUEdq3a_CVKGVcKw" name="redefinee" visibility="public" type="_xPrSEcRUEdq3a_CVKGVcKw"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPrSKMRUEdq3a_CVKGVcKw" name="isRedefinitionContextValid" visibility="public" isQuery="true" bodyCondition="_xPrSKsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSKcRUEdq3a_CVKGVcKw" annotatedElement="_xPrSKMRUEdq3a_CVKGVcKw">
+ <body>The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPrSKsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPrSKMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTgCHcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)))</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPrSLMRUEdq3a_CVKGVcKw" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPrSLcRUEdq3a_CVKGVcKw" name="redefined" visibility="public" type="_xPrSEcRUEdq3a_CVKGVcKw" effect="read"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xPrSNMRUEdq3a_CVKGVcKw" name="StructuralFeature" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSNcRUEdq3a_CVKGVcKw" annotatedElement="_xPrSNMRUEdq3a_CVKGVcKw">
+ <body>A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier. Structural feature is an abstract metaclass.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPU8RUEdq3a_CVKGVcKw" annotatedElement="_xPrSNMRUEdq3a_CVKGVcKw">
+ <body>A structural feature is a typed feature of a classifier that specify the structure of instances of the classifier. Structural feature is an abstract metaclass.
+By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPrSNsRUEdq3a_CVKGVcKw" general="_xPfEzMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPrSN8RUEdq3a_CVKGVcKw" general="_xPxYoMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPrSOMRUEdq3a_CVKGVcKw" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTsPVMRUEdq3a_CVKGVcKw" name="isReadOnly" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPVcRUEdq3a_CVKGVcKw" annotatedElement="_xTsPVMRUEdq3a_CVKGVcKw">
+ <body>States whether the feature's value may be modified by a client.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xTsPVsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xTsPbMRUEdq3a_CVKGVcKw" name="Slot">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPbcRUEdq3a_CVKGVcKw" annotatedElement="_xTsPbMRUEdq3a_CVKGVcKw">
+ <body>A slot is owned by an instance specification. It specifies the value or values for its defining feature, which must be a structural feature of a classifier of the instance specification owning the slot.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xTsPbsRUEdq3a_CVKGVcKw" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTsPb8RUEdq3a_CVKGVcKw" name="owningInstance" type="_xTsPV8RUEdq3a_CVKGVcKw" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xVN5WsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPcMRUEdq3a_CVKGVcKw" annotatedElement="_xTsPb8RUEdq3a_CVKGVcKw">
+ <body>The instance specification that owns this slot.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTsPccRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTsPcsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTsPc8RUEdq3a_CVKGVcKw" name="definingFeature" type="_xPrSNMRUEdq3a_CVKGVcKw" association="_xVN5XMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPdMRUEdq3a_CVKGVcKw" annotatedElement="_xTsPc8RUEdq3a_CVKGVcKw">
+ <body>The structural feature that specifies the values that may be held by the slot.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTsPdcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTsPdsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTsPd8RUEdq3a_CVKGVcKw" name="value" type="_xPxYp8RUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xVgNPMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPeMRUEdq3a_CVKGVcKw" annotatedElement="_xTsPd8RUEdq3a_CVKGVcKw">
+ <body>The value or values corresponding to the defining feature for the owning instance specification.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTsPecRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTsPesRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SnNPIGwIEdq7X4sGURiZYA" name="PackageImport">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRZJVMRUEdq3a_CVKGVcKw" annotatedElement="_SnNPIGwIEdq7X4sGURiZYA">
+ <body>A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xRZJVcRUEdq3a_CVKGVcKw" name="public_or_private" constrainedElement="_SnNPIGwIEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRZJVsRUEdq3a_CVKGVcKw" annotatedElement="_xRZJVcRUEdq3a_CVKGVcKw">
+ <body>The visibility of a PackageImport is either public or private.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xT4clMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.visibility = #public or self.visibility = #private</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRZJWMRUEdq3a_CVKGVcKw" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRZJWcRUEdq3a_CVKGVcKw" name="visibility" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRZJWsRUEdq3a_CVKGVcKw" annotatedElement="_xRZJWcRUEdq3a_CVKGVcKw">
+ <body>Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:InstanceValue" xmi:id="_xT4clcRUEdq3a_CVKGVcKw" type="_AyM_oGwMEdq7X4sGURiZYA" instance="_xRrdM8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRZJYMRUEdq3a_CVKGVcKw" name="importingNamespace" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" subsettedProperty="_xPY-RMRUEdq3a_CVKGVcKw _xPY-V8RUEdq3a_CVKGVcKw" association="_xR3qYMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRZJYcRUEdq3a_CVKGVcKw" annotatedElement="_xRZJYMRUEdq3a_CVKGVcKw">
+ <body>Specifies the Namespace that imports the members from a Package.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xT4clsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xT4cl8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRZJXMRUEdq3a_CVKGVcKw" name="importedPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_xPY-SMRUEdq3a_CVKGVcKw" association="_xRxj4cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRZJXcRUEdq3a_CVKGVcKw" annotatedElement="_xRZJXMRUEdq3a_CVKGVcKw">
+ <body>Specifies the Package whose members are imported into a Namespace.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xT4cmMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xT4cmcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1ap4HLzEdqziYxiZo0YtA" name="DataType">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsgMRUEdq3a_CVKGVcKw" annotatedElement="__1ap4HLzEdqziYxiZo0YtA">
+ <body>A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types.
+
+A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUjK8MRUEdq3a_CVKGVcKw" annotatedElement="__1ap4HLzEdqziYxiZo0YtA">
+ <body>A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types.
+A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xQDsgcRUEdq3a_CVKGVcKw" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQDsgsRUEdq3a_CVKGVcKw" name="ownedAttribute" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_xPS3iMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw" association="_xRxjysRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsg8RUEdq3a_CVKGVcKw" annotatedElement="_xQDsgsRUEdq3a_CVKGVcKw">
+ <body>The Attributes owned by the DataType.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUjK8cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUjK8sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQDshsRUEdq3a_CVKGVcKw" name="ownedOperation" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_xPS3jMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw" association="_xRxjzcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsh8RUEdq3a_CVKGVcKw" annotatedElement="_xQDshsRUEdq3a_CVKGVcKw">
+ <body>The Operations owned by the DataType.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUjK88RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUjK9MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FDM9YHL0EdqziYxiZo0YtA" name="createOwnedOperation">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FDM9YXL0EdqziYxiZo0YtA" type="_M4X2IGveEdq4DLWZOhbdEA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FDM9YnL0EdqziYxiZo0YtA" name="name" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wfr4AaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wfr4AKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FDM9ZHL0EdqziYxiZo0YtA" name="parameterNames" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FDM9ZXL0EdqziYxiZo0YtA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FDM9ZnL0EdqziYxiZo0YtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FDM9Z3L0EdqziYxiZo0YtA" name="parameterTypes" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FDM9aHL0EdqziYxiZo0YtA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FDM9aXL0EdqziYxiZo0YtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_FDM9Y3L0EdqziYxiZo0YtA" name="returnType" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yc2vUaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yc2vUKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WJZCQHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WJZCQXL0EdqziYxiZo0YtA" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WJZCQnL0EdqziYxiZo0YtA" name="name" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0pOgQaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0pOgQKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WJZCQ3L0EdqziYxiZo0YtA" name="type" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2bXMQaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2bXMQKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WJZCRHL0EdqziYxiZo0YtA" name="lower" type="_XqvEIGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WJZCRXL0EdqziYxiZo0YtA" name="upper" type="_dRZxsGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xQDsisRUEdq3a_CVKGVcKw" name="inherit" isQuery="true" redefinedOperation="_xPY-MsRUEdq3a_CVKGVcKw" bodyCondition="_xQDsjMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsi8RUEdq3a_CVKGVcKw" annotatedElement="_xQDsisRUEdq3a_CVKGVcKw">
+ <body>The inherit operation is overridden to exclude redefined properties.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xQDsjMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xQDsisRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xQDsjcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xQDsjsRUEdq3a_CVKGVcKw" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xQDsj8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xQDskMRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xQDskcRUEdq3a_CVKGVcKw" name="inhs" type="_csVgUGvtEdqG6fBIPwe-mw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xQDsksRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xQDsk8RUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_I6N3UGwGEdq7X4sGURiZYA" name="Enumeration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDslMRUEdq3a_CVKGVcKw" annotatedElement="_I6N3UGwGEdq7X4sGURiZYA">
+ <body>Enumeration is a kind of data type, whose instances may be any of a number of predefined enumeration literals.
+It is possible to extend the set of applicable enumeration literals in other packages or profiles.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUjK9cRUEdq3a_CVKGVcKw" annotatedElement="_I6N3UGwGEdq7X4sGURiZYA">
+ <body>Enumeration is a kind of data type, whose instances may be any of a number of user-defined enumeration literals.
+It is possible to extend the set of applicable enumeration literals in other packages or profiles.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xQDslcRUEdq3a_CVKGVcKw" general="__1ap4HLzEdqziYxiZo0YtA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQDslsRUEdq3a_CVKGVcKw" name="ownedLiteral" visibility="public" type="_OQcbgGwOEdq7X4sGURiZYA" isOrdered="true" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xRxjyMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsl8RUEdq3a_CVKGVcKw" annotatedElement="_xQDslsRUEdq3a_CVKGVcKw">
+ <body>The ordered collection of literals for the enumeration.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUjK9sRUEdq3a_CVKGVcKw" annotatedElement="_xQDslsRUEdq3a_CVKGVcKw">
+ <body>The ordered set of literals for this Enumeration.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUjK98RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUjK-MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_OQcbgGwOEdq7X4sGURiZYA" name="EnumerationLiteral">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsmsRUEdq3a_CVKGVcKw" annotatedElement="_OQcbgGwOEdq7X4sGURiZYA">
+ <body>An enumeration literal is a value of an enumeration.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUjK-cRUEdq3a_CVKGVcKw" annotatedElement="_OQcbgGwOEdq7X4sGURiZYA">
+ <body>An enumeration literal is a user-defined data value for an enumeration.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xUjK-sRUEdq3a_CVKGVcKw" general="_xTsPV8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQDsnMRUEdq3a_CVKGVcKw" name="enumeration" visibility="public" type="_I6N3UGwGEdq7X4sGURiZYA" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xRxjyMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsncRUEdq3a_CVKGVcKw" annotatedElement="_xQDsnMRUEdq3a_CVKGVcKw">
+ <body>The enumeration that this literal belongs to.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUjK-8RUEdq3a_CVKGVcKw" annotatedElement="_xQDsnMRUEdq3a_CVKGVcKw">
+ <body>The Enumeration that this EnumerationLiteral is a member of.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUjK_MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUjK_cRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_V6vuYGwGEdq7X4sGURiZYA" name="PrimitiveType">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsoMRUEdq3a_CVKGVcKw" annotatedElement="_V6vuYGwGEdq7X4sGURiZYA">
+ <body>A primitive type defines a predefined data type, without any relevant substructure (i.e. it has no parts in the context of the UML). A primitive datatype may have an algebra and operations defined out of UML, for example, mathematically.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xQDsocRUEdq3a_CVKGVcKw" general="__1ap4HLzEdqziYxiZo0YtA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_AwvxoGwNEdq7X4sGURiZYA" name="Association">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPxYycRUEdq3a_CVKGVcKw" annotatedElement="_AwvxoGwNEdq7X4sGURiZYA">
+ <body>An association specifies a semantic relationship that can occur between typed instances. It has at least two ends represented by properties, each of which is connected to the type of the end. More than one end of an association may have the same type.
+
+An end property of an association that is owned by an end class or that is a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xUjK_sRUEdq3a_CVKGVcKw" name="specialized_end_number" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUjK_8RUEdq3a_CVKGVcKw" annotatedElement="_xUjK_sRUEdq3a_CVKGVcKw">
+ <body>An association specializing another association has the same number of ends as the other association.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xUjLAMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.parents()->forAll(p | p.memberEnd.size() = self.memberEnd.size())</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xUjLAcRUEdq3a_CVKGVcKw" name="specialized_end_types" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUjLAsRUEdq3a_CVKGVcKw" annotatedElement="_xUjLAcRUEdq3a_CVKGVcKw">
+ <body>When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xUjLA8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xUpRkMRUEdq3a_CVKGVcKw" name="binary_associations" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUpRkcRUEdq3a_CVKGVcKw" annotatedElement="_xUpRkMRUEdq3a_CVKGVcKw">
+ <body>Only binary associations can be aggregations.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xUpRksRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.memberEnd->exists(aggregation &lt;> Aggregation::none) implies self.memberEnd->size() = 2</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPxYysRUEdq3a_CVKGVcKw" name="association_ends" constrainedElement="_AwvxoGwNEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPxYy8RUEdq3a_CVKGVcKw" annotatedElement="_xPxYysRUEdq3a_CVKGVcKw">
+ <body>Association ends of associations with more than two ends must be owned by the association.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xUpRk8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPxYzsRUEdq3a_CVKGVcKw" general="_DH62EKPAEdqi_5gqUMOQtA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPxYzcRUEdq3a_CVKGVcKw" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPxYz8RUEdq3a_CVKGVcKw" name="isDerived" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPxY0MRUEdq3a_CVKGVcKw" annotatedElement="_xPxYz8RUEdq3a_CVKGVcKw">
+ <body>Specifies whether the association is derived from other model elements such as other associations or constraints.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xUpRlMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPxY0sRUEdq3a_CVKGVcKw" name="ownedEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_xP3fRMRUEdq3a_CVKGVcKw _xPS3jMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw" association="_xRrdRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPxY08RUEdq3a_CVKGVcKw" annotatedElement="_xPxY0sRUEdq3a_CVKGVcKw">
+ <body>The ends that are owned by the association itself. This is an ordered association.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUpRlcRUEdq3a_CVKGVcKw" annotatedElement="_xPxY0sRUEdq3a_CVKGVcKw">
+ <body>The ends that are owned by the association itself.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUpRlsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUpRl8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xP3fQMRUEdq3a_CVKGVcKw" name="endType" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw" isOrdered="true" isReadOnly="true" isDerived="true" subsettedProperty="_xPrSMMRUEdq3a_CVKGVcKw" association="_xRxjxcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xP3fQcRUEdq3a_CVKGVcKw" annotatedElement="_xP3fQMRUEdq3a_CVKGVcKw">
+ <body>References the classifiers that are used as types of the ends of the association.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUpRmMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUpRmcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xP3fRMRUEdq3a_CVKGVcKw" name="memberEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" subsettedProperty="_xPlLh8RUEdq3a_CVKGVcKw" association="_xR3qasRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xP3fRcRUEdq3a_CVKGVcKw" annotatedElement="_xP3fRMRUEdq3a_CVKGVcKw">
+ <body>Each end represents participation of instances of the classifier connected to the end in links of the association. This is an ordered association.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUpRmsRUEdq3a_CVKGVcKw" annotatedElement="_xP3fRMRUEdq3a_CVKGVcKw">
+ <body>Each end represents participation of instances of the classifier connected to the end in links of the association.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUpRm8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUpRnMRUEdq3a_CVKGVcKw" value="2"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xP3fSMRUEdq3a_CVKGVcKw" name="navigableOwnedEnd" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_xPxY0sRUEdq3a_CVKGVcKw" association="_xR9xCsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xP3fScRUEdq3a_CVKGVcKw" annotatedElement="_xP3fSMRUEdq3a_CVKGVcKw">
+ <body>The navigable ends that are owned by the association itself.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUpRncRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUpRnsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WSPusK69EdqjppZik4kD8A" name="isBinary">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YmN8cK69EdqjppZik4kD8A" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xUpRn8RUEdq3a_CVKGVcKw" name="endType" isQuery="true" bodyCondition="_xUpRocRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUpRoMRUEdq3a_CVKGVcKw" annotatedElement="_xUpRn8RUEdq3a_CVKGVcKw">
+ <body>endType is derived from the types of the member ends.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xUpRocRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xUpRn8RUEdq3a_CVKGVcKw _xP3fQMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xUpRosRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = self.memberEnd->collect(e | e.type)</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xUpRo8RUEdq3a_CVKGVcKw" type="_ynRtoGvtEdqG6fBIPwe-mw" isOrdered="true" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUpRpMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUpRpcRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DH62EKPAEdqi_5gqUMOQtA" name="Relationship" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSLsRUEdq3a_CVKGVcKw" annotatedElement="_DH62EKPAEdqi_5gqUMOQtA">
+ <body>A relationship references one or more related elements. Relationship is an abstract metaclass.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPrSL8RUEdq3a_CVKGVcKw" general="_kl90MGvbEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPrSMMRUEdq3a_CVKGVcKw" name="relatedElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_xR3qecRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSMcRUEdq3a_CVKGVcKw" annotatedElement="_xPrSMMRUEdq3a_CVKGVcKw">
+ <body>Specifies the elements related by the Relationship.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xU7ldMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xU7ldcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xRfP4MRUEdq3a_CVKGVcKw" name="PackageMerge">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRfP4cRUEdq3a_CVKGVcKw" annotatedElement="_xRfP4MRUEdq3a_CVKGVcKw">
+ <body>A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both.
+
+This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel.
+
+Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xU7ldsRUEdq3a_CVKGVcKw" annotatedElement="_xRfP4MRUEdq3a_CVKGVcKw">
+ <body>A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both. This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel.
+
+Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRfP4sRUEdq3a_CVKGVcKw" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRfP48RUEdq3a_CVKGVcKw" name="receivingPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_xPY-RMRUEdq3a_CVKGVcKw _xPY-V8RUEdq3a_CVKGVcKw" association="_xR3qcMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRfP5MRUEdq3a_CVKGVcKw" annotatedElement="_xRfP48RUEdq3a_CVKGVcKw">
+ <body>References the Package that is being extended with the contents of the merged package of the PackageMerge.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xU7ld8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xU7leMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRfP58RUEdq3a_CVKGVcKw" name="mergedPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_xPY-SMRUEdq3a_CVKGVcKw" association="_xR3qc8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRfP6MRUEdq3a_CVKGVcKw" annotatedElement="_xRfP58RUEdq3a_CVKGVcKw">
+ <body>References the Package that is to be merged with the receiving package of the PackageMerge.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xU7lecRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVBsEMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PyCx8GveEdq4DLWZOhbdEA" name="InstanceValue">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVBsEcRUEdq3a_CVKGVcKw" annotatedElement="_PyCx8GveEdq4DLWZOhbdEA">
+ <body>An instance value specifies the value modeled by an instance specification.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVBsEsRUEdq3a_CVKGVcKw" general="_xPxYp8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xVBsE8RUEdq3a_CVKGVcKw" name="instance" type="_xTsPV8RUEdq3a_CVKGVcKw" association="_xVgNOsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVBsFMRUEdq3a_CVKGVcKw" annotatedElement="_xVBsE8RUEdq3a_CVKGVcKw">
+ <body>The instance that is the specified value.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVBsFcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVBsFsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QUJ-oWWKEdq-f4093SZhVA" name="stringValue" isQuery="true">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SQIjIGWKEdq-f4093SZhVA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_T0RPYGWKEdq-f4093SZhVA" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Q-yR4GveEdq4DLWZOhbdEA" name="LiteralUnlimitedNatural">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVBsF8RUEdq3a_CVKGVcKw" annotatedElement="_Q-yR4GveEdq4DLWZOhbdEA">
+ <body>A literal unlimited natural contains a UnlimitedNatural-valued attribute.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVBsGMRUEdq3a_CVKGVcKw" general="_xSumD8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xVBsGcRUEdq3a_CVKGVcKw" name="value" type="_dRZxsGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVBsGsRUEdq3a_CVKGVcKw" annotatedElement="_xVBsGcRUEdq3a_CVKGVcKw">
+ <body>The specified UnlimitedNatural value.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVBsG8RUEdq3a_CVKGVcKw" type="_dRZxsGvsEdqG6fBIPwe-mw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lSARkGWKEdq-f4093SZhVA" name="stringValue" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_nyfRUGWKEdq-f4093SZhVA" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xVBsHMRUEdq3a_CVKGVcKw" name="isComputable" isQuery="true" redefinedOperation="_xPxYq8RUEdq3a_CVKGVcKw" bodyCondition="_xVBsHsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVBsHcRUEdq3a_CVKGVcKw" annotatedElement="_xVBsHMRUEdq3a_CVKGVcKw">
+ <body>The query isComputable() is redefined to be true.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xVBsHsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xVBsHMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xVBsH8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xVBsIMRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xVBsIcRUEdq3a_CVKGVcKw" name="unlimitedValue" isQuery="true" redefinedOperation="_xPxYv8RUEdq3a_CVKGVcKw" bodyCondition="_xVBsI8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVBsIsRUEdq3a_CVKGVcKw" annotatedElement="_xVBsIcRUEdq3a_CVKGVcKw">
+ <body>The query unlimitedValue() gives the value.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xVBsI8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xVBsIcRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xVBsJMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = value</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xVBsJcRUEdq3a_CVKGVcKw" type="_dRZxsGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ynRtoGvtEdqG6fBIPwe-mw" name="Type" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRfP68RUEdq3a_CVKGVcKw" annotatedElement="_ynRtoGvtEdqG6fBIPwe-mw">
+ <body>A type serves as a constraint on the range of values represented by a typed element. Type is an abstract metaclass.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRfP7cRUEdq3a_CVKGVcKw" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRfP7sRUEdq3a_CVKGVcKw" name="package" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xR3qaMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRfP78RUEdq3a_CVKGVcKw" annotatedElement="_xRfP7sRUEdq3a_CVKGVcKw">
+ <body>References the owning package of a package.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVBsJsRUEdq3a_CVKGVcKw" annotatedElement="_xRfP7sRUEdq3a_CVKGVcKw">
+ <body>Specifies the owning package of this classifier, if any.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVBsJ8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVBsKMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_RNEaIGwNEdq7X4sGURiZYA" name="createAssociation">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_URUOQGwNEdq7X4sGURiZYA" type="_AwvxoGwNEdq7X4sGURiZYA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_AEONYGwOEdq7X4sGURiZYA" name="end1IsNavigable" type="_UdivYGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7HueMGwNEdq7X4sGURiZYA" name="end1Aggregation" type="_B3q9cGwNEdq7X4sGURiZYA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_2TaaoGwNEdq7X4sGURiZYA" name="end1Name" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_x-QYQGwNEdq7X4sGURiZYA" name="end1Lower" type="_XqvEIGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_uL9yYGwNEdq7X4sGURiZYA" name="end1Upper" type="_dRZxsGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_qFQbsGwNEdq7X4sGURiZYA" name="end1Type" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_mB-McGwNEdq7X4sGURiZYA" name="end2IsNavigable" type="_UdivYGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_hm2sAGwNEdq7X4sGURiZYA" name="end2Aggregation" type="_B3q9cGwNEdq7X4sGURiZYA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_eK6JkGwNEdq7X4sGURiZYA" name="end2Name" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_auE2UGwNEdq7X4sGURiZYA" name="end2Lower" type="_XqvEIGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VprIUGwNEdq7X4sGURiZYA" name="end2Upper" type="_dRZxsGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_10fbsKPAEdqi_5gqUMOQtA" name="getAssociations">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5F3F0KPAEdqi_5gqUMOQtA" type="_AwvxoGwNEdq7X4sGURiZYA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7CRvMaPAEdqi_5gqUMOQtA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7CRvMKPAEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xRfP8sRUEdq3a_CVKGVcKw" name="conformsTo" visibility="public" isQuery="true" bodyCondition="_xRfP9MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRfP88RUEdq3a_CVKGVcKw" annotatedElement="_xRfP8sRUEdq3a_CVKGVcKw">
+ <body>The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xRfP9MRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xRfP8sRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xVBsKcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = false</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xRfP9sRUEdq3a_CVKGVcKw" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xRfP98RUEdq3a_CVKGVcKw" name="other" visibility="public" type="_ynRtoGvtEdqG6fBIPwe-mw"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xRlWhcRUEdq3a_CVKGVcKw" name="Expression">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRlWhsRUEdq3a_CVKGVcKw" annotatedElement="_xRlWhcRUEdq3a_CVKGVcKw">
+ <body>An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVBsKsRUEdq3a_CVKGVcKw" annotatedElement="_xRlWhcRUEdq3a_CVKGVcKw">
+ <body>An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRlWh8RUEdq3a_CVKGVcKw" general="_xPxYp8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xVHysMRUEdq3a_CVKGVcKw" name="symbol" type="_aAyVgGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVHyscRUEdq3a_CVKGVcKw" annotatedElement="_xVHysMRUEdq3a_CVKGVcKw">
+ <body>The symbol associated with the node in the expression tree.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVHyssRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVHys8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xRlWiMRUEdq3a_CVKGVcKw" name="operand" visibility="public" type="_xPxYp8RUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xR9xBcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRlWicRUEdq3a_CVKGVcKw" annotatedElement="_xRlWiMRUEdq3a_CVKGVcKw">
+ <body>Specifies a sequence of operands.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVHytMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVHytcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_B3q9cGwNEdq7X4sGURiZYA" name="AggregationKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVHytsRUEdq3a_CVKGVcKw" annotatedElement="_B3q9cGwNEdq7X4sGURiZYA">
+ <body>AggregationKind is an enumeration of the following literal values:
+• none Indicates that the property has no aggregation.
+• shared Indicates that the property has a shared aggregation.
+• composite Indicates that the property is aggregated compositely, i.e., the composite object has
+responsibility for the existence and storage of the composed objects (parts).
+</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xVHyt8RUEdq3a_CVKGVcKw" name="none">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVHyuMRUEdq3a_CVKGVcKw" annotatedElement="_xVHyt8RUEdq3a_CVKGVcKw">
+ <body>Indicates that the property has no aggregation.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xVHyucRUEdq3a_CVKGVcKw" name="shared">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVHyusRUEdq3a_CVKGVcKw" annotatedElement="_xVHyucRUEdq3a_CVKGVcKw">
+ <body>Indicates that the property has a shared aggregation.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xVHyu8RUEdq3a_CVKGVcKw" name="composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVHyvMRUEdq3a_CVKGVcKw" annotatedElement="_xVHyu8RUEdq3a_CVKGVcKw">
+ <body>Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts).</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_xRrdIMRUEdq3a_CVKGVcKw" name="ParameterDirectionKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdIcRUEdq3a_CVKGVcKw" annotatedElement="_xRrdIMRUEdq3a_CVKGVcKw">
+ <body>ParameterDirectionKind is an enumeration of the following literal values:
+ - in Indicates that parameter values are passed into the behavioral element by the caller.
+ - inout Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element.
+ - out Indicates that parameter values are passed from a behavioral element out to the caller.
+ - return Indicates that parameter values are passed as return values from a behavioral element back to the caller.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVHyvcRUEdq3a_CVKGVcKw" annotatedElement="_xRrdIMRUEdq3a_CVKGVcKw">
+ <body>ParameterDirectionKind is an enumeration of the following literal values:
+• in Indicates that parameter values are passed into the behavioral element by the caller.
+• inout Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element.
+• out Indicates that parameter values are passed from a behavioral element out to the caller.
+• return Indicates that parameter values are passed as return values from a behavioral element back to the caller.
+</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xRrdIsRUEdq3a_CVKGVcKw" name="in">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdI8RUEdq3a_CVKGVcKw" annotatedElement="_xRrdIsRUEdq3a_CVKGVcKw">
+ <body>Indicates that parameter values are passed into the behavioral element by the caller.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xRrdJMRUEdq3a_CVKGVcKw" name="inout">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdJcRUEdq3a_CVKGVcKw" annotatedElement="_xRrdJMRUEdq3a_CVKGVcKw">
+ <body>Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xRrdJsRUEdq3a_CVKGVcKw" name="out">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdJ8RUEdq3a_CVKGVcKw" annotatedElement="_xRrdJsRUEdq3a_CVKGVcKw">
+ <body>Indicates that parameter values are passed from a behavioral element out to the caller.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xRrdKMRUEdq3a_CVKGVcKw" name="return">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdKcRUEdq3a_CVKGVcKw" annotatedElement="_xRrdKMRUEdq3a_CVKGVcKw">
+ <body>Indicates that parameter values are passed as return values from a behavioral element back to the caller.</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_AyM_oGwMEdq7X4sGURiZYA" name="VisibilityKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdKsRUEdq3a_CVKGVcKw" annotatedElement="_AyM_oGwMEdq7X4sGURiZYA">
+ <body>VisibilityKind is an enumeration of the following literal values:
+ - public
+ - private
+ - protected
+ - package</body>
+ </ownedComment>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xRrdK8RUEdq3a_CVKGVcKw" name="bestVisibility" visibility="public" isQuery="true" precondition="_xVHyv8RUEdq3a_CVKGVcKw" bodyCondition="_xRrdLcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdLMRUEdq3a_CVKGVcKw" annotatedElement="_xRrdK8RUEdq3a_CVKGVcKw">
+ <body>The query bestVisibility() examines a set of VisibilityKinds, and returns public as the preferred visibility.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xVHyvsRUEdq3a_CVKGVcKw" annotatedElement="_xRrdK8RUEdq3a_CVKGVcKw">
+ <body>The query bestVisibility() examines a set of VisibilityKinds that includes only public and private, and returns public as the preferred visibility.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xVHyv8RUEdq3a_CVKGVcKw" constrainedElement="_xRrdK8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xVHywMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>pre: not vis->includes(#protected) and not vis->includes(#package)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xRrdLcRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xRrdK8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xVHywcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = if vis->includes(#public) then #public else #private endif</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xRrdL8RUEdq3a_CVKGVcKw" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xRrdMMRUEdq3a_CVKGVcKw" name="vis" visibility="public" type="_AyM_oGwMEdq7X4sGURiZYA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVHywsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVHyw8RUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xRrdM8RUEdq3a_CVKGVcKw" name="public">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdNMRUEdq3a_CVKGVcKw" annotatedElement="_xRrdM8RUEdq3a_CVKGVcKw">
+ <body>A public element is visible to all elements that can access the contents of the namespace that owns it.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xRrdNcRUEdq3a_CVKGVcKw" name="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdNsRUEdq3a_CVKGVcKw" annotatedElement="_xRrdNcRUEdq3a_CVKGVcKw">
+ <body>A private element is only visible inside the namespace that owns it.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xRrdN8RUEdq3a_CVKGVcKw" name="protected">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdOMRUEdq3a_CVKGVcKw" annotatedElement="_xRrdN8RUEdq3a_CVKGVcKw">
+ <body>A protected element is visible to elements that have a generalization relationship to the namespace that owns it.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xRrdOcRUEdq3a_CVKGVcKw" name="package">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xRrdOsRUEdq3a_CVKGVcKw" annotatedElement="_xRrdOcRUEdq3a_CVKGVcKw">
+ <body>A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible.</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qdsRUEdq3a_CVKGVcKw" name="A_ownedElement_owner" memberEnd="_xPY-U8RUEdq3a_CVKGVcKw _xPY-V8RUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qe8RUEdq3a_CVKGVcKw" name="A_source_directedRelationship" memberEnd="_xR3qfcRUEdq3a_CVKGVcKw _xPY-RMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qfMRUEdq3a_CVKGVcKw" general="_xR3qecRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qfcRUEdq3a_CVKGVcKw" visibility="public" type="_JBgfoKPAEdqi_5gqUMOQtA" redefinedProperty="_xR3qesRUEdq3a_CVKGVcKw" association="_xR3qe8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qfsRUEdq3a_CVKGVcKw" name="A_target_directedRelationship" memberEnd="_xR3qgMRUEdq3a_CVKGVcKw _xPY-SMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qf8RUEdq3a_CVKGVcKw" general="_xR3qecRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qgMRUEdq3a_CVKGVcKw" visibility="public" type="_JBgfoKPAEdqi_5gqUMOQtA" redefinedProperty="_xR3qesRUEdq3a_CVKGVcKw" association="_xR3qfsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qh8RUEdq3a_CVKGVcKw" name="A_constrainedElement_constraint" memberEnd="_xR3qiMRUEdq3a_CVKGVcKw _xQDsq8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qiMRUEdq3a_CVKGVcKw" visibility="public" type="_xQDsosRUEdq3a_CVKGVcKw" association="_xR3qh8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRrdO8RUEdq3a_CVKGVcKw" name="A_type_typedElement" memberEnd="_xRrdPMRUEdq3a_CVKGVcKw _xPxYo8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRrdPMRUEdq3a_CVKGVcKw" visibility="public" type="_xPxYoMRUEdq3a_CVKGVcKw" association="_xRrdO8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVN5UMRUEdq3a_CVKGVcKw" name="A_generalization_specific" memberEnd="_xTHnn8RUEdq3a_CVKGVcKw _xTmItsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVN5UcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVN5UsRUEdq3a_CVKGVcKw" general="_xR3qe8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVN5U8RUEdq3a_CVKGVcKw" name="A_general_generalization" memberEnd="_xTmIusRUEdq3a_CVKGVcKw _xVN5VcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVN5VMRUEdq3a_CVKGVcKw" general="_xR3qfsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVN5VcRUEdq3a_CVKGVcKw" type="_C7AF4GwREdq14q0ETb1t3g" redefinedProperty="_xR3qgMRUEdq3a_CVKGVcKw" association="_xVN5U8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qhcRUEdq3a_CVKGVcKw" name="A_feature_featuringClassifier" memberEnd="_xPfEz8RUEdq3a_CVKGVcKw _xPS3jMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qhsRUEdq3a_CVKGVcKw" general="_xR9xA8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxj18RUEdq3a_CVKGVcKw" name="A_ownedParameter_ownerFormalParam" memberEnd="_xRxj2cRUEdq3a_CVKGVcKw _xQP56cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj2MRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxj2cRUEdq3a_CVKGVcKw" name="ownerFormalParam" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xRxj18RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVN5VsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVN5V8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVN5WMRUEdq3a_CVKGVcKw" name="A_classifier_instanceSpecification" memberEnd="_xTsPYMRUEdq3a_CVKGVcKw _xVN5WcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVN5WcRUEdq3a_CVKGVcKw" type="_xTsPV8RUEdq3a_CVKGVcKw" association="_xVN5WMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVN5WsRUEdq3a_CVKGVcKw" name="A_slot_owningInstance" memberEnd="_xTsPb8RUEdq3a_CVKGVcKw _xTsPZMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVN5W8RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVN5XMRUEdq3a_CVKGVcKw" name="A_definingFeature_slot" memberEnd="_xTsPc8RUEdq3a_CVKGVcKw _xVN5XcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVN5XcRUEdq3a_CVKGVcKw" type="_xTsPbMRUEdq3a_CVKGVcKw" association="_xVN5XMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qd8RUEdq3a_CVKGVcKw" name="A_annotatedElement_comment" memberEnd="_xR3qeMRUEdq3a_CVKGVcKw _xRlWk8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qeMRUEdq3a_CVKGVcKw" visibility="public" type="_xRlWjMRUEdq3a_CVKGVcKw" association="_xR3qd8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xD8RUEdq3a_CVKGVcKw" name="A_ownedComment_owningElement" memberEnd="_xR9xEcRUEdq3a_CVKGVcKw _xPY-W8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xEMRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR9xEcRUEdq3a_CVKGVcKw" name="owningElement" visibility="public" type="_kl90MGvbEdq4DLWZOhbdEA" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xR9xD8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVN5XsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVN5X8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxj5MRUEdq3a_CVKGVcKw" name="A_importedElement_elementImport" memberEnd="_xRxj5sRUEdq3a_CVKGVcKw _xQWAb8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj5cRUEdq3a_CVKGVcKw" general="_xR3qfsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxj5sRUEdq3a_CVKGVcKw" visibility="public" type="_RPl78GwIEdq7X4sGURiZYA" redefinedProperty="_xR3qgMRUEdq3a_CVKGVcKw" association="_xRxj5MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xFMRUEdq3a_CVKGVcKw" name="A_inheritedMember_classifier" memberEnd="_xR9xFsRUEdq3a_CVKGVcKw _xPS3lMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xFcRUEdq3a_CVKGVcKw" general="_xR9xA8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR9xFsRUEdq3a_CVKGVcKw" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_xR9xBMRUEdq3a_CVKGVcKw" association="_xR9xFMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVT_8MRUEdq3a_CVKGVcKw" name="A_nestedClassifier_class" memberEnd="_xT-jMMRUEdq3a_CVKGVcKw _xVT_88RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVT_8cRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVT_8sRUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVT_88RUEdq3a_CVKGVcKw" name="class" type="_00owUGvdEdq4DLWZOhbdEA" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw _xPrSGsRUEdq3a_CVKGVcKw" association="_xVT_8MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVT_9MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVT_9cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRrdPcRUEdq3a_CVKGVcKw" name="A_ownedAttribute_class" memberEnd="_xP3fUcRUEdq3a_CVKGVcKw _xP9l7cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdP8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xu8A4MRUEdq3a_CVKGVcKw" general="_xXnGBMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRrdQMRUEdq3a_CVKGVcKw" name="A_ownedOperation_class" memberEnd="_xQJzP8RUEdq3a_CVKGVcKw _xP3fVcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdQcRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdQsRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdQ8RUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xF8RUEdq3a_CVKGVcKw" name="A_precondition_preContext" memberEnd="_xR9xGcRUEdq3a_CVKGVcKw _xQJzV8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xGMRUEdq3a_CVKGVcKw" general="_xR9xJsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR9xGcRUEdq3a_CVKGVcKw" name="preContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_xQDss8RUEdq3a_CVKGVcKw" association="_xR9xF8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVT_-MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVT_-cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xHMRUEdq3a_CVKGVcKw" name="A_postcondition_postContext" memberEnd="_xR9xHsRUEdq3a_CVKGVcKw _xQJzWsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xHcRUEdq3a_CVKGVcKw" general="_xR9xJsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR9xHsRUEdq3a_CVKGVcKw" name="postContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_xQDss8RUEdq3a_CVKGVcKw" association="_xR9xHMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVT_-sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVT_-8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxj1MRUEdq3a_CVKGVcKw" name="A_redefinedOperation_operation" memberEnd="_xRxj1sRUEdq3a_CVKGVcKw _xQJzS8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj1cRUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxj1sRUEdq3a_CVKGVcKw" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xRxj1MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRrdTsRUEdq3a_CVKGVcKw" name="A_redefinedProperty_property" memberEnd="_xRrdUMRUEdq3a_CVKGVcKw _xP9l9cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdT8RUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRrdUMRUEdq3a_CVKGVcKw" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xRrdTsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRrdRMRUEdq3a_CVKGVcKw" name="A_ownedEnd_owningAssociation" memberEnd="_xPxY0sRUEdq3a_CVKGVcKw _xP9l8cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdRcRUEdq3a_CVKGVcKw" general="_xR3qasRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdRsRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdR8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxjysRUEdq3a_CVKGVcKw" name="A_ownedAttribute_datatype" memberEnd="_xP9mAcRUEdq3a_CVKGVcKw _xQDsgsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxjy8RUEdq3a_CVKGVcKw" general="_xRrdSMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxjzMRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxjzcRUEdq3a_CVKGVcKw" name="A_ownedOperation_datatype" memberEnd="_xQJzQ8RUEdq3a_CVKGVcKw _xQDshsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxjzsRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxjz8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj0MRUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxjyMRUEdq3a_CVKGVcKw" name="A_ownedLiteral_enumeration" memberEnd="_xQDslsRUEdq3a_CVKGVcKw _xQDsnMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxjycRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxj58RUEdq3a_CVKGVcKw" name="A_elementImport_importingNamespace" memberEnd="_xPlLe8RUEdq3a_CVKGVcKw _xQWAc8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj6MRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj6cRUEdq3a_CVKGVcKw" general="_xR3qe8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qYMRUEdq3a_CVKGVcKw" name="A_packageImport_importingNamespace" memberEnd="_xPlLf8RUEdq3a_CVKGVcKw _xRZJYMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qYcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qYsRUEdq3a_CVKGVcKw" general="_xR3qe8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxj4cRUEdq3a_CVKGVcKw" name="A_importedPackage_packageImport" memberEnd="_xRxj48RUEdq3a_CVKGVcKw _xRZJXMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj4sRUEdq3a_CVKGVcKw" general="_xR3qfsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxj48RUEdq3a_CVKGVcKw" visibility="public" type="_SnNPIGwIEdq7X4sGURiZYA" redefinedProperty="_xR3qgMRUEdq3a_CVKGVcKw" association="_xRxj4cRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVaGkMRUEdq3a_CVKGVcKw" name="A_redefinedClassifier_classifier" memberEnd="_xTNuNMRUEdq3a_CVKGVcKw _xVaGksRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVaGkcRUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVaGksRUEdq3a_CVKGVcKw" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xVaGkMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qicRUEdq3a_CVKGVcKw" name="A_specification_owningConstraint" memberEnd="_xR3qi8RUEdq3a_CVKGVcKw _xQDsr8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qisRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qi8RUEdq3a_CVKGVcKw" name="owningConstraint" visibility="public" type="_xQDsosRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xR3qicRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVaGk8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVaGlMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVaGlcRUEdq3a_CVKGVcKw" name="A_defaultValue_owningParameter" memberEnd="_xTmIycRUEdq3a_CVKGVcKw _xVaGl8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVaGlsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVaGl8RUEdq3a_CVKGVcKw" name="owningParameter" type="_KyaPMGveEdq4DLWZOhbdEA" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xVaGlcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVaGmMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVaGmcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVaGmsRUEdq3a_CVKGVcKw" name="A_defaultValue_owningProperty" memberEnd="_xUEp5sRUEdq3a_CVKGVcKw _xVaGnMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVaGm8RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVaGnMRUEdq3a_CVKGVcKw" name="owningProperty" type="_Jp_1oGveEdq4DLWZOhbdEA" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xVaGmsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVaGncRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVaGnsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xJsRUEdq3a_CVKGVcKw" name="A_ownedRule_context" memberEnd="_xPlLi8RUEdq3a_CVKGVcKw _xQDss8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xJ8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xA8RUEdq3a_CVKGVcKw" name="A_member_namespace" memberEnd="_xR9xBMRUEdq3a_CVKGVcKw _xPlLh8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR9xBMRUEdq3a_CVKGVcKw" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" association="_xR9xA8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qecRUEdq3a_CVKGVcKw" name="A_relatedElement_relationship" memberEnd="_xR3qesRUEdq3a_CVKGVcKw _xPrSMMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qesRUEdq3a_CVKGVcKw" visibility="public" type="_DH62EKPAEdqi_5gqUMOQtA" association="_xR3qecRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxjxcRUEdq3a_CVKGVcKw" name="A_endType_association" memberEnd="_xRxjx8RUEdq3a_CVKGVcKw _xP3fQMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxjxsRUEdq3a_CVKGVcKw" general="_xR3qecRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxjx8RUEdq3a_CVKGVcKw" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" redefinedProperty="_xR3qesRUEdq3a_CVKGVcKw" association="_xRxjxcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVgNMMRUEdq3a_CVKGVcKw" name="A_upperValue_owningUpper" memberEnd="_xTBg-cRUEdq3a_CVKGVcKw _xVgNMsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVgNMcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVgNMsRUEdq3a_CVKGVcKw" name="owningUpper" type="_Gjgl0GveEdq4DLWZOhbdEA" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xVgNMMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVgNM8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVgNNMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVgNNcRUEdq3a_CVKGVcKw" name="A_lowerValue_owningLower" memberEnd="_xTBg_cRUEdq3a_CVKGVcKw _xVgNN8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVgNNsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVgNN8RUEdq3a_CVKGVcKw" name="owningLower" type="_Gjgl0GveEdq4DLWZOhbdEA" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xVgNNcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVgNOMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVgNOcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qcMRUEdq3a_CVKGVcKw" name="A_receivingPackage_packageMerge" memberEnd="_xQWAksRUEdq3a_CVKGVcKw _xRfP48RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qcsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qccRUEdq3a_CVKGVcKw" general="_xR3qe8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qc8RUEdq3a_CVKGVcKw" name="A_mergedPackage_packageMerge" memberEnd="_xR3qdcRUEdq3a_CVKGVcKw _xRfP58RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qdMRUEdq3a_CVKGVcKw" general="_xR3qfsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qdcRUEdq3a_CVKGVcKw" visibility="public" type="_xRfP4MRUEdq3a_CVKGVcKw" redefinedProperty="_xR3qgMRUEdq3a_CVKGVcKw" association="_xR3qc8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVgNOsRUEdq3a_CVKGVcKw" name="A_instance_instanceValue" memberEnd="_xVBsE8RUEdq3a_CVKGVcKw _xVgNO8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVgNO8RUEdq3a_CVKGVcKw" type="_PyCx8GveEdq4DLWZOhbdEA" association="_xVgNOsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVgNPMRUEdq3a_CVKGVcKw" name="A_value_owningSlot" memberEnd="_xTsPd8RUEdq3a_CVKGVcKw _xVgNPsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVgNPcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVgNPsRUEdq3a_CVKGVcKw" name="owningSlot" type="_xTsPbMRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xVgNPMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVgNP8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVgNQMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xVgNQcRUEdq3a_CVKGVcKw" name="A_specification_owningInstanceSpec" memberEnd="_xTsPaMRUEdq3a_CVKGVcKw _xVgNQ8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xVgNQsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xVgNQ8RUEdq3a_CVKGVcKw" name="owningInstanceSpec" type="_xTsPV8RUEdq3a_CVKGVcKw" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xVgNQcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVgNRMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVgNRcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qY8RUEdq3a_CVKGVcKw" name="A_packagedElement_owningPackage" memberEnd="_xR3qZcRUEdq3a_CVKGVcKw _xQWAgsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qZMRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qZcRUEdq3a_CVKGVcKw" name="owningPackage" visibility="public" type="_-cvRAGvzEdq7X4sGURiZYA" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xR3qY8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVgNRsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVgNR8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxj3sRUEdq3a_CVKGVcKw" name="A_importedMember_namespace" memberEnd="_xRxj4MRUEdq3a_CVKGVcKw _xPlLd8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj38RUEdq3a_CVKGVcKw" general="_xR9xA8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxj4MRUEdq3a_CVKGVcKw" visibility="public" type="_ZiwkoGwLEdq7X4sGURiZYA" redefinedProperty="_xR9xBMRUEdq3a_CVKGVcKw" association="_xRxj3sRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxjwMRUEdq3a_CVKGVcKw" name="A_opposite_property" memberEnd="_xRxjwcRUEdq3a_CVKGVcKw _xP9l_cRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxjwcRUEdq3a_CVKGVcKw" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_xRxjwMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRrdUcRUEdq3a_CVKGVcKw" name="A_subsettedProperty_property" memberEnd="_xRrdUsRUEdq3a_CVKGVcKw _xP9l-cRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRrdUsRUEdq3a_CVKGVcKw" visibility="public" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_xRrdUcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qasRUEdq3a_CVKGVcKw" name="A_memberEnd_association" memberEnd="_xP9mBcRUEdq3a_CVKGVcKw _xP3fRMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qa8RUEdq3a_CVKGVcKw" general="_xR9xA8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qaMRUEdq3a_CVKGVcKw" name="A_ownedType_package" memberEnd="_xRfP7sRUEdq3a_CVKGVcKw _xQWAhsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qacRUEdq3a_CVKGVcKw" general="_xR3qY8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qbMRUEdq3a_CVKGVcKw" name="A_nestedPackage_nestingPackage" memberEnd="_xQWAjsRUEdq3a_CVKGVcKw _xQWAisRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR3qbcRUEdq3a_CVKGVcKw" general="_xR3qY8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qg8RUEdq3a_CVKGVcKw" name="A_redefinedElement_redefinableElement" memberEnd="_xR3qhMRUEdq3a_CVKGVcKw _xPrSHsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qhMRUEdq3a_CVKGVcKw" visibility="public" type="_xPrSEcRUEdq3a_CVKGVcKw" association="_xR3qg8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVmT0MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVmT0cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qgcRUEdq3a_CVKGVcKw" name="A_redefinitionContext_redefinableElement" memberEnd="_xR3qgsRUEdq3a_CVKGVcKw _xPrSGsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qgsRUEdq3a_CVKGVcKw" visibility="public" type="_xPrSEcRUEdq3a_CVKGVcKw" association="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qjsRUEdq3a_CVKGVcKw" name="A_general_classifier" memberEnd="_xR3qj8RUEdq3a_CVKGVcKw _xPS3kMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qj8RUEdq3a_CVKGVcKw" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" association="_xR3qjsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxjwsRUEdq3a_CVKGVcKw" name="A_superClass_class" memberEnd="_xRxjxMRUEdq3a_CVKGVcKw _xP3fWcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxjw8RUEdq3a_CVKGVcKw" general="_xR3qjsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxjxMRUEdq3a_CVKGVcKw" visibility="public" type="_00owUGvdEdq4DLWZOhbdEA" redefinedProperty="_xR3qj8RUEdq3a_CVKGVcKw" association="_xRxjwsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xIcRUEdq3a_CVKGVcKw" name="A_bodyCondition_bodyContext" memberEnd="_xR9xI8RUEdq3a_CVKGVcKw _xQJzXcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xIsRUEdq3a_CVKGVcKw" general="_xR9xJsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR9xI8RUEdq3a_CVKGVcKw" name="bodyContext" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" subsettedProperty="_xQDss8RUEdq3a_CVKGVcKw" association="_xR9xIcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVmT0sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVmT08RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR3qbsRUEdq3a_CVKGVcKw" name="A_type_operation" memberEnd="_xR3qb8RUEdq3a_CVKGVcKw _xQJzT8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR3qb8RUEdq3a_CVKGVcKw" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" association="_xR3qbsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xDcRUEdq3a_CVKGVcKw" name="A_ownedParameter_operation" memberEnd="_xQP54sRUEdq3a_CVKGVcKw _xQJzU8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xDsRUEdq3a_CVKGVcKw" general="_xRxj18RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xBcRUEdq3a_CVKGVcKw" name="A_operand_expression" memberEnd="_xR9xB8RUEdq3a_CVKGVcKw _xRlWiMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xBsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR9xB8RUEdq3a_CVKGVcKw" name="expression" visibility="public" type="_xRlWhcRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xR9xBcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xVmT1MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xVmT1cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxj0cRUEdq3a_CVKGVcKw" name="A_raisedException_operation" memberEnd="_xRxj08RUEdq3a_CVKGVcKw _xQJzR8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRxj0sRUEdq3a_CVKGVcKw" general="_xRxj3MRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxj08RUEdq3a_CVKGVcKw" visibility="public" type="_M4X2IGveEdq4DLWZOhbdEA" redefinedProperty="_xRxj3cRUEdq3a_CVKGVcKw" association="_xRxj0cRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xCsRUEdq3a_CVKGVcKw" name="A_navigableOwnedEnd_association" memberEnd="_xR9xDMRUEdq3a_CVKGVcKw _xP3fSMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xC8RUEdq3a_CVKGVcKw" general="_xRrdRMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xR9xDMRUEdq3a_CVKGVcKw" visibility="public" type="_AwvxoGwNEdq7X4sGURiZYA" redefinedProperty="_xR9xBMRUEdq3a_CVKGVcKw" association="_xR9xCsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ChRfcGveEdq4DLWZOhbdEA" name="OpaqueExpression">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDstsRUEdq3a_CVKGVcKw" annotatedElement="_ChRfcGveEdq4DLWZOhbdEA">
+ <body>An opaque expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSofY8RUEdq3a_CVKGVcKw" annotatedElement="_ChRfcGveEdq4DLWZOhbdEA">
+ <body>An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.
+One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uXMRUEdq3a_CVKGVcKw" annotatedElement="_ChRfcGveEdq4DLWZOhbdEA">
+ <body>Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xQDst8RUEdq3a_CVKGVcKw" name="language_body_size" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsuMRUEdq3a_CVKGVcKw" annotatedElement="_xQDst8RUEdq3a_CVKGVcKw">
+ <body>If the language attribute is not empty, then the size of the body and language arrays must be the same.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSofZMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>language->notEmpty() implies (body->size() = language->size())</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xV-uXcRUEdq3a_CVKGVcKw" name="only_return_result_parameters" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uXsRUEdq3a_CVKGVcKw" annotatedElement="_xV-uXcRUEdq3a_CVKGVcKw">
+ <body>The behavior may only have return result parameters.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xV-uX8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.behavior.notEmpty() implies&#xA; self.behavior.ownedParameters->select(p | p.direction&lt;>#return)->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xV-uYMRUEdq3a_CVKGVcKw" name="one_return_result_parameter" constrainedElement="_ChRfcGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uYcRUEdq3a_CVKGVcKw" annotatedElement="_xV-uYMRUEdq3a_CVKGVcKw">
+ <body>The behavior must have exactly one return result parameter.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xV-uYsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.behavior.notEmpty() implies&#xA; self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xQDsusRUEdq3a_CVKGVcKw" general="_xPxYp8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQDsu8RUEdq3a_CVKGVcKw" name="body" visibility="public" type="_aAyVgGvsEdqG6fBIPwe-mw" isOrdered="true" aggregation="composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQDsvMRUEdq3a_CVKGVcKw" annotatedElement="_xQDsu8RUEdq3a_CVKGVcKw">
+ <body>The text of the expression, possibly in multiple languages.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xSofZcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xSofZsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xQJzIMRUEdq3a_CVKGVcKw" name="language" visibility="public" type="_aAyVgGvsEdqG6fBIPwe-mw" isOrdered="true" aggregation="composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xQJzIcRUEdq3a_CVKGVcKw" annotatedElement="_xQJzIMRUEdq3a_CVKGVcKw">
+ <body>Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the language. If languages are unspecified, it might be implicit from the expression body or the context. Languages are matched to body strings by order.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSofZ8RUEdq3a_CVKGVcKw" annotatedElement="_xQJzIMRUEdq3a_CVKGVcKw">
+ <body>Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xSofaMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xSofacRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xV-uY8RUEdq3a_CVKGVcKw" name="result" type="_KyaPMGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_xWE1BcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uZMRUEdq3a_CVKGVcKw" annotatedElement="_xV-uY8RUEdq3a_CVKGVcKw">
+ <body>Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xV-uZcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xV-uZsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xV-uZ8RUEdq3a_CVKGVcKw" name="behavior" type="_TUPtYGveEdq4DLWZOhbdEA" association="_xWE1CcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uaMRUEdq3a_CVKGVcKw" annotatedElement="_xV-uZ8RUEdq3a_CVKGVcKw">
+ <body>Specifies the behavior of the opaque expression.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xV-uacRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xV-uasRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_mv9LcFYiEdqB6vblk3tuMA" name="getResult" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vXTbwFYiEdqB6vblk3tuMA" type="_KyaPMGveEdq4DLWZOhbdEA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0JhNkVYiEdqB6vblk3tuMA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0JhNkFYiEdqB6vblk3tuMA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_qQchgGWKEdq-f4093SZhVA" name="stringValue" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sRo9MGWKEdq-f4093SZhVA" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSofasRUEdq3a_CVKGVcKw" name="value" isQuery="true" precondition="_xSofbcRUEdq3a_CVKGVcKw" bodyCondition="_xSofb8RUEdq3a_CVKGVcKw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xSofa8RUEdq3a_CVKGVcKw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSofbMRUEdq3a_CVKGVcKw" annotatedElement="_xSofasRUEdq3a_CVKGVcKw">
+ <body>The query value() gives an integer value for an expression intended to produce one.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSofbcRUEdq3a_CVKGVcKw" constrainedElement="_xSofasRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSofbsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.isIntegral()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSofb8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSofasRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSofcMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSofccRUEdq3a_CVKGVcKw" type="_XqvEIGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSofcsRUEdq3a_CVKGVcKw" name="isIntegral" isQuery="true" bodyCondition="_xSofdMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSofc8RUEdq3a_CVKGVcKw" annotatedElement="_xSofcsRUEdq3a_CVKGVcKw">
+ <body>The query isIntegral() tells whether an expression is intended to produce an integer.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSofdMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSofcsRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSofdcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = false</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSofdsRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSumAMRUEdq3a_CVKGVcKw" name="isPositive" isQuery="true" precondition="_xSumA8RUEdq3a_CVKGVcKw" bodyCondition="_xSumBcRUEdq3a_CVKGVcKw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xSumAcRUEdq3a_CVKGVcKw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumAsRUEdq3a_CVKGVcKw" annotatedElement="_xSumAMRUEdq3a_CVKGVcKw">
+ <body>The query isPositive() tells whether an integer expression has a positive value.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSumA8RUEdq3a_CVKGVcKw" constrainedElement="_xSumAMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSumBMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.isIntegral()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSumBcRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSumAMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSumBsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = false</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSumB8RUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xSumCMRUEdq3a_CVKGVcKw" name="isNonNegative" isQuery="true" precondition="_xSumCsRUEdq3a_CVKGVcKw" bodyCondition="_xSumDMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xSumCcRUEdq3a_CVKGVcKw" annotatedElement="_xSumCMRUEdq3a_CVKGVcKw">
+ <body>The query isNonNegative() tells whether an integer expression has a non-negative value.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSumCsRUEdq3a_CVKGVcKw" constrainedElement="_xSumCMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSumC8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.isIntegral()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xSumDMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xSumCMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSumDcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = false</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSumDsRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xV-uc8RUEdq3a_CVKGVcKw" name="OpaqueBehavior">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-udMRUEdq3a_CVKGVcKw" annotatedElement="_xV-uc8RUEdq3a_CVKGVcKw">
+ <body>An behavior with implementation-specific semantics.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xV-udcRUEdq3a_CVKGVcKw" general="_TUPtYGveEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xV-udsRUEdq3a_CVKGVcKw" name="body" type="_aAyVgGvsEdqG6fBIPwe-mw" isOrdered="true" aggregation="composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-ud8RUEdq3a_CVKGVcKw" annotatedElement="_xV-udsRUEdq3a_CVKGVcKw">
+ <body>Specifies the behavior in one or more languages.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xV-ueMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xV-uecRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xV-uesRUEdq3a_CVKGVcKw" name="language" type="_aAyVgGvsEdqG6fBIPwe-mw" isOrdered="true" aggregation="composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-ue8RUEdq3a_CVKGVcKw" annotatedElement="_xV-uesRUEdq3a_CVKGVcKw">
+ <body>Languages the body strings use in the same order as the body strings.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xV-ufMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xV-ufcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xV-ufsRUEdq3a_CVKGVcKw" name="FunctionBehavior">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uf8RUEdq3a_CVKGVcKw" annotatedElement="_xV-ufsRUEdq3a_CVKGVcKw">
+ <body>A function behavior is an opaque behavior that does not access or modify any objects or other external data.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xV-ugMRUEdq3a_CVKGVcKw" name="one_output_parameter" constrainedElement="_xV-ufsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-ugcRUEdq3a_CVKGVcKw" annotatedElement="_xV-ugMRUEdq3a_CVKGVcKw">
+ <body>A function behavior has at least one output parameter.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xV-ugsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.ownedParameters->&#xA; select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xV-ug8RUEdq3a_CVKGVcKw" name="types_of_parameters" constrainedElement="_xV-ufsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uhMRUEdq3a_CVKGVcKw" annotatedElement="_xV-ug8RUEdq3a_CVKGVcKw">
+ <body>The types of parameters are all data types, which may not nest anything but other datatypes.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xV-uhcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>def: hasAllDataTypeAttributes(d : DataType) : Boolean =&#xA; d.ownedAttribute->forAll(a |&#xA; a.type.oclIsTypeOf(DataType) and&#xA; hasAllDataTypeAttributes(a.type))&#xA;self.ownedParameters->forAll(p | p.type.notEmpty() and&#xA; p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p))</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xV-uhsRUEdq3a_CVKGVcKw" general="_xV-uc8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE08MRUEdq3a_CVKGVcKw" name="A_behavioredClassifier_ownedBehavior" memberEnd="_xV-uVMRUEdq3a_CVKGVcKw _xWE08sRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWE08cRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE08sRUEdq3a_CVKGVcKw" type="_iY7sMGvsEdqG6fBIPwe-mw" association="_xWE08MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE088RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE09MRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE09cRUEdq3a_CVKGVcKw" name="A_classifierBehavior_behavioredClassifier" memberEnd="_xV-uWMRUEdq3a_CVKGVcKw _xWE098RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWE09sRUEdq3a_CVKGVcKw" general="_xWE08MRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE098RUEdq3a_CVKGVcKw" type="_iY7sMGvsEdqG6fBIPwe-mw" redefinedProperty="_xWE08sRUEdq3a_CVKGVcKw" association="_xWE09cRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE0-MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE0-cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE0-sRUEdq3a_CVKGVcKw" name="A_redefinedBehavior_behavior" memberEnd="_xV4nwsRUEdq3a_CVKGVcKw _xWE0_MRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWE0-8RUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE0_MRUEdq3a_CVKGVcKw" type="_TUPtYGveEdq4DLWZOhbdEA" association="_xWE0-sRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE0_cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE0_sRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE0_8RUEdq3a_CVKGVcKw" name="A_method_specification" memberEnd="_xV4nxsRUEdq3a_CVKGVcKw _xV-ub8RUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE1AMRUEdq3a_CVKGVcKw" name="A_behavior_ownedParameter" memberEnd="_xV4nysRUEdq3a_CVKGVcKw _xWE1AsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWE1AcRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE1AsRUEdq3a_CVKGVcKw" type="_TUPtYGveEdq4DLWZOhbdEA" association="_xWE1AMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE1A8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE1BMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE1BcRUEdq3a_CVKGVcKw" name="A_result_opaqueExpression" memberEnd="_xV-uY8RUEdq3a_CVKGVcKw _xWE1BsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE1BsRUEdq3a_CVKGVcKw" type="_ChRfcGveEdq4DLWZOhbdEA" association="_xWE1BcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE1B8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE1CMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE1CcRUEdq3a_CVKGVcKw" name="A_behavior_opaqueExpression" memberEnd="_xV-uZ8RUEdq3a_CVKGVcKw _xWE1CsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE1CsRUEdq3a_CVKGVcKw" type="_ChRfcGveEdq4DLWZOhbdEA" association="_xWE1CcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE1C8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE1DMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE1DcRUEdq3a_CVKGVcKw" name="A_context_behavior" memberEnd="_xV4nzsRUEdq3a_CVKGVcKw _xWE1D8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWE1DsRUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE1D8RUEdq3a_CVKGVcKw" type="_TUPtYGveEdq4DLWZOhbdEA" association="_xWE1DcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE1EMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE1EcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE1EsRUEdq3a_CVKGVcKw" name="A_precondition_behavior" memberEnd="_xV4n0sRUEdq3a_CVKGVcKw _xWE1FMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWE1E8RUEdq3a_CVKGVcKw" general="_xR9xJsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE1FMRUEdq3a_CVKGVcKw" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_xQDss8RUEdq3a_CVKGVcKw" association="_xWE1EsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE1FcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE1FsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWE1F8RUEdq3a_CVKGVcKw" name="A_postcondition_behavior" memberEnd="_xV4n1cRUEdq3a_CVKGVcKw _xWE1GcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWE1GMRUEdq3a_CVKGVcKw" general="_xR9xJsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWE1GcRUEdq3a_CVKGVcKw" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_xQDss8RUEdq3a_CVKGVcKw" association="_xWE1F8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWE1GsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWE1G8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWK7lMRUEdq3a_CVKGVcKw" name="OpaqueAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7lcRUEdq3a_CVKGVcKw" annotatedElement="_xWK7lMRUEdq3a_CVKGVcKw">
+ <body>An action with implementation-specific semantics.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWK7lsRUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWK7l8RUEdq3a_CVKGVcKw" name="body" type="_aAyVgGvsEdqG6fBIPwe-mw" isOrdered="true" aggregation="composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7mMRUEdq3a_CVKGVcKw" annotatedElement="_xWK7l8RUEdq3a_CVKGVcKw">
+ <body>Specifies the action in one or more languages.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWK7mcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWK7msRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWK7m8RUEdq3a_CVKGVcKw" name="language" type="_aAyVgGvsEdqG6fBIPwe-mw" isOrdered="true" aggregation="composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7nMRUEdq3a_CVKGVcKw" annotatedElement="_xWK7m8RUEdq3a_CVKGVcKw">
+ <body>Languages the body strings use, in the same order as the body strings</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWK7ncRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWK7nsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWK7n8RUEdq3a_CVKGVcKw" name="inputValue" type="_xWK7uMRUEdq3a_CVKGVcKw" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xWXJC8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7oMRUEdq3a_CVKGVcKw" annotatedElement="_xWK7n8RUEdq3a_CVKGVcKw">
+ <body>Provides input to the action.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWK7ocRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWK7osRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWK7o8RUEdq3a_CVKGVcKw" name="outputValue" type="_xWK7tcRUEdq3a_CVKGVcKw" subsettedProperty="_xWXI08RUEdq3a_CVKGVcKw" association="_xWdPcMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7pMRUEdq3a_CVKGVcKw" annotatedElement="_xWK7o8RUEdq3a_CVKGVcKw">
+ <body>Takes output from the action.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWK7pcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWK7psRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWK7q8RUEdq3a_CVKGVcKw" name="ValuePin">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7rMRUEdq3a_CVKGVcKw" annotatedElement="_xWK7q8RUEdq3a_CVKGVcKw">
+ <body>A value pin is an input pin that provides a value by evaluating a value specification.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWK7rcRUEdq3a_CVKGVcKw" name="compatible_type" constrainedElement="_xWK7q8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7rsRUEdq3a_CVKGVcKw" annotatedElement="_xWK7rcRUEdq3a_CVKGVcKw">
+ <body>The type of value specification must be compatible with the type of the value pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWK7r8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWK7sMRUEdq3a_CVKGVcKw" general="_xWK7uMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWK7scRUEdq3a_CVKGVcKw" name="value" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" association="_xWXJBcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7ssRUEdq3a_CVKGVcKw" annotatedElement="_xWK7scRUEdq3a_CVKGVcKw">
+ <body>Value that the pin will provide.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWK7s8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWK7tMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWK7tcRUEdq3a_CVKGVcKw" name="OutputPin">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7tsRUEdq3a_CVKGVcKw" annotatedElement="_xWK7tcRUEdq3a_CVKGVcKw">
+ <body>An output pin is a pin that holds output values produced by an action.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWK7t8RUEdq3a_CVKGVcKw" general="_xWK7p8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWK7uMRUEdq3a_CVKGVcKw" name="InputPin">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7ucRUEdq3a_CVKGVcKw" annotatedElement="_xWK7uMRUEdq3a_CVKGVcKw">
+ <body>An input pin is a pin that holds input values to be consumed by an action.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWK7usRUEdq3a_CVKGVcKw" general="_xWK7p8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWRCMsRUEdq3a_CVKGVcKw" name="CallAction" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCM8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCMsRUEdq3a_CVKGVcKw">
+ <body>CallAction is an abstract class for actions that invoke behavior and receive return values.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCNMRUEdq3a_CVKGVcKw" name="synchronous_call" constrainedElement="_xWRCMsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCNcRUEdq3a_CVKGVcKw" annotatedElement="_xWRCNMRUEdq3a_CVKGVcKw">
+ <body>Only synchronous call actions can have result pins.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCNsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCN8RUEdq3a_CVKGVcKw" name="number_and_order" constrainedElement="_xWRCMsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCOMRUEdq3a_CVKGVcKw" annotatedElement="_xWRCN8RUEdq3a_CVKGVcKw">
+ <body>The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCOcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCOsRUEdq3a_CVKGVcKw" name="type_ordering_multiplicity" constrainedElement="_xWRCMsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCO8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCOsRUEdq3a_CVKGVcKw">
+ <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCPMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWRCPcRUEdq3a_CVKGVcKw" general="_xWK7u8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWRCPsRUEdq3a_CVKGVcKw" name="isSynchronous" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCP8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCPsRUEdq3a_CVKGVcKw">
+ <body>If true, the call is synchronous and the caller waits for completion of the invoked behavior.
+If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.
+</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xWRCQMRUEdq3a_CVKGVcKw" value="true"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWRCQcRUEdq3a_CVKGVcKw" name="result" type="_xWK7tcRUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" subsettedProperty="_xWXI08RUEdq3a_CVKGVcKw" association="_xWXI9cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCQsRUEdq3a_CVKGVcKw" annotatedElement="_xWRCQcRUEdq3a_CVKGVcKw">
+ <body>A list of output pins where the results of performing the invocation are placed.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWRCQ8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWRCRMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWRCRcRUEdq3a_CVKGVcKw" name="SendSignalAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCRsRUEdq3a_CVKGVcKw" annotatedElement="_xWRCRcRUEdq3a_CVKGVcKw">
+ <body>SendSignalAction is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may cause the firing of a state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. If the input is already a signal instance, use SendObjectAction.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCR8RUEdq3a_CVKGVcKw" name="number_order" constrainedElement="_xWRCRcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCSMRUEdq3a_CVKGVcKw" annotatedElement="_xWRCR8RUEdq3a_CVKGVcKw">
+ <body>The number and order of argument pins must be the same as the number and order of attributes in the signal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCScRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCSsRUEdq3a_CVKGVcKw" name="type_ordering_multiplicity" constrainedElement="_xWRCRcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCS8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCSsRUEdq3a_CVKGVcKw">
+ <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCTMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWRCTcRUEdq3a_CVKGVcKw" general="_xWK7u8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWRCTsRUEdq3a_CVKGVcKw" name="target" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xWXI7MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCT8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCTsRUEdq3a_CVKGVcKw">
+ <body>The target object to which the signal is sent.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWRCUMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWRCUcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWRCUsRUEdq3a_CVKGVcKw" name="signal" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_xWXI8cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCU8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCUsRUEdq3a_CVKGVcKw">
+ <body>The type of signal transmitted to the target object.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWRCVMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWRCVcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWRCVsRUEdq3a_CVKGVcKw" name="CallOperationAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCV8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCVsRUEdq3a_CVKGVcKw">
+ <body>CallOperationAction is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCWMRUEdq3a_CVKGVcKw" name="argument_pin_equal_parameter" constrainedElement="_xWRCVsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCWcRUEdq3a_CVKGVcKw" annotatedElement="_xWRCWMRUEdq3a_CVKGVcKw">
+ <body>The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCWsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCW8RUEdq3a_CVKGVcKw" name="result_pin_equal_parameter" constrainedElement="_xWRCVsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCXMRUEdq3a_CVKGVcKw" annotatedElement="_xWRCW8RUEdq3a_CVKGVcKw">
+ <body>The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCXcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCXsRUEdq3a_CVKGVcKw" name="type_ordering_multiplicity" constrainedElement="_xWRCVsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCX8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCXsRUEdq3a_CVKGVcKw">
+ <body>The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation.
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCYMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCYcRUEdq3a_CVKGVcKw" name="type_target_pin" constrainedElement="_xWRCVsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCYsRUEdq3a_CVKGVcKw" annotatedElement="_xWRCYcRUEdq3a_CVKGVcKw">
+ <body>The type of the target pin must be the same as the type that owns the operation.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCY8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWRCZMRUEdq3a_CVKGVcKw" general="_xWRCMsRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWRCZcRUEdq3a_CVKGVcKw" name="operation" type="_M4X2IGveEdq4DLWZOhbdEA" association="_xWXI48RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCZsRUEdq3a_CVKGVcKw" annotatedElement="_xWRCZcRUEdq3a_CVKGVcKw">
+ <body>The operation to be invoked by the action execution.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWRCZ8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWRCaMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWRCacRUEdq3a_CVKGVcKw" name="target" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xWXI58RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCasRUEdq3a_CVKGVcKw" annotatedElement="_xWRCacRUEdq3a_CVKGVcKw">
+ <body>The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWRCa8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWRCbMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWRCbcRUEdq3a_CVKGVcKw" name="CallBehaviorAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCbsRUEdq3a_CVKGVcKw" annotatedElement="_xWRCbcRUEdq3a_CVKGVcKw">
+ <body>CallBehaviorAction is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous. In particular, the invoked behavior may be an activity.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCb8RUEdq3a_CVKGVcKw" name="argument_pin_equal_parameter" constrainedElement="_xWRCbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCcMRUEdq3a_CVKGVcKw" annotatedElement="_xWRCb8RUEdq3a_CVKGVcKw">
+ <body>The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCccRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCcsRUEdq3a_CVKGVcKw" name="result_pin_equal_parameter" constrainedElement="_xWRCbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCc8RUEdq3a_CVKGVcKw" annotatedElement="_xWRCcsRUEdq3a_CVKGVcKw">
+ <body>The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCdMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWRCdcRUEdq3a_CVKGVcKw" name="type_ordering_multiplicity" constrainedElement="_xWRCbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCdsRUEdq3a_CVKGVcKw" annotatedElement="_xWRCdcRUEdq3a_CVKGVcKw">
+ <body>The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior.
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWRCd8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWRCeMRUEdq3a_CVKGVcKw" general="_xWRCMsRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWRCecRUEdq3a_CVKGVcKw" name="behavior" type="_TUPtYGveEdq4DLWZOhbdEA" association="_xWXI38RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWRCesRUEdq3a_CVKGVcKw" annotatedElement="_xWRCecRUEdq3a_CVKGVcKw">
+ <body>The invoked behavior. It must be capable of accepting and returning control.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWRCe8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWRCfMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXI38RUEdq3a_CVKGVcKw" name="A_behavior_callBehaviorAction" memberEnd="_xWRCecRUEdq3a_CVKGVcKw _xWXI4MRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXI4MRUEdq3a_CVKGVcKw" type="_xWRCbcRUEdq3a_CVKGVcKw" association="_xWXI38RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWXI4cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWXI4sRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXI48RUEdq3a_CVKGVcKw" name="A_operation_callOperationAction" memberEnd="_xWRCZcRUEdq3a_CVKGVcKw _xWXI5MRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXI5MRUEdq3a_CVKGVcKw" type="_xWRCVsRUEdq3a_CVKGVcKw" association="_xWXI48RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWXI5cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWXI5sRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXI58RUEdq3a_CVKGVcKw" name="A_target_callOperationAction" memberEnd="_xWRCacRUEdq3a_CVKGVcKw _xWXI6cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWXI6MRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXI6cRUEdq3a_CVKGVcKw" type="_xWRCVsRUEdq3a_CVKGVcKw" association="_xWXI58RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWXI6sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWXI68RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXI7MRUEdq3a_CVKGVcKw" name="A_target_sendSignalAction" memberEnd="_xWRCTsRUEdq3a_CVKGVcKw _xWXI7sRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWXI7cRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXI7sRUEdq3a_CVKGVcKw" type="_xWRCRcRUEdq3a_CVKGVcKw" association="_xWXI7MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWXI78RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWXI8MRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXI8cRUEdq3a_CVKGVcKw" name="A_signal_sendSignalAction" memberEnd="_xWRCUsRUEdq3a_CVKGVcKw _xWXI8sRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXI8sRUEdq3a_CVKGVcKw" type="_xWRCRcRUEdq3a_CVKGVcKw" association="_xWXI8cRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWXI88RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWXI9MRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXI9cRUEdq3a_CVKGVcKw" name="A_result_callAction" memberEnd="_xWRCQcRUEdq3a_CVKGVcKw _xWXI98RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWXI9sRUEdq3a_CVKGVcKw" general="_xWXI-8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXI98RUEdq3a_CVKGVcKw" type="_xWRCMsRUEdq3a_CVKGVcKw" redefinedProperty="_xWXI_cRUEdq3a_CVKGVcKw" association="_xWXI9cRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXI-MRUEdq3a_CVKGVcKw" name="A_argument_invocationAction" memberEnd="_xWK7vsRUEdq3a_CVKGVcKw _xWXI-sRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWXI-cRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXI-sRUEdq3a_CVKGVcKw" type="_xWK7u8RUEdq3a_CVKGVcKw" redefinedProperty="_xWXJAsRUEdq3a_CVKGVcKw" association="_xWXI-MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXI-8RUEdq3a_CVKGVcKw" name="A_action_output" memberEnd="_xWXI08RUEdq3a_CVKGVcKw _xWXI_cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWXI_MRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXI_cRUEdq3a_CVKGVcKw" type="_xWXI0MRUEdq3a_CVKGVcKw" association="_xWXI-8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWXI_sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWXI_8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXJAMRUEdq3a_CVKGVcKw" name="A_action_input" memberEnd="_xWXI18RUEdq3a_CVKGVcKw _xWXJAsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWXJAcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXJAsRUEdq3a_CVKGVcKw" type="_xWXI0MRUEdq3a_CVKGVcKw" association="_xWXJAMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWXJA8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWXJBMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXJBcRUEdq3a_CVKGVcKw" name="A_value_valuePin" memberEnd="_xWK7scRUEdq3a_CVKGVcKw _xWXJBsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXJBsRUEdq3a_CVKGVcKw" type="_xWK7q8RUEdq3a_CVKGVcKw" association="_xWXJBcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWXJB8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWXJCMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXJCcRUEdq3a_CVKGVcKw" name="A_context_action" memberEnd="_xWXI28RUEdq3a_CVKGVcKw _xWXJCsRUEdq3a_CVKGVcKw" isDerived="true">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXJCsRUEdq3a_CVKGVcKw" type="_xWXI0MRUEdq3a_CVKGVcKw" association="_xWXJCcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWXJC8RUEdq3a_CVKGVcKw" name="A_inputValue_opaqueAction" memberEnd="_xWK7n8RUEdq3a_CVKGVcKw _xWXJDcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWXJDMRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWXJDcRUEdq3a_CVKGVcKw" type="_xWK7lMRUEdq3a_CVKGVcKw" redefinedProperty="_xWXJAsRUEdq3a_CVKGVcKw" association="_xWXJC8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWdPcMRUEdq3a_CVKGVcKw" name="A_outputValue_opaqueAction" memberEnd="_xWK7o8RUEdq3a_CVKGVcKw _xWdPcsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWdPccRUEdq3a_CVKGVcKw" general="_xWXI-8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xWdPcsRUEdq3a_CVKGVcKw" type="_xWK7lMRUEdq3a_CVKGVcKw" redefinedProperty="_xWXI_cRUEdq3a_CVKGVcKw" association="_xWdPcMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWj9MMRUEdq3a_CVKGVcKw" name="A_subgroup_superGroup" memberEnd="_xWdPkcRUEdq3a_CVKGVcKw _xWdPlcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWj9McRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWwKe8RUEdq3a_CVKGVcKw" name="SequenceNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWwKfMRUEdq3a_CVKGVcKw" annotatedElement="_xWwKe8RUEdq3a_CVKGVcKw">
+ <body>A sequence node is a structured activity node that executes its actions in order.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWwKfcRUEdq3a_CVKGVcKw" general="_xWqDwMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWwKfsRUEdq3a_CVKGVcKw" name="executableNode" type="_xWwKeMRUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" redefinedProperty="_xWqDycRUEdq3a_CVKGVcKw" association="_xW8XusRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWwKf8RUEdq3a_CVKGVcKw" annotatedElement="_xWwKfsRUEdq3a_CVKGVcKw">
+ <body>An ordered set of executable nodes.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWwKgMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWwKgcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW2RBMRUEdq3a_CVKGVcKw" name="A_scope_variable" memberEnd="_xWqDxcRUEdq3a_CVKGVcKw _xWj9PcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xW2RBcRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW2RBsRUEdq3a_CVKGVcKw" name="A_node_inStructuredNode" memberEnd="_xWwKcMRUEdq3a_CVKGVcKw _xWqDycRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xW2RB8RUEdq3a_CVKGVcKw" general="_xWj9LcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW2RCMRUEdq3a_CVKGVcKw" name="A_clause_test" memberEnd="_xWqD-sRUEdq3a_CVKGVcKw _xW2RCcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW2RCcRUEdq3a_CVKGVcKw" type="_xWqD9MRUEdq3a_CVKGVcKw" association="_xW2RCMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW2RCsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW2RC8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW2RDMRUEdq3a_CVKGVcKw" name="A_clause_body" memberEnd="_xWqD_sRUEdq3a_CVKGVcKw _xW2RDcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW2RDcRUEdq3a_CVKGVcKw" type="_xWqD9MRUEdq3a_CVKGVcKw" association="_xW2RDMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW2RDsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW2RD8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW2REMRUEdq3a_CVKGVcKw" name="A_predecessorClause_successorClause" memberEnd="_xWqEAsRUEdq3a_CVKGVcKw _xWqEBsRUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW2REcRUEdq3a_CVKGVcKw" name="A_loopNode_bodyPart" memberEnd="_xWqD5MRUEdq3a_CVKGVcKw _xW2REsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW2REsRUEdq3a_CVKGVcKw" type="_xWqD3sRUEdq3a_CVKGVcKw" association="_xW2REcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW2RE8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW2RFMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW8XoMRUEdq3a_CVKGVcKw" name="A_loopNode_setupPart" memberEnd="_xWqD6MRUEdq3a_CVKGVcKw _xW8XocRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW8XocRUEdq3a_CVKGVcKw" type="_xWqD3sRUEdq3a_CVKGVcKw" association="_xW8XoMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW8XosRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW8Xo8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW8XpMRUEdq3a_CVKGVcKw" name="A_clause_conditionalNode" memberEnd="_xWqD2sRUEdq3a_CVKGVcKw _xW8XpsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xW8XpcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW8XpsRUEdq3a_CVKGVcKw" type="_xWqD0cRUEdq3a_CVKGVcKw" association="_xW8XpMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW8Xp8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW8XqMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW8XqcRUEdq3a_CVKGVcKw" name="A_decider_clause" memberEnd="_xWqECsRUEdq3a_CVKGVcKw _xW8XqsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW8XqsRUEdq3a_CVKGVcKw" type="_xWqD9MRUEdq3a_CVKGVcKw" association="_xW8XqcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW8Xq8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW8XrMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW8XrcRUEdq3a_CVKGVcKw" name="A_decider_loopNode" memberEnd="_xWqD7MRUEdq3a_CVKGVcKw _xW8XrsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW8XrsRUEdq3a_CVKGVcKw" type="_xWqD3sRUEdq3a_CVKGVcKw" association="_xW8XrcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW8Xr8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW8XsMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW8XscRUEdq3a_CVKGVcKw" name="A_test_loopNode" memberEnd="_xWqD8MRUEdq3a_CVKGVcKw _xW8XssRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW8XssRUEdq3a_CVKGVcKw" type="_xWqD3sRUEdq3a_CVKGVcKw" association="_xW8XscRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW8Xs8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW8XtMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW8XtcRUEdq3a_CVKGVcKw" name="A_activity_structuredNode" memberEnd="_xWqDzcRUEdq3a_CVKGVcKw _xWwKYMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xW8XtsRUEdq3a_CVKGVcKw" general="_xWj9K8RUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xW8Xt8RUEdq3a_CVKGVcKw" general="_xWj9LsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW8XuMRUEdq3a_CVKGVcKw" name="A_variable_activityScope" memberEnd="_xWwKZMRUEdq3a_CVKGVcKw _xWj9QcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xW8XucRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xW8XusRUEdq3a_CVKGVcKw" name="A_executableNode_sequenceNode" memberEnd="_xWwKfsRUEdq3a_CVKGVcKw _xW8XvMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xW8Xu8RUEdq3a_CVKGVcKw" general="_xW2RBsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xW8XvMRUEdq3a_CVKGVcKw" type="_xWwKe8RUEdq3a_CVKGVcKw" association="_xW8XusRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xW8XvcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xW8XvsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWj9K8RUEdq3a_CVKGVcKw" name="A_node_activity" memberEnd="_xWj9I8RUEdq3a_CVKGVcKw _xWdPfsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWj9LMRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xXCeQMRUEdq3a_CVKGVcKw" name="Usage">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeQcRUEdq3a_CVKGVcKw" annotatedElement="_xXCeQMRUEdq3a_CVKGVcKw">
+ <body>A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. In the metamodel, a Usage is a Dependency in which the client requires the presence of the supplier.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXCeQsRUEdq3a_CVKGVcKw" general="_rEDGkGwKEdq7X4sGURiZYA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xXCeQ8RUEdq3a_CVKGVcKw" name="Abstraction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeRMRUEdq3a_CVKGVcKw" annotatedElement="_xXCeQ8RUEdq3a_CVKGVcKw">
+ <body>An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints. In the metamodel, an Abstraction is a Dependency in which there is a mapping between the supplier and the client.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXCeRcRUEdq3a_CVKGVcKw" general="_rEDGkGwKEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXCeRsRUEdq3a_CVKGVcKw" name="mapping" type="_ChRfcGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xXOrgMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeR8RUEdq3a_CVKGVcKw" annotatedElement="_xXCeRsRUEdq3a_CVKGVcKw">
+ <body>An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXCeSMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXCeScRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_rEDGkGwKEdq7X4sGURiZYA" name="Dependency">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeSsRUEdq3a_CVKGVcKw" annotatedElement="_rEDGkGwKEdq7X4sGURiZYA">
+ <body>A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s).</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXCeS8RUEdq3a_CVKGVcKw" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXCeTMRUEdq3a_CVKGVcKw" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXCeTcRUEdq3a_CVKGVcKw" name="supplier" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_xPY-SMRUEdq3a_CVKGVcKw" association="_xXOrjcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeTsRUEdq3a_CVKGVcKw" annotatedElement="_xXCeTcRUEdq3a_CVKGVcKw">
+ <body>The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXCeT8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXCeUMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXCeUcRUEdq3a_CVKGVcKw" name="client" type="_csVgUGvtEdqG6fBIPwe-mw" subsettedProperty="_xPY-RMRUEdq3a_CVKGVcKw" association="_xXOrk8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeUsRUEdq3a_CVKGVcKw" annotatedElement="_xXCeUcRUEdq3a_CVKGVcKw">
+ <body>The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXCeU8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXCeVMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xXCeVcRUEdq3a_CVKGVcKw" name="Realization">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeVsRUEdq3a_CVKGVcKw" annotatedElement="_xXCeVcRUEdq3a_CVKGVcKw">
+ <body>Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXCeV8RUEdq3a_CVKGVcKw" general="_xXCeQ8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xXCeWMRUEdq3a_CVKGVcKw" name="Substitution">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeWcRUEdq3a_CVKGVcKw" annotatedElement="_xXCeWMRUEdq3a_CVKGVcKw">
+ <body>A substitution is a relationship between two classifiers signifies that the substitutingClassifier complies with the contract specified by the contract classifier. This implies that instances of the substitutingClassifier are runtime substitutable where instances of the contract classifier are expected.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXCeWsRUEdq3a_CVKGVcKw" general="_xXCeVcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXCeW8RUEdq3a_CVKGVcKw" name="contract" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_xXCeTcRUEdq3a_CVKGVcKw" association="_xXOrhcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeXMRUEdq3a_CVKGVcKw" annotatedElement="_xXCeW8RUEdq3a_CVKGVcKw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXCeXcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXCeXsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXCeX8RUEdq3a_CVKGVcKw" name="substitutingClassifier" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_xXCeUcRUEdq3a_CVKGVcKw" association="_xXOrisRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXCeYMRUEdq3a_CVKGVcKw" annotatedElement="_xXCeX8RUEdq3a_CVKGVcKw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXCeYcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXCeYsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ZiwkoGwLEdq7X4sGURiZYA" name="Namespace" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLcsRUEdq3a_CVKGVcKw" annotatedElement="_ZiwkoGwLEdq7X4sGURiZYA">
+ <body>A namespace has the ability to import either individial members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUpRpsRUEdq3a_CVKGVcKw" annotatedElement="_ZiwkoGwLEdq7X4sGURiZYA">
+ <body>A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass.
+
+A namespace can own constraints. The constraint does not necessarily apply to the namespace itself, but may also apply to elements in the namespace.
+
+A namespace has the ability to import either individual members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements.
+
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXIk5sRUEdq3a_CVKGVcKw" annotatedElement="_ZiwkoGwLEdq7X4sGURiZYA">
+ <body>A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPlLc8RUEdq3a_CVKGVcKw" name="members_distinguishable" constrainedElement="_ZiwkoGwLEdq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLdMRUEdq3a_CVKGVcKw" annotatedElement="_xPlLc8RUEdq3a_CVKGVcKw">
+ <body>All the members of a Namespace are distinguishable within it.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xUpRp8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>membersAreDistinguishable()</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xPlLdsRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPlLe8RUEdq3a_CVKGVcKw" name="elementImport" visibility="public" type="_RPl78GwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xRxj58RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLfMRUEdq3a_CVKGVcKw" annotatedElement="_xPlLe8RUEdq3a_CVKGVcKw">
+ <body>References the ElementImports owned by the Namespace.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUpRqMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUpRqcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPlLf8RUEdq3a_CVKGVcKw" name="packageImport" visibility="public" type="_SnNPIGwIEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xR3qYMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLgMRUEdq3a_CVKGVcKw" annotatedElement="_xPlLf8RUEdq3a_CVKGVcKw">
+ <body>References the PackageImports owned by the Namespace.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUvYMMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUvYMcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPlLi8RUEdq3a_CVKGVcKw" name="ownedRule" visibility="public" type="_xQDsosRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xR9xJsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUvYMsRUEdq3a_CVKGVcKw" annotatedElement="_xPlLi8RUEdq3a_CVKGVcKw">
+ <body>Specifies a set of Constraints owned by this Namespace.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUvYM8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUvYNMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPlLh8RUEdq3a_CVKGVcKw" name="member" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="_xR9xA8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLiMRUEdq3a_CVKGVcKw" annotatedElement="_xPlLh8RUEdq3a_CVKGVcKw">
+ <body>Redefines the corresponding property of Abstractions::Namespaces::Namespace.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUvYOMRUEdq3a_CVKGVcKw" annotatedElement="_xPlLh8RUEdq3a_CVKGVcKw">
+ <body>A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUvYOcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUvYOsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPlLd8RUEdq3a_CVKGVcKw" name="importedMember" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" subsettedProperty="_xPlLh8RUEdq3a_CVKGVcKw" association="_xRxj3sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLeMRUEdq3a_CVKGVcKw" annotatedElement="_xPlLd8RUEdq3a_CVKGVcKw">
+ <body>References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUvYO8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUvYPMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xPlLg8RUEdq3a_CVKGVcKw" name="ownedMember" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" isDerivedUnion="true" aggregation="composite" subsettedProperty="_xPlLh8RUEdq3a_CVKGVcKw _xPY-U8RUEdq3a_CVKGVcKw" association="_xR9xAMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLhMRUEdq3a_CVKGVcKw" annotatedElement="_xPlLg8RUEdq3a_CVKGVcKw">
+ <body>Redefines the corresponding property of Abstractions::Namespaces::Namespace.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUvYNcRUEdq3a_CVKGVcKw" annotatedElement="_xPlLg8RUEdq3a_CVKGVcKw">
+ <body>A collection of NamedElements owned by the Namespace.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXIk58RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXIk6MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_vI18QGwLEdq7X4sGURiZYA" name="createElementImport">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwes4GwLEdq7X4sGURiZYA" type="_RPl78GwIEdq7X4sGURiZYA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_yOllMGwLEdq7X4sGURiZYA" name="element" type="_jKxnwGwLEdq7X4sGURiZYA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9mppoGwLEdq7X4sGURiZYA" name="visibility" type="_AyM_oGwMEdq7X4sGURiZYA" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FRpmcGwMEdq7X4sGURiZYA" name="createPackageImport">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_IdWGYGwMEdq7X4sGURiZYA" type="_SnNPIGwIEdq7X4sGURiZYA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RsevcGwMEdq7X4sGURiZYA" name="package_" type="_-cvRAGvzEdq7X4sGURiZYA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_OxwqwGwMEdq7X4sGURiZYA" name="visibility" type="_AyM_oGwMEdq7X4sGURiZYA" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aoDYwGwLEdq7X4sGURiZYA" name="getImportedElements" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_mL5PYGwLEdq7X4sGURiZYA" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n-CicWwLEdq7X4sGURiZYA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n-CicGwLEdq7X4sGURiZYA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2OvA4GwLEdq7X4sGURiZYA" name="getImportedPackages" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_40lo0GwLEdq7X4sGURiZYA" type="_-cvRAGvzEdq7X4sGURiZYA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6sF9AWwLEdq7X4sGURiZYA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6sF9AGwLEdq7X4sGURiZYA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPlLjsRUEdq3a_CVKGVcKw" name="importedMember" visibility="public" isQuery="true" bodyCondition="_xPlLkMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLj8RUEdq3a_CVKGVcKw" annotatedElement="_xPlLjsRUEdq3a_CVKGVcKw">
+ <body>The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUvYPcRUEdq3a_CVKGVcKw" annotatedElement="_xPlLjsRUEdq3a_CVKGVcKw">
+ <body>The importedMember property is derived from the ElementImports and the PackageImports.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPlLkMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPlLjsRUEdq3a_CVKGVcKw _xPlLd8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xUvYPsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = self.importMembers(self.elementImport.importedElement.asSet()-&#xA;>union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLksRUEdq3a_CVKGVcKw" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUvYP8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUvYQMRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPlLlcRUEdq3a_CVKGVcKw" name="getNamesOfMember" visibility="public" isQuery="true" bodyCondition="_xPlLl8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLlsRUEdq3a_CVKGVcKw" annotatedElement="_xPlLlcRUEdq3a_CVKGVcKw">
+ <body>The query getNamesOfMember() is overridden to take account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xUvYQcRUEdq3a_CVKGVcKw" annotatedElement="_xPlLlcRUEdq3a_CVKGVcKw">
+ <body>The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPlLl8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPlLlcRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xUvYQsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA; if elementImports->notEmpty()&#xA; then elementImports->collect(el | el.getName())&#xA; else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA; endif&#xA;endif</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLmcRUEdq3a_CVKGVcKw" visibility="public" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUvYQ8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUvYRMRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLnMRUEdq3a_CVKGVcKw" name="element" visibility="public" type="_csVgUGvtEdqG6fBIPwe-mw"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPrSCsRUEdq3a_CVKGVcKw" name="membersAreDistinguishable" visibility="public" isQuery="true" bodyCondition="_xPrSDMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSC8RUEdq3a_CVKGVcKw" annotatedElement="_xPrSCsRUEdq3a_CVKGVcKw">
+ <body>The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPrSDMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPrSCsRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xU1e0MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = self.member->forAll( memb |&#xA;self.member->excluding(memb)->forAll(other |&#xA;memb.isDistinguishableFrom(other, self)))</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPrSDsRUEdq3a_CVKGVcKw" visibility="public" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPlLncRUEdq3a_CVKGVcKw" name="importMembers" visibility="public" isQuery="true" bodyCondition="_xPlLn8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPlLnsRUEdq3a_CVKGVcKw" annotatedElement="_xPlLncRUEdq3a_CVKGVcKw">
+ <body>The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPlLn8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPlLncRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xU1e0cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem |&#xA;mem.imp.isDistinguishableFrom(mem, self)))</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLocRUEdq3a_CVKGVcKw" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xU1e0sRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xU1e08RUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPlLpMRUEdq3a_CVKGVcKw" name="imps" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xPlLpcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xPlLpsRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xPrSAMRUEdq3a_CVKGVcKw" name="excludeCollisions" visibility="public" isQuery="true" bodyCondition="_xPrSAsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPrSAcRUEdq3a_CVKGVcKw" annotatedElement="_xPrSAMRUEdq3a_CVKGVcKw">
+ <body>The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xPrSAsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xPrSAMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xU1e1MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPrSBMRUEdq3a_CVKGVcKw" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xU1e1cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xU1e1sRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPrSB8RUEdq3a_CVKGVcKw" name="imps" visibility="public" type="_jKxnwGwLEdq7X4sGURiZYA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xPrSCMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xPrSCcRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXOrgMRUEdq3a_CVKGVcKw" name="A_mapping_abstraction" memberEnd="_xXCeRsRUEdq3a_CVKGVcKw _xXOrgsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXOrgcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXOrgsRUEdq3a_CVKGVcKw" type="_xXCeQ8RUEdq3a_CVKGVcKw" association="_xXOrgMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXOrg8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXOrhMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXOrhcRUEdq3a_CVKGVcKw" name="A_contract_substitution" memberEnd="_xXCeW8RUEdq3a_CVKGVcKw _xXOrh8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXOrhsRUEdq3a_CVKGVcKw" general="_xXOrjcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXOrh8RUEdq3a_CVKGVcKw" type="_xXCeWMRUEdq3a_CVKGVcKw" association="_xXOrhcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXOriMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXOricRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXOrisRUEdq3a_CVKGVcKw" name="A_substitution_substitutingClassifier" memberEnd="_xXCeZMRUEdq3a_CVKGVcKw _xXCeX8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXOri8RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXOrjMRUEdq3a_CVKGVcKw" general="_xXOrk8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXOrjcRUEdq3a_CVKGVcKw" name="A_supplierDependency_supplier" memberEnd="_xXCeTcRUEdq3a_CVKGVcKw _xXOrj8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXOrjsRUEdq3a_CVKGVcKw" general="_xR3qfsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXOrj8RUEdq3a_CVKGVcKw" name="supplierDependency" type="_rEDGkGwKEdq7X4sGURiZYA" association="_xXOrjcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXOrkMRUEdq3a_CVKGVcKw" annotatedElement="_xXOrj8RUEdq3a_CVKGVcKw">
+ <body>Indicates the dependencies that reference the supplier.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXOrkcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXOrksRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXOrk8RUEdq3a_CVKGVcKw" name="A_clientDependency_client" memberEnd="_xXCeUcRUEdq3a_CVKGVcKw _xXIk4MRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXOrlMRUEdq3a_CVKGVcKw" general="_xR3qe8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xR9xAMRUEdq3a_CVKGVcKw" name="A_ownedMember_namespace" memberEnd="_xPlLg8RUEdq3a_CVKGVcKw _xRfQC8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xAcRUEdq3a_CVKGVcKw" general="_xR9xA8RUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xR9xAsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l2mXcHLzEdqziYxiZo0YtA" name="InterfaceRealization">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXOrqsRUEdq3a_CVKGVcKw" annotatedElement="_l2mXcHLzEdqziYxiZo0YtA">
+ <body>An InterfaceRealization is a specialized Realization relationship between a Classifier and an Interface. This relationship signifies that the realizing classifier conforms to the contract specified by the Interface.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXUyIMRUEdq3a_CVKGVcKw" general="_xXCeVcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXUyIcRUEdq3a_CVKGVcKw" name="contract" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_xXCeTcRUEdq3a_CVKGVcKw" association="_xXUyPsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXUyIsRUEdq3a_CVKGVcKw" annotatedElement="_xXUyIcRUEdq3a_CVKGVcKw">
+ <body>References the Interface specifying the conformance contract.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXUyI8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXUyJMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXUyJcRUEdq3a_CVKGVcKw" name="implementingClassifier" type="_iY7sMGvsEdqG6fBIPwe-mw" subsettedProperty="_xXCeUcRUEdq3a_CVKGVcKw" association="_xXa4wMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXUyJsRUEdq3a_CVKGVcKw" annotatedElement="_xXUyJcRUEdq3a_CVKGVcKw">
+ <body>References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points).</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXUyJ8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXUyKMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXUyNMRUEdq3a_CVKGVcKw" name="A_interface_ownedAttribute" memberEnd="_xXOrmsRUEdq3a_CVKGVcKw _xXUyN8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXUyNcRUEdq3a_CVKGVcKw" general="_xRrdSMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXUyNsRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXUyN8RUEdq3a_CVKGVcKw" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_xRrdS8RUEdq3a_CVKGVcKw _xRfQC8RUEdq3a_CVKGVcKw _xPfEz8RUEdq3a_CVKGVcKw" association="_xXUyNMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXUyOMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXUyOcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXUyOsRUEdq3a_CVKGVcKw" name="A_interface_ownedOperation" memberEnd="_xXUyMMRUEdq3a_CVKGVcKw _xXOrnsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXUyO8RUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXUyPMRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXUyPcRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXUyPsRUEdq3a_CVKGVcKw" name="A_contract_interfaceRealization" memberEnd="_xXUyIcRUEdq3a_CVKGVcKw _xXUyQMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXUyP8RUEdq3a_CVKGVcKw" general="_xXOrjcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXUyQMRUEdq3a_CVKGVcKw" type="_l2mXcHLzEdqziYxiZo0YtA" association="_xXUyPsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXUyQcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXUyQsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXa4wMRUEdq3a_CVKGVcKw" name="A_interfaceRealization_implementingClassifier" memberEnd="_xXUyJcRUEdq3a_CVKGVcKw _xXUyK8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXa4wcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXa4wsRUEdq3a_CVKGVcKw" general="_xXOrk8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXa4w8RUEdq3a_CVKGVcKw" name="A_nestedClassifier_interface" memberEnd="_xXOrosRUEdq3a_CVKGVcKw _xXa4xsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXa4xMRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXa4xcRUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXa4xsRUEdq3a_CVKGVcKw" type="_8Ugn8GvtEdqG6fBIPwe-mw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw _xPrSGsRUEdq3a_CVKGVcKw" association="_xXa4w8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXa4x8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXa4yMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXa4ycRUEdq3a_CVKGVcKw" name="A_interface_redefinedInterface" memberEnd="_xXOrpsRUEdq3a_CVKGVcKw _xXa4y8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXa4ysRUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXa4y8RUEdq3a_CVKGVcKw" type="_8Ugn8GvtEdqG6fBIPwe-mw" association="_xXa4ycRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXa4zMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXa4zcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FQiVsGwYEdqHKKVoxc0dlA" name="StructuredClassifier" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXg_YMRUEdq3a_CVKGVcKw" annotatedElement="_FQiVsGwYEdqHKKVoxc0dlA">
+ <body>A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xXg_YcRUEdq3a_CVKGVcKw" name="multiplicities" constrainedElement="_FQiVsGwYEdqHKKVoxc0dlA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXg_YsRUEdq3a_CVKGVcKw" annotatedElement="_xXg_YcRUEdq3a_CVKGVcKw">
+ <body>The multiplicities on connected elements must be consistent.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xXg_Y8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXg_ZMRUEdq3a_CVKGVcKw" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXg_ZcRUEdq3a_CVKGVcKw" name="ownedAttribute" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_xXg_bcRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw _xPS3iMRUEdq3a_CVKGVcKw" association="_xXnGBMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXg_ZsRUEdq3a_CVKGVcKw" annotatedElement="_xXg_ZcRUEdq3a_CVKGVcKw">
+ <body>References the properties owned by the classifier.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXg_Z8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXg_aMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXg_acRUEdq3a_CVKGVcKw" name="part" type="_Jp_1oGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_xXnGC8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXg_asRUEdq3a_CVKGVcKw" annotatedElement="_xXg_acRUEdq3a_CVKGVcKw">
+ <body>References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXg_a8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXg_bMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXg_bcRUEdq3a_CVKGVcKw" name="role" type="_xXg_dcRUEdq3a_CVKGVcKw" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="_xPlLh8RUEdq3a_CVKGVcKw" association="_xXnGD8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXg_bsRUEdq3a_CVKGVcKw" annotatedElement="_xXg_bcRUEdq3a_CVKGVcKw">
+ <body>References the roles that instances may play in this classifier.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXg_b8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXg_cMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXg_ccRUEdq3a_CVKGVcKw" name="ownedConnector" type="_xXa428RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPS3jMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw" association="_xXnGFMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXg_csRUEdq3a_CVKGVcKw" annotatedElement="_xXg_ccRUEdq3a_CVKGVcKw">
+ <body>References the connectors owned by the classifier.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXg_c8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXg_dMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_YorvMHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YorvMXL0EdqziYxiZo0YtA" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YorvMnL0EdqziYxiZo0YtA" name="name" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gKEUcaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gKEUcKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YorvM3L0EdqziYxiZo0YtA" name="type" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iJ7TYaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iJ7TYKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YorvNHL0EdqziYxiZo0YtA" name="lower" type="_XqvEIGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YorvNXL0EdqziYxiZo0YtA" name="upper" type="_dRZxsGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGAMRUEdq3a_CVKGVcKw" name="A_type_connector" memberEnd="_xXa458RUEdq3a_CVKGVcKw _xXnGAcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXnGAcRUEdq3a_CVKGVcKw" type="_xXa428RUEdq3a_CVKGVcKw" association="_xXnGAMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXnGAsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXnGA8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGBMRUEdq3a_CVKGVcKw" name="A_ownedAttribute_structuredClassifier" memberEnd="_xXg_ZcRUEdq3a_CVKGVcKw _xXnGCMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGBcRUEdq3a_CVKGVcKw" general="_xXnGD8RUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGBsRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGB8RUEdq3a_CVKGVcKw" general="_xRrdSMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXnGCMRUEdq3a_CVKGVcKw" type="_FQiVsGwYEdqHKKVoxc0dlA" redefinedProperty="_xXnGEcRUEdq3a_CVKGVcKw" association="_xXnGBMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXnGCcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXnGCsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGC8RUEdq3a_CVKGVcKw" name="A_part_structuredClassifier" memberEnd="_xXg_acRUEdq3a_CVKGVcKw _xXnGDMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXnGDMRUEdq3a_CVKGVcKw" type="_FQiVsGwYEdqHKKVoxc0dlA" association="_xXnGC8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXnGDcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXnGDsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGD8RUEdq3a_CVKGVcKw" name="A_role_structuredClassifier" memberEnd="_xXg_bcRUEdq3a_CVKGVcKw _xXnGEcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGEMRUEdq3a_CVKGVcKw" general="_xR9xA8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXnGEcRUEdq3a_CVKGVcKw" type="_FQiVsGwYEdqHKKVoxc0dlA" association="_xXnGD8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXnGEsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXnGE8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGFMRUEdq3a_CVKGVcKw" name="A_ownedConnector_structuredClassifier" memberEnd="_xXg_ccRUEdq3a_CVKGVcKw _xXnGGMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGFcRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGFsRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGF8RUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXnGGMRUEdq3a_CVKGVcKw" type="_FQiVsGwYEdqHKKVoxc0dlA" subsettedProperty="_xPrSGsRUEdq3a_CVKGVcKw" association="_xXnGFMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXnGGcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXnGGsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGG8RUEdq3a_CVKGVcKw" name="A_redefinedConnector_connector" memberEnd="_xXa468RUEdq3a_CVKGVcKw _xXnGHcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGHMRUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXnGHcRUEdq3a_CVKGVcKw" type="_xXa428RUEdq3a_CVKGVcKw" association="_xXnGG8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXnGHsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXnGH8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGIMRUEdq3a_CVKGVcKw" name="A_end_connector" memberEnd="_xXa478RUEdq3a_CVKGVcKw _xXnGIsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXnGIcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXnGIsRUEdq3a_CVKGVcKw" type="_xXa428RUEdq3a_CVKGVcKw" association="_xXnGIMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXnGI8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXnGJMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGJcRUEdq3a_CVKGVcKw" name="A_definingEnd_connectorEnd" memberEnd="_xXa408RUEdq3a_CVKGVcKw _xXnGJsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXnGJsRUEdq3a_CVKGVcKw" type="_aOgw0GveEdq4DLWZOhbdEA" association="_xXnGJcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXnGJ8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXnGKMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXnGKcRUEdq3a_CVKGVcKw" name="A_end_role" memberEnd="_xXa418RUEdq3a_CVKGVcKw _xXg_eMRUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRrdSMRUEdq3a_CVKGVcKw" name="A_attribute_classifier" memberEnd="_xPS3iMRUEdq3a_CVKGVcKw _xRrdS8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdScRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xRrdSsRUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRrdS8RUEdq3a_CVKGVcKw" name="classifier" visibility="public" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_xPrSGsRUEdq3a_CVKGVcKw" association="_xRrdSMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXtMoMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXtMocRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWj9NsRUEdq3a_CVKGVcKw" name="Variable">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWj9N8RUEdq3a_CVKGVcKw" annotatedElement="_xWj9NsRUEdq3a_CVKGVcKw">
+ <body>A variable specifies data storage shared by the actions within a group. There are actions to write and read variables. These actions are treated as side effecting actions, similar to the actions to write and read object attributes and associations. There are no sequencing constraints among actions that access the same variable. Such actions must be explicitly coordinated by control flows or other constraints.
+
+Any values contained by a variable must conform to the type of the variable and have cardinalities allowed by the multiplicity of the variable.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMpcRUEdq3a_CVKGVcKw" annotatedElement="_xWj9NsRUEdq3a_CVKGVcKw">
+ <body>A variable is considered a connectable element.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWj9OMRUEdq3a_CVKGVcKw" name="owned" constrainedElement="_xWj9NsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWj9OcRUEdq3a_CVKGVcKw" annotatedElement="_xWj9OMRUEdq3a_CVKGVcKw">
+ <body>A variable is owned by a StructuredNode or Activity, but not both.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWj9OsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWj9PMRUEdq3a_CVKGVcKw" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXtMpsRUEdq3a_CVKGVcKw" general="_xXg_dcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWj9PcRUEdq3a_CVKGVcKw" name="scope" type="_xWqDwMRUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xW2RBMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWj9PsRUEdq3a_CVKGVcKw" annotatedElement="_xWj9PcRUEdq3a_CVKGVcKw">
+ <body>A structured activity node that owns the variable.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWj9P8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWj9QMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWj9QcRUEdq3a_CVKGVcKw" name="activityScope" type="_xWdPeMRUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xW8XuMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWj9QsRUEdq3a_CVKGVcKw" annotatedElement="_xWj9QcRUEdq3a_CVKGVcKw">
+ <body>An activity that owns the variable.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWj9Q8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWj9RMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xWj9RcRUEdq3a_CVKGVcKw" name="isAccessibleBy" isQuery="true" bodyCondition="_xWj9R8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWj9RsRUEdq3a_CVKGVcKw" annotatedElement="_xWj9RcRUEdq3a_CVKGVcKw">
+ <body>The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xWj9R8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xWj9RcRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xWj9SMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xWj9ScRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xWj9SsRUEdq3a_CVKGVcKw" name="a" type="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xXtMp8RUEdq3a_CVKGVcKw" name="CollaborationUse">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMqMRUEdq3a_CVKGVcKw" annotatedElement="_xXtMp8RUEdq3a_CVKGVcKw">
+ <body>A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations.
+
+Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xXtMqcRUEdq3a_CVKGVcKw" name="client_elements" constrainedElement="_xXtMp8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMqsRUEdq3a_CVKGVcKw" annotatedElement="_xXtMqcRUEdq3a_CVKGVcKw">
+ <body>All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xXtMq8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xXtMrMRUEdq3a_CVKGVcKw" name="every_role" constrainedElement="_xXtMp8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMrcRUEdq3a_CVKGVcKw" annotatedElement="_xXtMrMRUEdq3a_CVKGVcKw">
+ <body>Every role in the collaboration is bound within the collaboration use to a connectable element within the classifier or operation.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xXtMrsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xXtMr8RUEdq3a_CVKGVcKw" name="connectors" constrainedElement="_xXtMp8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMsMRUEdq3a_CVKGVcKw" annotatedElement="_xXtMr8RUEdq3a_CVKGVcKw">
+ <body>The connectors in the classifier connect according to the connectors in the collaboration</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xXtMscRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXtMssRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXtMs8RUEdq3a_CVKGVcKw" name="type" type="_xXtMu8RUEdq3a_CVKGVcKw" association="_xXzTTcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMtMRUEdq3a_CVKGVcKw" annotatedElement="_xXtMs8RUEdq3a_CVKGVcKw">
+ <body>The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXtMtcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXtMtsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXtMt8RUEdq3a_CVKGVcKw" name="roleBinding" type="_rEDGkGwKEdq7X4sGURiZYA" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xXzTUcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMuMRUEdq3a_CVKGVcKw" annotatedElement="_xXtMt8RUEdq3a_CVKGVcKw">
+ <body>A mapping between features of the collaboration type and features of the classifier or operation. This mapping indicates which connectable element of the classifier or operation plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles).
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXtMucRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXtMusRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xXtMu8RUEdq3a_CVKGVcKw" name="Collaboration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMvMRUEdq3a_CVKGVcKw" annotatedElement="_xXtMu8RUEdq3a_CVKGVcKw">
+ <body>A collaboration is represented as a kind of classifier and defines a set of cooperating entities to be played by instances (its roles), as well as a set of connectors that define communication paths between the participating instances. The cooperating entities are the properties of the collaboration.
+
+A collaboration specifies a view (or projection) of a set of cooperating classifiers. It describes the required links between instances that play the roles of the collaboration, as well as the features required of the classifiers that specify the participating instances. Several collaborations may describe different projections of the same set of classifiers.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXtMvsRUEdq3a_CVKGVcKw" general="_FQiVsGwYEdqHKKVoxc0dlA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXtMv8RUEdq3a_CVKGVcKw" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXtMwMRUEdq3a_CVKGVcKw" name="collaborationRole" type="_xXg_dcRUEdq3a_CVKGVcKw" subsettedProperty="_xXg_bcRUEdq3a_CVKGVcKw" association="_xX5Z5cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXtMwcRUEdq3a_CVKGVcKw" annotatedElement="_xXtMwMRUEdq3a_CVKGVcKw">
+ <body>References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXtMwsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXtMw8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXzTTcRUEdq3a_CVKGVcKw" name="A_type_collaborationUse" memberEnd="_xXtMs8RUEdq3a_CVKGVcKw _xXzTTsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXzTTsRUEdq3a_CVKGVcKw" type="_xXtMp8RUEdq3a_CVKGVcKw" association="_xXzTTcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXzTT8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXzTUMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXzTUcRUEdq3a_CVKGVcKw" name="A_roleBinding_collaborationUse" memberEnd="_xXtMt8RUEdq3a_CVKGVcKw _xXzTU8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXzTUsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXzTU8RUEdq3a_CVKGVcKw" type="_xXtMp8RUEdq3a_CVKGVcKw" association="_xXzTUcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXzTVMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXzTVcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xXzTVsRUEdq3a_CVKGVcKw" name="A_classifier_representation" memberEnd="_xXzTQMRUEdq3a_CVKGVcKw _xXzTWMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXzTV8RUEdq3a_CVKGVcKw" general="_xX5Z4MRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xXzTWMRUEdq3a_CVKGVcKw" type="_6UV2QGwJEdq7X4sGURiZYA" redefinedProperty="_xX5Z4sRUEdq3a_CVKGVcKw" association="_xXzTVsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXzTWcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXzTWsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xX5Z4MRUEdq3a_CVKGVcKw" name="A_collaborationUse_classifier" memberEnd="_xXzTRMRUEdq3a_CVKGVcKw _xX5Z4sRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xX5Z4cRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xX5Z4sRUEdq3a_CVKGVcKw" type="_6UV2QGwJEdq7X4sGURiZYA" association="_xX5Z4MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xX5Z48RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xX5Z5MRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xX5Z5cRUEdq3a_CVKGVcKw" name="A_collaborationRole_collaboration" memberEnd="_xXtMwMRUEdq3a_CVKGVcKw _xX5Z58RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xX5Z5sRUEdq3a_CVKGVcKw" general="_xXnGD8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xX5Z58RUEdq3a_CVKGVcKw" type="_xXtMu8RUEdq3a_CVKGVcKw" redefinedProperty="_xXnGEcRUEdq3a_CVKGVcKw" association="_xX5Z5cRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xX5Z6MRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xX5Z6cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xX5Z9MRUEdq3a_CVKGVcKw" name="ControlNode" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX5Z9cRUEdq3a_CVKGVcKw" annotatedElement="_xX5Z9MRUEdq3a_CVKGVcKw">
+ <body>A control node is an activity node used to coordinate the flows between other nodes. It covers initial node, final node and its children, fork node, join node, decision node, and merge node.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xX5Z9sRUEdq3a_CVKGVcKw" general="_xWj9IMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xX5aFMRUEdq3a_CVKGVcKw" name="ControlFlow">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX5aFcRUEdq3a_CVKGVcKw" annotatedElement="_xX5aFMRUEdq3a_CVKGVcKw">
+ <body>Objects and data cannot pass along a control flow edge.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xX5aFsRUEdq3a_CVKGVcKw" name="object_nodes" constrainedElement="_xX5aFMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX5aF8RUEdq3a_CVKGVcKw" annotatedElement="_xX5aFsRUEdq3a_CVKGVcKw">
+ <body>Control flows may not have object nodes at either end, except for object nodes with control type.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xX5aGMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xX5aGcRUEdq3a_CVKGVcKw" general="_xX5Z98RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xX_gjMRUEdq3a_CVKGVcKw" name="InitialNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_gjcRUEdq3a_CVKGVcKw" annotatedElement="_xX_gjMRUEdq3a_CVKGVcKw">
+ <body>An activity may have more than one initial node.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xX_gjsRUEdq3a_CVKGVcKw" name="no_incoming_edges" constrainedElement="_xX_gjMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_gj8RUEdq3a_CVKGVcKw" annotatedElement="_xX_gjsRUEdq3a_CVKGVcKw">
+ <body>An initial node has no incoming edges.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xX_gkMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xX_gkcRUEdq3a_CVKGVcKw" name="control_edges" constrainedElement="_xX_gjMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_gksRUEdq3a_CVKGVcKw" annotatedElement="_xX_gkcRUEdq3a_CVKGVcKw">
+ <body>Only control edges can have initial nodes as source.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xX_gk8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xX_glMRUEdq3a_CVKGVcKw" general="_xX5Z9MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xX_gpcRUEdq3a_CVKGVcKw" name="ActivityParameterNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_gpsRUEdq3a_CVKGVcKw" annotatedElement="_xX_gpcRUEdq3a_CVKGVcKw">
+ <body>Activity parameter nodes are object nodes at the beginning and end of flows that provide a means to accept inputs to an activity and provide outputs from the activity, through the activity parameters.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xX_gp8RUEdq3a_CVKGVcKw" name="has_parameters" constrainedElement="_xX_gpcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_gqMRUEdq3a_CVKGVcKw" annotatedElement="_xX_gp8RUEdq3a_CVKGVcKw">
+ <body>Activity parameter nodes must have parameters from the containing activity.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xX_gqcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xX_gqsRUEdq3a_CVKGVcKw" name="same_type" constrainedElement="_xX_gpcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_gq8RUEdq3a_CVKGVcKw" annotatedElement="_xX_gqsRUEdq3a_CVKGVcKw">
+ <body>The type of an activity parameter node is the same as the type of its parameter.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xX_grMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xX_grcRUEdq3a_CVKGVcKw" name="no_edges" constrainedElement="_xX_gpcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_grsRUEdq3a_CVKGVcKw" annotatedElement="_xX_grcRUEdq3a_CVKGVcKw">
+ <body>An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xX_gr8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xX_gsMRUEdq3a_CVKGVcKw" name="no_incoming_edges" constrainedElement="_xX_gpcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_gscRUEdq3a_CVKGVcKw" annotatedElement="_xX_gsMRUEdq3a_CVKGVcKw">
+ <body>Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction.
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xX_gssRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xX_gs8RUEdq3a_CVKGVcKw" name="no_outgoing_edges" constrainedElement="_xX_gpcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_gtMRUEdq3a_CVKGVcKw" annotatedElement="_xX_gs8RUEdq3a_CVKGVcKw">
+ <body>Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xX_gtcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xX_gtsRUEdq3a_CVKGVcKw" general="_xX5Z6sRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xX_gt8RUEdq3a_CVKGVcKw" name="parameter" type="_KyaPMGveEdq4DLWZOhbdEA" association="_xYFnOMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_guMRUEdq3a_CVKGVcKw" annotatedElement="_xX_gt8RUEdq3a_CVKGVcKw">
+ <body>The parameter the object node will be accepting or providing values for.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xX_gucRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xX_gusRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYFnM8RUEdq3a_CVKGVcKw" name="A_activity_edge" memberEnd="_xX5aAMRUEdq3a_CVKGVcKw _xYFnL8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYFnNMRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYFnNcRUEdq3a_CVKGVcKw" name="A_outgoing_source" memberEnd="_xX_gv8RUEdq3a_CVKGVcKw _xX5aBMRUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYFnNsRUEdq3a_CVKGVcKw" name="A_target_incoming" memberEnd="_xX5aCMRUEdq3a_CVKGVcKw _xX_gw8RUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYFnOMRUEdq3a_CVKGVcKw" name="A_parameter_activityParameterNode" memberEnd="_xX_gt8RUEdq3a_CVKGVcKw _xYFnOcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYFnOcRUEdq3a_CVKGVcKw" type="_xX_gpcRUEdq3a_CVKGVcKw" association="_xYFnOMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYFnOsRUEdq3a_CVKGVcKw" name="A_redefinedNode_activityNode" memberEnd="_xYFnIMRUEdq3a_CVKGVcKw _xYFnPMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYFnO8RUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYFnPMRUEdq3a_CVKGVcKw" type="_xWj9IMRUEdq3a_CVKGVcKw" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xYFnOsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYFnPcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYFnPsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYLtwMRUEdq3a_CVKGVcKw" name="A_redefinedEdge_activityEdge" memberEnd="_xX5aEMRUEdq3a_CVKGVcKw _xYLtwsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYLtwcRUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYLtwsRUEdq3a_CVKGVcKw" type="_xX5Z98RUEdq3a_CVKGVcKw" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xYLtwMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLtw8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLtxMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_gfgNwGveEdq4DLWZOhbdEA" name="Message">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0b8RUEdq3a_CVKGVcKw" annotatedElement="_gfgNwGveEdq4DLWZOhbdEA">
+ <body>A Message is a NamedElement that defines a particular communication between Lifelines of an Interaction. A communication can be e.g. raising a signal, invoking an Operation, creating or destroying an Instance. The Message specifies not only the kind of communication given by the dispatching ExecutionSpecification, but also the sender and the receiver. A Message associates normally two OccurrenceSpecifications - one sending OccurrenceSpecification and one receiving OccurrenceSpecification.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYR0cMRUEdq3a_CVKGVcKw" name="sending_receiving_message_event" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0ccRUEdq3a_CVKGVcKw" annotatedElement="_xYR0cMRUEdq3a_CVKGVcKw">
+ <body>If the sending MessageEvent and the receiving MessageEvent of the same Message are on the same Lifeline, the sending MessageEvent must be ordered before the receiving MessageEvent.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYR0csRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYR0c8RUEdq3a_CVKGVcKw" name="signature_refer_to" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0dMRUEdq3a_CVKGVcKw" annotatedElement="_xYR0c8RUEdq3a_CVKGVcKw">
+ <body>The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYR0dcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYR0dsRUEdq3a_CVKGVcKw" name="signature_is_operation" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0d8RUEdq3a_CVKGVcKw" annotatedElement="_xYR0dsRUEdq3a_CVKGVcKw">
+ <body>In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYR0eMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYR0ecRUEdq3a_CVKGVcKw" name="signature_is_signal" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0esRUEdq3a_CVKGVcKw" annotatedElement="_xYR0ecRUEdq3a_CVKGVcKw">
+ <body>In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYR0e8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYR0fMRUEdq3a_CVKGVcKw" name="arguments" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0fcRUEdq3a_CVKGVcKw" annotatedElement="_xYR0fMRUEdq3a_CVKGVcKw">
+ <body>Arguments of a Message must only be:
+i) attributes of the sending lifeline
+ii) constants
+iii) symbolic values (which are wildcard values representing any legal value)
+iv) explicit parameters of the enclosing Interaction
+v) attributes of the class owning the Interaction
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYR0fsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYR0f8RUEdq3a_CVKGVcKw" name="cannot_cross_boundaries" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0gMRUEdq3a_CVKGVcKw" annotatedElement="_xYR0f8RUEdq3a_CVKGVcKw">
+ <body>Messages cannot cross bounderies of CombinedFragments or their operands.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYR0gcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYR0gsRUEdq3a_CVKGVcKw" name="occurrence_specifications" constrainedElement="_gfgNwGveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0g8RUEdq3a_CVKGVcKw" annotatedElement="_xYR0gsRUEdq3a_CVKGVcKw">
+ <body>If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYR0hMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYR0hcRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0hsRUEdq3a_CVKGVcKw" name="messageKind" type="_Y_jskGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0h8RUEdq3a_CVKGVcKw" annotatedElement="_xYR0hsRUEdq3a_CVKGVcKw">
+ <body>The derived kind of the Message (complete, lost, found or unknown)</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:InstanceValue" xmi:id="_xYR0iMRUEdq3a_CVKGVcKw" type="_Y_jskGvtEdqG6fBIPwe-mw" instance="_xYkIRsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0icRUEdq3a_CVKGVcKw" name="messageSort" type="_xYkISMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0isRUEdq3a_CVKGVcKw" annotatedElement="_xYR0icRUEdq3a_CVKGVcKw">
+ <body>The sort of communication reflected by the Message</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:InstanceValue" xmi:id="_xYR0i8RUEdq3a_CVKGVcKw" type="_xYkISMRUEdq3a_CVKGVcKw" instance="_xYkISsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0jMRUEdq3a_CVKGVcKw" name="receiveEvent" type="_xYX7LMRUEdq3a_CVKGVcKw" association="_xYkIacRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0jcRUEdq3a_CVKGVcKw" annotatedElement="_xYR0jMRUEdq3a_CVKGVcKw">
+ <body>References the Receiving of the Message</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0jsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0j8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0kMRUEdq3a_CVKGVcKw" name="sendEvent" type="_xYX7LMRUEdq3a_CVKGVcKw" association="_xYkIbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0kcRUEdq3a_CVKGVcKw" annotatedElement="_xYR0kMRUEdq3a_CVKGVcKw">
+ <body>References the Sending of the Message.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0ksRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0k8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0lMRUEdq3a_CVKGVcKw" name="connector" type="_xXa428RUEdq3a_CVKGVcKw" association="_xYqO5cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0lcRUEdq3a_CVKGVcKw" annotatedElement="_xYR0lMRUEdq3a_CVKGVcKw">
+ <body>The Connector on which this Message is sent.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0lsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0l8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0mMRUEdq3a_CVKGVcKw" name="interaction" type="_xYLtx8RUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xYqO6cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0mcRUEdq3a_CVKGVcKw" annotatedElement="_xYR0mMRUEdq3a_CVKGVcKw">
+ <body>The enclosing Interaction owning the Message</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0msRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0m8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0nMRUEdq3a_CVKGVcKw" name="argument" type="_xPxYp8RUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xYqO7cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0ncRUEdq3a_CVKGVcKw" annotatedElement="_xYR0nMRUEdq3a_CVKGVcKw">
+ <body>The arguments of the Message</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0nsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0n8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0oMRUEdq3a_CVKGVcKw" name="signature" type="_csVgUGvtEdqG6fBIPwe-mw" isReadOnly="true" isDerived="true" association="_xYqPB8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0ocRUEdq3a_CVKGVcKw" annotatedElement="_xYR0oMRUEdq3a_CVKGVcKw">
+ <body>The definition of the type or signature of the Message (depending on its kind). The associated named element is derived from the message end that constitutes the sending or receiving message event. If both a sending event and a receiving message event are present, the signature is obtained from the sending event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0osRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0o8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8U6CAFYfEdqB6vblk3tuMA" name="getMessageKind" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_-_OTMFYfEdqB6vblk3tuMA" type="_Y_jskGvtEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_R__uEFYjEdqB6vblk3tuMA" name="getSignature" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WEKuIFYjEdqB6vblk3tuMA" type="_csVgUGvtEdqG6fBIPwe-mw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YR4i4VYjEdqB6vblk3tuMA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YR4i4FYjEdqB6vblk3tuMA"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYX7AMRUEdq3a_CVKGVcKw" name="GeneralOrdering">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7AcRUEdq3a_CVKGVcKw" annotatedElement="_xYX7AMRUEdq3a_CVKGVcKw">
+ <body>A GeneralOrdering represents a binary relation between two OccurrenceSpecifications, to describe that one OccurrenceSpecification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of OccurrenceSpecifications that may otherwise not have a specified order. A GeneralOrdering is a specialization of NamedElement.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYX7AsRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7A8RUEdq3a_CVKGVcKw" name="before" type="_xYX7GcRUEdq3a_CVKGVcKw" association="_xYqO68RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7BMRUEdq3a_CVKGVcKw" annotatedElement="_xYX7A8RUEdq3a_CVKGVcKw">
+ <body>The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7BcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7BsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7B8RUEdq3a_CVKGVcKw" name="after" type="_xYX7GcRUEdq3a_CVKGVcKw" association="_xYqO7MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7CMRUEdq3a_CVKGVcKw" annotatedElement="_xYX7B8RUEdq3a_CVKGVcKw">
+ <body>The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7CcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7CsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYX7C8RUEdq3a_CVKGVcKw" name="ExecutionSpecification" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7DMRUEdq3a_CVKGVcKw" annotatedElement="_xYX7C8RUEdq3a_CVKGVcKw">
+ <body>An ExecutionSpecification is a specification of the execution of a unit of behavior or action within the Lifeline. The duration of an ExecutionSpecification is represented by two ExecutionOccurrenceSpecifications, the start ExecutionOccurrenceSpecification and the finish ExecutionOccurrenceSpecification.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYX7DcRUEdq3a_CVKGVcKw" name="same_lifeline" constrainedElement="_xYX7C8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7DsRUEdq3a_CVKGVcKw" annotatedElement="_xYX7DcRUEdq3a_CVKGVcKw">
+ <body>The startEvent and the finishEvent must be on the same Lifeline</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYX7D8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>start.lifeline = finish.lifeline</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYX7EMRUEdq3a_CVKGVcKw" general="_xYR0YMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7EcRUEdq3a_CVKGVcKw" name="start" type="_xYX7GcRUEdq3a_CVKGVcKw" association="_xYkIWMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7EsRUEdq3a_CVKGVcKw" annotatedElement="_xYX7EcRUEdq3a_CVKGVcKw">
+ <body>References the OccurrenceSpecification that designates the start of the Action or Behavior</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7E8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7FMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7FcRUEdq3a_CVKGVcKw" name="finish" type="_xYX7GcRUEdq3a_CVKGVcKw" association="_xYkIXcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7FsRUEdq3a_CVKGVcKw" annotatedElement="_xYX7FcRUEdq3a_CVKGVcKw">
+ <body>References the OccurrenceSpecification that designates the finish of the Action or Behavior.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7F8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7GMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYX7GcRUEdq3a_CVKGVcKw" name="OccurrenceSpecification">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7GsRUEdq3a_CVKGVcKw" annotatedElement="_xYX7GcRUEdq3a_CVKGVcKw">
+ <body>An OccurrenceSpecification is the basic semantic unit of Interactions. The sequences of occurrences specified by them are the meanings of Interactions.
+OccurrenceSpecifications are ordered along a Lifeline.
+The namespace of an OccurrenceSpecification is the Interaction in which it is contained.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYX7G8RUEdq3a_CVKGVcKw" general="_xYR0YMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7HMRUEdq3a_CVKGVcKw" name="covered" type="_xYLt28RUEdq3a_CVKGVcKw" redefinedProperty="_xYR0Y8RUEdq3a_CVKGVcKw" association="_xYkIccRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7HcRUEdq3a_CVKGVcKw" annotatedElement="_xYX7HMRUEdq3a_CVKGVcKw">
+ <body>References the Lifeline on which the OccurrenceSpecification appears.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7HsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7H8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7IMRUEdq3a_CVKGVcKw" name="toAfter" type="_xYX7AMRUEdq3a_CVKGVcKw" association="_xYqO68RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7IcRUEdq3a_CVKGVcKw" annotatedElement="_xYX7IMRUEdq3a_CVKGVcKw">
+ <body>References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7IsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7I8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7JMRUEdq3a_CVKGVcKw" name="toBefore" type="_xYX7AMRUEdq3a_CVKGVcKw" association="_xYqO7MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7JcRUEdq3a_CVKGVcKw" annotatedElement="_xYX7JMRUEdq3a_CVKGVcKw">
+ <body>References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7JsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7J8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7KMRUEdq3a_CVKGVcKw" name="event" type="_xZU9RMRUEdq3a_CVKGVcKw" association="_xYwVjMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7KcRUEdq3a_CVKGVcKw" annotatedElement="_xYX7KMRUEdq3a_CVKGVcKw">
+ <body>References a specification of the occurring event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7KsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7K8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYX7LMRUEdq3a_CVKGVcKw" name="MessageEnd" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7LcRUEdq3a_CVKGVcKw" annotatedElement="_xYX7LMRUEdq3a_CVKGVcKw">
+ <body>A MessageEnd is an abstract NamedElement that represents what can occur at the end of a Message.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYX7LsRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7L8RUEdq3a_CVKGVcKw" name="message" type="_gfgNwGveEdq4DLWZOhbdEA" association="_xYwViMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7MMRUEdq3a_CVKGVcKw" annotatedElement="_xYX7L8RUEdq3a_CVKGVcKw">
+ <body>References a Message.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7McRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7MsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYX7M8RUEdq3a_CVKGVcKw" name="StateInvariant">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7NMRUEdq3a_CVKGVcKw" annotatedElement="_xYX7M8RUEdq3a_CVKGVcKw">
+ <body>A StateInvariant is a runtime constraint on the participants of the interaction. It may be used to specify a variety of different kinds of constraints, such as values of attributes or variables, internal or external states, and so on. A StateInvariant is an InteractionFragment and it is placed on a Lifeline.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYX7NcRUEdq3a_CVKGVcKw" general="_xYR0YMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7NsRUEdq3a_CVKGVcKw" name="invariant" type="_xQDsosRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xYqO8sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7N8RUEdq3a_CVKGVcKw" annotatedElement="_xYX7NsRUEdq3a_CVKGVcKw">
+ <body>A Constraint that should hold at runtime for this StateInvariant</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7OMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7OcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7OsRUEdq3a_CVKGVcKw" name="covered" type="_xYLt28RUEdq3a_CVKGVcKw" redefinedProperty="_xYR0Y8RUEdq3a_CVKGVcKw" association="_xYqO9cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7O8RUEdq3a_CVKGVcKw" annotatedElement="_xYX7OsRUEdq3a_CVKGVcKw">
+ <body>References the Lifeline on which the StateInvariant appears.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7PMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7PcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYX7PsRUEdq3a_CVKGVcKw" name="ActionExecutionSpecification">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7P8RUEdq3a_CVKGVcKw" annotatedElement="_xYX7PsRUEdq3a_CVKGVcKw">
+ <body>ActionExecutionSpecification is a kind of ExecutionSpecification representing the execution of an action.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYX7QMRUEdq3a_CVKGVcKw" name="action_referenced" constrainedElement="_xYX7PsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7QcRUEdq3a_CVKGVcKw" annotatedElement="_xYX7QMRUEdq3a_CVKGVcKw">
+ <body>The Action referenced by the ActionExecutionSpecification, if any, must be owned by the Interaction owning the ActionExecutionOccurrence.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYX7QsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYX7Q8RUEdq3a_CVKGVcKw" general="_xYX7C8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7RMRUEdq3a_CVKGVcKw" name="action" type="_xWXI0MRUEdq3a_CVKGVcKw" association="_xYqPA8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7RcRUEdq3a_CVKGVcKw" annotatedElement="_xYX7RMRUEdq3a_CVKGVcKw">
+ <body>Action whose execution is occurring.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7RsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7R8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYX7SMRUEdq3a_CVKGVcKw" name="BehaviorExecutionSpecification">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7ScRUEdq3a_CVKGVcKw" annotatedElement="_xYX7SMRUEdq3a_CVKGVcKw">
+ <body>BehaviorExecutionSpecification is a kind of ExecutionSpecification representing the execution of a behavior.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYX7SsRUEdq3a_CVKGVcKw" general="_xYX7C8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYX7S8RUEdq3a_CVKGVcKw" name="behavior" type="_TUPtYGveEdq4DLWZOhbdEA" association="_xYqPAcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYX7TMRUEdq3a_CVKGVcKw" annotatedElement="_xYX7S8RUEdq3a_CVKGVcKw">
+ <body>Behavior whose execution is occurring.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYX7TcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYX7TsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeBoMRUEdq3a_CVKGVcKw" name="ExecutionEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBocRUEdq3a_CVKGVcKw" annotatedElement="_xYeBoMRUEdq3a_CVKGVcKw">
+ <body>An ExecutionEvent models the start or finish of an execution occurrence.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBosRUEdq3a_CVKGVcKw" general="_xZU9RMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeBo8RUEdq3a_CVKGVcKw" name="CreationEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBpMRUEdq3a_CVKGVcKw" annotatedElement="_xYeBo8RUEdq3a_CVKGVcKw">
+ <body>A CreationEvent models the creation of an object.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYeBpcRUEdq3a_CVKGVcKw" name="no_occurrence_above" constrainedElement="_xYeBo8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBpsRUEdq3a_CVKGVcKw" annotatedElement="_xYeBpcRUEdq3a_CVKGVcKw">
+ <body>No othet OccurrenceSpecification may appear above an OccurrenceSpecification which references a CreationEvent on a given Lifeline in an InteractionOperand.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYeBp8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBqMRUEdq3a_CVKGVcKw" general="_xZU9RMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeBqcRUEdq3a_CVKGVcKw" name="DestructionEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBqsRUEdq3a_CVKGVcKw" annotatedElement="_xYeBqcRUEdq3a_CVKGVcKw">
+ <body>A DestructionEvent models the destruction of an object.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYeBq8RUEdq3a_CVKGVcKw" name="no_occurrence_specifications_below" constrainedElement="_xYeBqcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBrMRUEdq3a_CVKGVcKw" annotatedElement="_xYeBq8RUEdq3a_CVKGVcKw">
+ <body>No other OccurrenceSpecifications may appear below an OccurrenceSpecification which references a DestructionEvent on a given Lifeline in an InteractionOperand.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYeBrcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBrsRUEdq3a_CVKGVcKw" general="_xZU9RMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeBr8RUEdq3a_CVKGVcKw" name="SendOperationEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBsMRUEdq3a_CVKGVcKw" annotatedElement="_xYeBr8RUEdq3a_CVKGVcKw">
+ <body>A SendOperationEvent models the invocation of an operation call.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBscRUEdq3a_CVKGVcKw" general="_xZO2y8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYeBssRUEdq3a_CVKGVcKw" name="operation" type="_M4X2IGveEdq4DLWZOhbdEA" association="_xYwVgMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBs8RUEdq3a_CVKGVcKw" annotatedElement="_xYeBssRUEdq3a_CVKGVcKw">
+ <body>The operation associated with this event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYeBtMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYeBtcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeBtsRUEdq3a_CVKGVcKw" name="SendSignalEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBt8RUEdq3a_CVKGVcKw" annotatedElement="_xYeBtsRUEdq3a_CVKGVcKw">
+ <body>A SendSignalEvent models the sending of a signal.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBuMRUEdq3a_CVKGVcKw" general="_xZO2y8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYeBucRUEdq3a_CVKGVcKw" name="signal" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_xYwVhMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBusRUEdq3a_CVKGVcKw" annotatedElement="_xYeBucRUEdq3a_CVKGVcKw">
+ <body>The signal associated with this event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYeBu8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYeBvMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeBvcRUEdq3a_CVKGVcKw" name="MessageOccurrenceSpecification">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBvsRUEdq3a_CVKGVcKw" annotatedElement="_xYeBvcRUEdq3a_CVKGVcKw">
+ <body>Specifies the occurrence of message events, such as sending and receiving of signals or invoking or receiving of operation calls. A message occurrence specification is a kind of message end. Messages are generated either by synchronous operation calls or asynchronous signal sends. They are received by the execution of corresponding accept event actions.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBv8RUEdq3a_CVKGVcKw" general="_xYX7LMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBwMRUEdq3a_CVKGVcKw" general="_xYX7GcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeBwcRUEdq3a_CVKGVcKw" name="ExecutionOccurrenceSpecification">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBwsRUEdq3a_CVKGVcKw" annotatedElement="_xYeBwcRUEdq3a_CVKGVcKw">
+ <body>An ExecutionOccurrenceSpecification represents moments in time at which actions or behaviors start or finish.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBw8RUEdq3a_CVKGVcKw" general="_xYX7GcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYeBxMRUEdq3a_CVKGVcKw" name="execution" type="_xYX7C8RUEdq3a_CVKGVcKw" association="_xYwVlcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBxcRUEdq3a_CVKGVcKw" annotatedElement="_xYeBxMRUEdq3a_CVKGVcKw">
+ <body>References the execution specification describing the execution that is started or finished at this execution event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYeBxsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYeBx8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYeByMRUEdq3a_CVKGVcKw" name="event" type="_xYeBoMRUEdq3a_CVKGVcKw" redefinedProperty="_xYX7KMRUEdq3a_CVKGVcKw" association="_xYwVmcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBycRUEdq3a_CVKGVcKw" annotatedElement="_xYeByMRUEdq3a_CVKGVcKw">
+ <body>Redefines the event referenced to be restricted to an execution event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYeBysRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYeBy8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeBzMRUEdq3a_CVKGVcKw" name="ReceiveOperationEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeBzcRUEdq3a_CVKGVcKw" annotatedElement="_xYeBzMRUEdq3a_CVKGVcKw">
+ <body>A ReceiveOperationEvent models the reception of an operation call.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeBzsRUEdq3a_CVKGVcKw" general="_xZO2y8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYeBz8RUEdq3a_CVKGVcKw" name="operation" type="_M4X2IGveEdq4DLWZOhbdEA" association="_xYwVnsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeB0MRUEdq3a_CVKGVcKw" annotatedElement="_xYeBz8RUEdq3a_CVKGVcKw">
+ <body>The operation associated with this event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYeB0cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYeB0sRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYeB08RUEdq3a_CVKGVcKw" name="ReceiveSignalEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeB1MRUEdq3a_CVKGVcKw" annotatedElement="_xYeB08RUEdq3a_CVKGVcKw">
+ <body>A ReceiveSignalEvent models the receiving of a signal.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYeB1cRUEdq3a_CVKGVcKw" general="_xZO2y8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYeB1sRUEdq3a_CVKGVcKw" name="signal" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_xYwVosRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeB18RUEdq3a_CVKGVcKw" annotatedElement="_xYeB1sRUEdq3a_CVKGVcKw">
+ <body>The signal associated with this event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYeB2MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYeB2cRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_Y_jskGvtEdqG6fBIPwe-mw" name="MessageKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYeB2sRUEdq3a_CVKGVcKw" annotatedElement="_Y_jskGvtEdqG6fBIPwe-mw">
+ <body>MessageKind is an enumeration of the following values:
+- complete = sendEvent and receiveEvent are present
+- lost = sendEvent present and receiveEvent absent
+- found = sendEvent absent and receiveEvent present
+- unknown = sendEvent and receiveEvent absent (should not appear)</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkIQMRUEdq3a_CVKGVcKw" name="complete">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIQcRUEdq3a_CVKGVcKw" annotatedElement="_xYkIQMRUEdq3a_CVKGVcKw">
+ <body>sendEvent and receiveEvent are present</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkIQsRUEdq3a_CVKGVcKw" name="lost">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIQ8RUEdq3a_CVKGVcKw" annotatedElement="_xYkIQsRUEdq3a_CVKGVcKw">
+ <body>sendEvent present and receiveEvent absent</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkIRMRUEdq3a_CVKGVcKw" name="found">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIRcRUEdq3a_CVKGVcKw" annotatedElement="_xYkIRMRUEdq3a_CVKGVcKw">
+ <body>sendEvent absent and receiveEvent present</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkIRsRUEdq3a_CVKGVcKw" name="unknown">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIR8RUEdq3a_CVKGVcKw" annotatedElement="_xYkIRsRUEdq3a_CVKGVcKw">
+ <body>sendEvent and receiveEvent absent (should not appear)</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_xYkISMRUEdq3a_CVKGVcKw" name="MessageSort">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIScRUEdq3a_CVKGVcKw" annotatedElement="_xYkISMRUEdq3a_CVKGVcKw">
+ <body>MessageSort is an enumeration of the following values:
+- synchCall = the message was generated by a synchronous call to an operation
+- asynchCall = the message was generated by an asynchronous call to an operation; i.e., a CallAction with isSynchronous= false
+- asynchSignal = the message was generated by an asynchronous send action
+- createMessage = the message designating the creation of another lifeline object
+- deleteMessage = the message designating the termination of anther lifeline
+- reply = the message is a reply message to an operation call</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkISsRUEdq3a_CVKGVcKw" name="synchCall">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIS8RUEdq3a_CVKGVcKw" annotatedElement="_xYkISsRUEdq3a_CVKGVcKw">
+ <body>The message was generated by a synchronous call to an operation.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkITMRUEdq3a_CVKGVcKw" name="asynchCall">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkITcRUEdq3a_CVKGVcKw" annotatedElement="_xYkITMRUEdq3a_CVKGVcKw">
+ <body>The message was generated by an asynchronous call to an operation; i.e., a CallAction with isSynchronous
+= false.
+</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkITsRUEdq3a_CVKGVcKw" name="asynchSignal">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIT8RUEdq3a_CVKGVcKw" annotatedElement="_xYkITsRUEdq3a_CVKGVcKw">
+ <body>The message was generated by an asynchronous send action.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkIUMRUEdq3a_CVKGVcKw" name="createMessage">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIUcRUEdq3a_CVKGVcKw" annotatedElement="_xYkIUMRUEdq3a_CVKGVcKw">
+ <body>The message designating the creation of another lifeline object.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkIUsRUEdq3a_CVKGVcKw" name="deleteMessage">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIU8RUEdq3a_CVKGVcKw" annotatedElement="_xYkIUsRUEdq3a_CVKGVcKw">
+ <body>The message designating the termination of another lifeline.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xYkIVMRUEdq3a_CVKGVcKw" name="reply">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIVcRUEdq3a_CVKGVcKw" annotatedElement="_xYkIVMRUEdq3a_CVKGVcKw">
+ <body>The message is a reply message to an operation call.</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYkIVsRUEdq3a_CVKGVcKw" name="A_covered_coveredBy" memberEnd="_xYR0Y8RUEdq3a_CVKGVcKw _xYLt58RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIV8RUEdq3a_CVKGVcKw" annotatedElement="_xYkIVsRUEdq3a_CVKGVcKw">
+ <body>This association shows the lifelines that make up an interaction. A lifeline may be part of more than one interaction use.</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYkIWMRUEdq3a_CVKGVcKw" name="A_executionSpecification_start" memberEnd="_xYX7EcRUEdq3a_CVKGVcKw _xYkIWsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIWcRUEdq3a_CVKGVcKw" annotatedElement="_xYkIWMRUEdq3a_CVKGVcKw">
+ <body>The event shows the time point at which the action begins execution.</body>
+ </ownedComment>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYkIWsRUEdq3a_CVKGVcKw" type="_xYX7C8RUEdq3a_CVKGVcKw" association="_xYkIWMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYkIW8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYkIXMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYkIXcRUEdq3a_CVKGVcKw" name="A_executionSpecification_finish" memberEnd="_xYX7FcRUEdq3a_CVKGVcKw _xYkIX8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIXsRUEdq3a_CVKGVcKw" annotatedElement="_xYkIXcRUEdq3a_CVKGVcKw">
+ <body>The event shows the time point at which the action completes execution.</body>
+ </ownedComment>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYkIX8RUEdq3a_CVKGVcKw" type="_xYX7C8RUEdq3a_CVKGVcKw" association="_xYkIXcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYkIYMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYkIYcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYkIYsRUEdq3a_CVKGVcKw" name="A_lifeline_represents" memberEnd="_xYLt68RUEdq3a_CVKGVcKw _xYkIZMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYkIY8RUEdq3a_CVKGVcKw" annotatedElement="_xYkIYsRUEdq3a_CVKGVcKw">
+ <body>If a Part has multiplicity, multiple lifelines might be used to show it.</body>
+ </ownedComment>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYkIZMRUEdq3a_CVKGVcKw" type="_xYLt28RUEdq3a_CVKGVcKw" association="_xYkIYsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYkIZcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYkIZsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYkIZ8RUEdq3a_CVKGVcKw" name="A_lifeline_interaction" memberEnd="_xYLty8RUEdq3a_CVKGVcKw _xYLt78RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYkIaMRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYkIacRUEdq3a_CVKGVcKw" name="A_receiveEvent_message" memberEnd="_xYR0jMRUEdq3a_CVKGVcKw _xYkIasRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYkIasRUEdq3a_CVKGVcKw" type="_gfgNwGveEdq4DLWZOhbdEA" association="_xYkIacRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYkIa8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYkIbMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYkIbcRUEdq3a_CVKGVcKw" name="A_sendEvent_message" memberEnd="_xYR0kMRUEdq3a_CVKGVcKw _xYkIbsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYkIbsRUEdq3a_CVKGVcKw" type="_gfgNwGveEdq4DLWZOhbdEA" association="_xYkIbcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYkIb8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYkIcMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYkIccRUEdq3a_CVKGVcKw" name="A_events_covered" memberEnd="_xYX7HMRUEdq3a_CVKGVcKw _xYkIc8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYkIcsRUEdq3a_CVKGVcKw" general="_xYkIVsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYkIc8RUEdq3a_CVKGVcKw" name="events" type="_xYX7GcRUEdq3a_CVKGVcKw" isOrdered="true" association="_xYkIccRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYkIdMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYkIdcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO4MRUEdq3a_CVKGVcKw" name="A_selector_lifeline" memberEnd="_xYLt88RUEdq3a_CVKGVcKw _xYqO4sRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYqO4cRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqO4sRUEdq3a_CVKGVcKw" type="_xYLt28RUEdq3a_CVKGVcKw" association="_xYqO4MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYqO48RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYqO5MRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO5cRUEdq3a_CVKGVcKw" name="A_connector_message" memberEnd="_xYR0lMRUEdq3a_CVKGVcKw _xYqO5sRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqO5sRUEdq3a_CVKGVcKw" type="_gfgNwGveEdq4DLWZOhbdEA" association="_xYqO5cRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYqO58RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYqO6MRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO6cRUEdq3a_CVKGVcKw" name="A_message_interaction" memberEnd="_xYLtz8RUEdq3a_CVKGVcKw _xYR0mMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYqO6sRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO68RUEdq3a_CVKGVcKw" name="A_before_toAfter" memberEnd="_xYX7A8RUEdq3a_CVKGVcKw _xYX7IMRUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO7MRUEdq3a_CVKGVcKw" name="A_toBefore_after" memberEnd="_xYX7JMRUEdq3a_CVKGVcKw _xYX7B8RUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO7cRUEdq3a_CVKGVcKw" name="A_argument_message" memberEnd="_xYR0nMRUEdq3a_CVKGVcKw _xYqO78RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYqO7sRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqO78RUEdq3a_CVKGVcKw" type="_gfgNwGveEdq4DLWZOhbdEA" association="_xYqO7cRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYqO8MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYqO8cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO8sRUEdq3a_CVKGVcKw" name="A_invariant_stateInvariant" memberEnd="_xYX7NsRUEdq3a_CVKGVcKw _xYqO9MRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYqO88RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqO9MRUEdq3a_CVKGVcKw" type="_xYX7M8RUEdq3a_CVKGVcKw" association="_xYqO8sRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO9cRUEdq3a_CVKGVcKw" name="A_stateInvariant_covered" memberEnd="_xYX7OsRUEdq3a_CVKGVcKw _xYqO98RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYqO9sRUEdq3a_CVKGVcKw" general="_xYkIVsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqO98RUEdq3a_CVKGVcKw" name="stateInvariant" type="_xYX7M8RUEdq3a_CVKGVcKw" association="_xYqO9cRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYqO-MRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYqO-cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO-sRUEdq3a_CVKGVcKw" name="A_generalOrdering_interactionFragment" memberEnd="_xYR0Z8RUEdq3a_CVKGVcKw _xYqO_MRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYqO-8RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqO_MRUEdq3a_CVKGVcKw" type="_xYR0YMRUEdq3a_CVKGVcKw" association="_xYqO-sRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYqO_cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYqO_sRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqO_8RUEdq3a_CVKGVcKw" name="A_enclosingInteraction_fragment" memberEnd="_xYR0a8RUEdq3a_CVKGVcKw _xYLt08RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYqPAMRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqPAcRUEdq3a_CVKGVcKw" name="A_behavior_behaviorExecutionSpecification" memberEnd="_xYX7S8RUEdq3a_CVKGVcKw _xYqPAsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqPAsRUEdq3a_CVKGVcKw" type="_xYX7SMRUEdq3a_CVKGVcKw" association="_xYqPAcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqPA8RUEdq3a_CVKGVcKw" name="A_action_actionExecutionSpecification" memberEnd="_xYX7RMRUEdq3a_CVKGVcKw _xYqPBMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqPBMRUEdq3a_CVKGVcKw" type="_xYX7PsRUEdq3a_CVKGVcKw" association="_xYqPA8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYqPBcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYqPBsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYqPB8RUEdq3a_CVKGVcKw" name="A_signature_message" memberEnd="_xYR0oMRUEdq3a_CVKGVcKw _xYqPCMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYqPCMRUEdq3a_CVKGVcKw" type="_gfgNwGveEdq4DLWZOhbdEA" association="_xYqPB8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwVgMRUEdq3a_CVKGVcKw" name="A_operation_sendOperationEvent" memberEnd="_xYeBssRUEdq3a_CVKGVcKw _xYwVgcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVgcRUEdq3a_CVKGVcKw" type="_xYeBr8RUEdq3a_CVKGVcKw" association="_xYwVgMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVgsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVg8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwVhMRUEdq3a_CVKGVcKw" name="A_signal_sendSignalEvent" memberEnd="_xYeBucRUEdq3a_CVKGVcKw _xYwVhcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVhcRUEdq3a_CVKGVcKw" type="_xYeBtsRUEdq3a_CVKGVcKw" association="_xYwVhMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVhsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVh8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwViMRUEdq3a_CVKGVcKw" name="A_message_messageEnd" memberEnd="_xYX7L8RUEdq3a_CVKGVcKw _xYwVicRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVicRUEdq3a_CVKGVcKw" type="_xYX7LMRUEdq3a_CVKGVcKw" association="_xYwViMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVisRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVi8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwVjMRUEdq3a_CVKGVcKw" name="A_event_occurrenceSpecification" memberEnd="_xYX7KMRUEdq3a_CVKGVcKw _xYwVjcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVjcRUEdq3a_CVKGVcKw" type="_xYX7GcRUEdq3a_CVKGVcKw" association="_xYwVjMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVjsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVj8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwVkMRUEdq3a_CVKGVcKw" name="A_action_interaction" memberEnd="_xYLt18RUEdq3a_CVKGVcKw _xYwVksRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYwVkcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVksRUEdq3a_CVKGVcKw" type="_xYLtx8RUEdq3a_CVKGVcKw" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xYwVkMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVk8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVlMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwVlcRUEdq3a_CVKGVcKw" name="A_execution_executionOccurrenceSpecification" memberEnd="_xYeBxMRUEdq3a_CVKGVcKw _xYwVlsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVlsRUEdq3a_CVKGVcKw" type="_xYeBwcRUEdq3a_CVKGVcKw" association="_xYwVlcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVl8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVmMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwVmcRUEdq3a_CVKGVcKw" name="A_event_executionOccurrenceSpecification" memberEnd="_xYeByMRUEdq3a_CVKGVcKw _xYwVm8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYwVmsRUEdq3a_CVKGVcKw" general="_xYwVjMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVm8RUEdq3a_CVKGVcKw" type="_xYeBwcRUEdq3a_CVKGVcKw" redefinedProperty="_xYwVjcRUEdq3a_CVKGVcKw" association="_xYwVmcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVnMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVncRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwVnsRUEdq3a_CVKGVcKw" name="A_operation_receiveOperationEvent" memberEnd="_xYeBz8RUEdq3a_CVKGVcKw _xYwVn8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVn8RUEdq3a_CVKGVcKw" type="_xYeBzMRUEdq3a_CVKGVcKw" association="_xYwVnsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVoMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVocRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xYwVosRUEdq3a_CVKGVcKw" name="A_signal_receiveSignalEvent" memberEnd="_xYeB1sRUEdq3a_CVKGVcKw _xYwVo8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xYwVo8RUEdq3a_CVKGVcKw" type="_xYeB08RUEdq3a_CVKGVcKw" association="_xYwVosRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYwVpMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYwVpcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xY2cIcRUEdq3a_CVKGVcKw" name="Actor">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cIsRUEdq3a_CVKGVcKw" annotatedElement="_xY2cIcRUEdq3a_CVKGVcKw">
+ <body>An Actor models a type of role played by an entity that interacts with the subject (e.g., by exchanging signals and data), but which is external to the subject (i.e., in the sense that an instance of an actor is not a part of the instance of its corresponding subject). Actors may represent roles played by human users, external hardware, or other subjects. Note that an actor does not necessarily represent a specific physical entity but merely a particular facet (i.e., “role”) of some entity that is relevant to the specification of its associated use cases. Thus, a single physical instance may play the role of several different actors and, conversely, a given actor may be played by multiple different instances.
+
+Since an actor is external to the subject, it is typically defined in the same classifier or package that incorporates the subject classifier.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY2cI8RUEdq3a_CVKGVcKw" name="associations" constrainedElement="_xY2cIcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cJMRUEdq3a_CVKGVcKw" annotatedElement="_xY2cI8RUEdq3a_CVKGVcKw">
+ <body>An actor can only have associations to use cases, components and classes. Furthermore these associations must be binary.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY2cJcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.ownedAttribute->forAll ( a |&#xA;(a.association->notEmpty()) implies&#xA;((a.association.memberEnd.size() = 2) and&#xA;(a.opposite.class.oclIsKindOf(UseCase) or&#xA;(a.opposite.class.oclIsKindOf(Class) and not a.opposite.class.oclIsKindOf(Behavior))))&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY2cJsRUEdq3a_CVKGVcKw" name="must_have_name" constrainedElement="_xY2cIcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cJ8RUEdq3a_CVKGVcKw" annotatedElement="_xY2cJsRUEdq3a_CVKGVcKw">
+ <body>An actor must have a name.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY2cKMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>name->notEmpty()</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xY2cKcRUEdq3a_CVKGVcKw" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xY2cKsRUEdq3a_CVKGVcKw" name="Extend">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cK8RUEdq3a_CVKGVcKw" annotatedElement="_xY2cKsRUEdq3a_CVKGVcKw">
+ <body>This relationship specifies that the behavior of a use case may be extended by the behavior of another (usually supplementary) use case. The extension takes place at one or more specific extension points defined in the extended use case. Note, however, that the extended use case is defined independently of the extending use case and is meaningful independently of the extending use case. On the other hand, the extending use case typically defines behavior that may not necessarily be meaningful by itself. Instead, the extending use case defines a set of modular behavior increments that augment an execution of the extended use case under specific conditions.
+
+Note that the same extending use case can extend more than one use case. Furthermore, an extending use case may itself be extended.
+
+It is a kind of DirectedRelationship, such that the source is the extending use case and the destination is the extended use case. It is also a kind of NamedElement so that it can have a name in the context of its owning use case. The extend relationship itself is owned by the extending use case.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY2cLMRUEdq3a_CVKGVcKw" name="extension_points" constrainedElement="_xY2cKsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cLcRUEdq3a_CVKGVcKw" annotatedElement="_xY2cLMRUEdq3a_CVKGVcKw">
+ <body>The extension points referenced by the extend relationship must belong to the use case that is being extended.
+
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY2cLsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp))</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xY2cL8RUEdq3a_CVKGVcKw" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xY2cMMRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY2cMcRUEdq3a_CVKGVcKw" name="extendedCase" type="_xY8iwMRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-SMRUEdq3a_CVKGVcKw" association="_xZCpaMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cMsRUEdq3a_CVKGVcKw" annotatedElement="_xY2cMcRUEdq3a_CVKGVcKw">
+ <body>References the use case that is being extended.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY2cM8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY2cNMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY2cNcRUEdq3a_CVKGVcKw" name="extension" type="_xY8iwMRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-RMRUEdq3a_CVKGVcKw" association="_xZCpbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cNsRUEdq3a_CVKGVcKw" annotatedElement="_xY2cNcRUEdq3a_CVKGVcKw">
+ <body>References the use case that represents the extension and owns the extend relationship.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY2cN8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY2cOMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY2cOcRUEdq3a_CVKGVcKw" name="condition" type="_xQDsosRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xZCpcsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cOsRUEdq3a_CVKGVcKw" annotatedElement="_xY2cOcRUEdq3a_CVKGVcKw">
+ <body>References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY2cO8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY2cPMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY2cPcRUEdq3a_CVKGVcKw" name="extensionLocation" type="_xY8i5sRUEdq3a_CVKGVcKw" isOrdered="true" association="_xZCpd8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cPsRUEdq3a_CVKGVcKw" annotatedElement="_xY2cPcRUEdq3a_CVKGVcKw">
+ <body>An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.)
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY2cP8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY2cQMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xY2cQcRUEdq3a_CVKGVcKw" name="Include">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cQsRUEdq3a_CVKGVcKw" annotatedElement="_xY2cQcRUEdq3a_CVKGVcKw">
+ <body>Note that the included use case is not optional, and is always required for the including use case to execute correctly.
+
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xY2cQ8RUEdq3a_CVKGVcKw" general="_JBgfoKPAEdqi_5gqUMOQtA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xY2cRMRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY2cRcRUEdq3a_CVKGVcKw" name="includingCase" type="_xY8iwMRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-RMRUEdq3a_CVKGVcKw" association="_xZCpYMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cRsRUEdq3a_CVKGVcKw" annotatedElement="_xY2cRcRUEdq3a_CVKGVcKw">
+ <body>References the use case which will include the addition and owns the include relationship.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY2cR8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY2cSMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY2cScRUEdq3a_CVKGVcKw" name="addition" type="_xY8iwMRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-SMRUEdq3a_CVKGVcKw" association="_xZCpY8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY2cSsRUEdq3a_CVKGVcKw" annotatedElement="_xY2cScRUEdq3a_CVKGVcKw">
+ <body>References the use case that is to be included.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY2cS8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY2cTMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xY8iwMRUEdq3a_CVKGVcKw" name="UseCase">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8iwcRUEdq3a_CVKGVcKw" annotatedElement="_xY8iwMRUEdq3a_CVKGVcKw">
+ <body>A UseCase is a kind of behaviored classifier that represents a declaration of an offered behavior. Each use case specifies some behavior, possibly including variants, that the subject can perform in collaboration with one or more actors. Use cases define the offered behavior of the subject without reference to its internal structure. These behaviors, involving
+interactions between the actor and the subject, may result in changes to the state of the subject and communications with its environment. A use case can include possible variations of its basic behavior, including exceptional behavior and error handling.
+
+The subject of a use case could be a physical system or any other element that may have behavior, such as a component, subsystem or class. Each use case specifies a unit of useful functionality that the subject provides to its users, i.e., a specific way of interacting with the subject. This functionality, which is initiated by an actor, must always be completed for the use case to complete. It is deemed complete if, after its execution, the subject will be in a state in which no further inputs or actions are expected and the use case can be initiated again or in an error state.
+
+Use cases can be used both for specification of the (external) requirements on a subject and for the specification of the functionality offered by a subject. Moreover, the use cases also state the requirements the specified subject poses on its environment by defining how they should interact with the subject so that it will be able to perform its services.
+
+The behavior of a use case can be described by a specification that is some kind of Behavior (through its ownedBehavior relationship), such as interactions, activities, and state machines, or by pre-conditions and post-conditions as well as by natural language text where appropriate. It may also be described indirectly through a Collaboration that uses the use case and its actors as the classifiers that type its parts. Which of these techniques to use depends on the nature of the use case behavior as well as on the intended reader. These descriptions can be combined.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY8iwsRUEdq3a_CVKGVcKw" name="must_have_name" constrainedElement="_xY8iwMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8iw8RUEdq3a_CVKGVcKw" annotatedElement="_xY8iwsRUEdq3a_CVKGVcKw">
+ <body>A UseCase must have a name.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY8ixMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.name -> notEmpty ()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY8ixcRUEdq3a_CVKGVcKw" name="binary_associations" constrainedElement="_xY8iwMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8ixsRUEdq3a_CVKGVcKw" annotatedElement="_xY8ixcRUEdq3a_CVKGVcKw">
+ <body>UseCases can only be involved in binary Associations.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY8ix8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY8iyMRUEdq3a_CVKGVcKw" name="no_association_to_use_case" constrainedElement="_xY8iwMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8iycRUEdq3a_CVKGVcKw" annotatedElement="_xY8iyMRUEdq3a_CVKGVcKw">
+ <body>UseCases can not have Associations to UseCases specifying the same subject.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY8iysRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY8iy8RUEdq3a_CVKGVcKw" name="cannot_include_self" constrainedElement="_xY8iwMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8izMRUEdq3a_CVKGVcKw" annotatedElement="_xY8iy8RUEdq3a_CVKGVcKw">
+ <body>A use case cannot include use cases that directly or indirectly include it.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY8izcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>not self.allIncludedUseCases()->includes(self)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xY8izsRUEdq3a_CVKGVcKw" general="_iY7sMGvsEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY8iz8RUEdq3a_CVKGVcKw" name="include" type="_xY2cQcRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xZCpYMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8i0MRUEdq3a_CVKGVcKw" annotatedElement="_xY8iz8RUEdq3a_CVKGVcKw">
+ <body>References the Include relationships owned by this use case.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY8i0cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY8i0sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY8i08RUEdq3a_CVKGVcKw" name="extend" type="_xY2cKsRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xZCpbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8i1MRUEdq3a_CVKGVcKw" annotatedElement="_xY8i08RUEdq3a_CVKGVcKw">
+ <body>References the Extend relationships owned by this use case.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY8i1cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY8i1sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY8i18RUEdq3a_CVKGVcKw" name="extensionPoint" type="_xY8i5sRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xZCpcMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8i2MRUEdq3a_CVKGVcKw" annotatedElement="_xY8i18RUEdq3a_CVKGVcKw">
+ <body>References the ExtensionPoints owned by the use case.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY8i2cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY8i2sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY8i28RUEdq3a_CVKGVcKw" name="subject" type="_6UV2QGwJEdq7X4sGURiZYA" association="_xZCpgMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8i3MRUEdq3a_CVKGVcKw" annotatedElement="_xY8i28RUEdq3a_CVKGVcKw">
+ <body>References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY8i3cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY8i3sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xY8i38RUEdq3a_CVKGVcKw" name="allIncludedUseCases" isQuery="true" bodyCondition="_xY8i4cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8i4MRUEdq3a_CVKGVcKw" annotatedElement="_xY8i38RUEdq3a_CVKGVcKw">
+ <body>The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY8i4cRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xY8i38RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY8i4sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = self.include->union(self.include->collect(in | in.allIncludedUseCases()))</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xY8i48RUEdq3a_CVKGVcKw" type="_xY8iwMRUEdq3a_CVKGVcKw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY8i5MRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY8i5cRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xY8i5sRUEdq3a_CVKGVcKw" name="ExtensionPoint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8i58RUEdq3a_CVKGVcKw" annotatedElement="_xY8i5sRUEdq3a_CVKGVcKw">
+ <body>An ExtensionPoint is a feature of a use case that identifies a point where the behavior of a use case can be augmented with elements of another (extending) use case.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xY8i6MRUEdq3a_CVKGVcKw" name="must_have_name" constrainedElement="_xY8i5sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8i6cRUEdq3a_CVKGVcKw" annotatedElement="_xY8i6MRUEdq3a_CVKGVcKw">
+ <body>An ExtensionPoint must have a name.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xY8i6sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.name->notEmpty ()</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xY8i68RUEdq3a_CVKGVcKw" general="_xPrSEcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xY8i7MRUEdq3a_CVKGVcKw" name="useCase" type="_xY8iwMRUEdq3a_CVKGVcKw" association="_xZCpcMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xY8i7cRUEdq3a_CVKGVcKw" annotatedElement="_xY8i7MRUEdq3a_CVKGVcKw">
+ <body>References the use case that owns this extension point.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xY8i7sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xY8i78RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpYMRUEdq3a_CVKGVcKw" name="A_includingCase_include" memberEnd="_xY2cRcRUEdq3a_CVKGVcKw _xY8iz8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpYcRUEdq3a_CVKGVcKw" general="_xR3qe8RUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpYsRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpY8RUEdq3a_CVKGVcKw" name="A_addition_include" memberEnd="_xY2cScRUEdq3a_CVKGVcKw _xZCpZcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpZMRUEdq3a_CVKGVcKw" general="_xR3qfsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZCpZcRUEdq3a_CVKGVcKw" type="_xY2cQcRUEdq3a_CVKGVcKw" association="_xZCpY8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZCpZsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZCpZ8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpaMRUEdq3a_CVKGVcKw" name="A_extendedCase_extend" memberEnd="_xY2cMcRUEdq3a_CVKGVcKw _xZCpasRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpacRUEdq3a_CVKGVcKw" general="_xR3qfsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZCpasRUEdq3a_CVKGVcKw" type="_xY2cKsRUEdq3a_CVKGVcKw" association="_xZCpaMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZCpa8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZCpbMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpbcRUEdq3a_CVKGVcKw" name="A_extension_extend" memberEnd="_xY8i08RUEdq3a_CVKGVcKw _xY2cNcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpbsRUEdq3a_CVKGVcKw" general="_xR3qe8RUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpb8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpcMRUEdq3a_CVKGVcKw" name="A_extensionPoint_useCase" memberEnd="_xY8i7MRUEdq3a_CVKGVcKw _xY8i18RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpccRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpcsRUEdq3a_CVKGVcKw" name="A_condition_extend" memberEnd="_xY2cOcRUEdq3a_CVKGVcKw _xZCpdMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpc8RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZCpdMRUEdq3a_CVKGVcKw" type="_xY2cKsRUEdq3a_CVKGVcKw" association="_xZCpcsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZCpdcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZCpdsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpd8RUEdq3a_CVKGVcKw" name="A_extensionLocation_extension" memberEnd="_xY2cPcRUEdq3a_CVKGVcKw _xZCpeMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZCpeMRUEdq3a_CVKGVcKw" name="extension" type="_xY2cKsRUEdq3a_CVKGVcKw" association="_xZCpd8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZCpecRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZCpesRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpe8RUEdq3a_CVKGVcKw" name="A_ownedUseCase_classifier" memberEnd="_xY8i8cRUEdq3a_CVKGVcKw _xZCpfcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZCpfMRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZCpfcRUEdq3a_CVKGVcKw" type="_6UV2QGwJEdq7X4sGURiZYA" association="_xZCpe8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZCpfsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZCpf8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZCpgMRUEdq3a_CVKGVcKw" name="A_subject_useCase" memberEnd="_xY8i9cRUEdq3a_CVKGVcKw _xY8i28RUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZIwBsRUEdq3a_CVKGVcKw" name="CallEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZIwB8RUEdq3a_CVKGVcKw" annotatedElement="_xZIwBsRUEdq3a_CVKGVcKw">
+ <body>A call event represents the reception of a request to invoke a specific operation. A call event is distinct from the call action that caused it. A call event may cause the invocation of a behavior that is the method of the operation referenced by the call request, if that operation is owned or inherited by the classifier that specified the receiver object.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZIwCMRUEdq3a_CVKGVcKw" general="_xZO2y8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZIwCcRUEdq3a_CVKGVcKw" name="operation" type="_M4X2IGveEdq4DLWZOhbdEA" association="_xZU9VMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZIwCsRUEdq3a_CVKGVcKw" annotatedElement="_xZIwCcRUEdq3a_CVKGVcKw">
+ <body>Designates the operation whose invocation raised the call event.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZIwC8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZIwDMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZIwDcRUEdq3a_CVKGVcKw" name="ChangeEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZIwDsRUEdq3a_CVKGVcKw" annotatedElement="_xZIwDcRUEdq3a_CVKGVcKw">
+ <body>A change event occurs when a Boolean-valued expression becomes true, for example, as a result of a change in the value held in a slot corresponding to an attribute, or a change in the value referenced by a link corresponding to an association. A change event is raised implicitly and is not the result of an explicit action.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZIwD8RUEdq3a_CVKGVcKw" general="_xZU9RMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZIwEMRUEdq3a_CVKGVcKw" name="changeExpression" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xZbD6cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZIwEcRUEdq3a_CVKGVcKw" annotatedElement="_xZIwEMRUEdq3a_CVKGVcKw">
+ <body>A Boolean-valued expression that will result in a change event whenever its value changes from false to true.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZIwEsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZIwE8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZO2rMRUEdq3a_CVKGVcKw" name="Reception">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2rcRUEdq3a_CVKGVcKw" annotatedElement="_xZO2rMRUEdq3a_CVKGVcKw">
+ <body>A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZO2rsRUEdq3a_CVKGVcKw" name="not_query" constrainedElement="_xZO2rMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2r8RUEdq3a_CVKGVcKw" annotatedElement="_xZO2rsRUEdq3a_CVKGVcKw">
+ <body>A Reception can not be a query.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZO2sMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>not self.isQuery</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZO2scRUEdq3a_CVKGVcKw" general="_rHT3YKOsEdqi_5gqUMOQtA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZO2ssRUEdq3a_CVKGVcKw" name="signal" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_xZU9UMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2s8RUEdq3a_CVKGVcKw" annotatedElement="_xZO2ssRUEdq3a_CVKGVcKw">
+ <body>The signal that this reception handles.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZO2tMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZO2tcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Pu3O0HL0EdqziYxiZo0YtA" name="Signal">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2tsRUEdq3a_CVKGVcKw" annotatedElement="_Pu3O0HL0EdqziYxiZo0YtA">
+ <body>A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZO2t8RUEdq3a_CVKGVcKw" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZO2uMRUEdq3a_CVKGVcKw" name="ownedAttribute" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_xPS3iMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw" association="_xZbD7sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2ucRUEdq3a_CVKGVcKw" annotatedElement="_xZO2uMRUEdq3a_CVKGVcKw">
+ <body>The attributes owned by the signal.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZO2usRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZO2u8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_YIM4UHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YIM4UXL0EdqziYxiZo0YtA" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YIM4UnL0EdqziYxiZo0YtA" name="name" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5RAjsaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5RAjsKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YIM4U3L0EdqziYxiZo0YtA" name="type" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7g9NEaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7g9NEKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YIM4VHL0EdqziYxiZo0YtA" name="lower" type="_XqvEIGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_YIM4VXL0EdqziYxiZo0YtA" name="upper" type="_dRZxsGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZO2vMRUEdq3a_CVKGVcKw" name="SignalEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2vcRUEdq3a_CVKGVcKw" annotatedElement="_xZO2vMRUEdq3a_CVKGVcKw">
+ <body>A signal event represents the receipt of an asynchronous signal. A signal event may cause a response, such as a state machine transition as specified in the classifier behavior of the classifier that specified the receiver object, if the signal referenced by the send request is mentioned in a reception owned or inherited by the classifier that specified the receiver object.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZO2vsRUEdq3a_CVKGVcKw" general="_xZO2y8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZO2v8RUEdq3a_CVKGVcKw" name="signal" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_xZU9WMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2wMRUEdq3a_CVKGVcKw" annotatedElement="_xZO2v8RUEdq3a_CVKGVcKw">
+ <body>The specific signal that is associated with this event.</body>
+ </ownedComment>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZO2y8RUEdq3a_CVKGVcKw" name="MessageEvent" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2zMRUEdq3a_CVKGVcKw" annotatedElement="_xZO2y8RUEdq3a_CVKGVcKw">
+ <body>A message event specifies the receipt by an object of either a call or a signal. MessageEvent is an abstract metaclass.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZO2zcRUEdq3a_CVKGVcKw" general="_xZU9RMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZO2zsRUEdq3a_CVKGVcKw" name="AnyReceiveEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2z8RUEdq3a_CVKGVcKw" annotatedElement="_xZO2zsRUEdq3a_CVKGVcKw">
+ <body>A transition trigger associated with AnyReceiveEvent specifies that the transition is to be triggered by the receipt of any message that is not explicitly referenced in another transition from the same vertex.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZO20MRUEdq3a_CVKGVcKw" general="_xZO2y8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iY7sMGvsEdqG6fBIPwe-mw" name="BehavioredClassifier" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXUyKcRUEdq3a_CVKGVcKw" annotatedElement="_iY7sMGvsEdqG6fBIPwe-mw">
+ <body>A BehavioredClassifier may have an interface realization.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV4n2MRUEdq3a_CVKGVcKw" annotatedElement="_iY7sMGvsEdqG6fBIPwe-mw">
+ <body>A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xV-uUMRUEdq3a_CVKGVcKw" name="class_behavior" constrainedElement="_iY7sMGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uUcRUEdq3a_CVKGVcKw" annotatedElement="_xV-uUMRUEdq3a_CVKGVcKw">
+ <body>If a behavior is classifier behavior, it does not have a specification.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xV-uUsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.classifierBehavior.notEmpty() implies self.specification.isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xV-uU8RUEdq3a_CVKGVcKw" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xV-uVMRUEdq3a_CVKGVcKw" name="ownedBehavior" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xWE08MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uVcRUEdq3a_CVKGVcKw" annotatedElement="_xV-uVMRUEdq3a_CVKGVcKw">
+ <body>References behavior specifications owned by a classifier.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xV-uVsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xV-uV8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xV-uWMRUEdq3a_CVKGVcKw" name="classifierBehavior" type="_TUPtYGveEdq4DLWZOhbdEA" subsettedProperty="_xV-uVMRUEdq3a_CVKGVcKw" association="_xWE09cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xV-uWcRUEdq3a_CVKGVcKw" annotatedElement="_xV-uWMRUEdq3a_CVKGVcKw">
+ <body>A behavior specification that specifies the behavior of the classifier itself.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xV-uWsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xV-uW8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXUyK8RUEdq3a_CVKGVcKw" name="interfaceRealization" type="_l2mXcHLzEdqziYxiZo0YtA" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw _xXIk4MRUEdq3a_CVKGVcKw" association="_xXa4wMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXUyLMRUEdq3a_CVKGVcKw" annotatedElement="_xXUyK8RUEdq3a_CVKGVcKw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXUyLcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXUyLsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZU9QMRUEdq3a_CVKGVcKw" name="ownedTrigger" type="_xZO2oMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xZbD9MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZU9QcRUEdq3a_CVKGVcKw" annotatedElement="_xZU9QMRUEdq3a_CVKGVcKw">
+ <body>References Trigger descriptions owned by a Classifier.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZU9QsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZU9Q8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_dx6lQK69EdqjppZik4kD8A" name="getImplementedInterfaces">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_gSQbEK69EdqjppZik4kD8A" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iwNEMa69EdqjppZik4kD8A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iwNEMK69EdqjppZik4kD8A"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lbuPQK69EdqjppZik4kD8A" name="getAllImplementedInterfaces">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_lbuPQa69EdqjppZik4kD8A" type="_8Ugn8GvtEdqG6fBIPwe-mw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lbuPQq69EdqjppZik4kD8A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lbuPQ669EdqjppZik4kD8A"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZU9RMRUEdq3a_CVKGVcKw" name="Event" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZU9RcRUEdq3a_CVKGVcKw" annotatedElement="_xZU9RMRUEdq3a_CVKGVcKw">
+ <body>An event is the specification of some occurrence that may potentially trigger effects by an object.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZU9RsRUEdq3a_CVKGVcKw" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_xZU9SMRUEdq3a_CVKGVcKw" name="CallConcurrencyKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZU9ScRUEdq3a_CVKGVcKw" annotatedElement="_xZU9SMRUEdq3a_CVKGVcKw">
+ <body>CallConcurrencyKind is an enumeration with the following literals:
+• sequential No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once.
+• guarded Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks.
+• concurrent Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently.
+
+</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xZU9SsRUEdq3a_CVKGVcKw" name="sequential">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZU9S8RUEdq3a_CVKGVcKw" annotatedElement="_xZU9SsRUEdq3a_CVKGVcKw">
+ <body>No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xZU9TMRUEdq3a_CVKGVcKw" name="guarded">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZU9TcRUEdq3a_CVKGVcKw" annotatedElement="_xZU9TMRUEdq3a_CVKGVcKw">
+ <body>Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xZU9TsRUEdq3a_CVKGVcKw" name="concurrent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZU9T8RUEdq3a_CVKGVcKw" annotatedElement="_xZU9TsRUEdq3a_CVKGVcKw">
+ <body>Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently.</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZU9UMRUEdq3a_CVKGVcKw" name="A_reception_signal" memberEnd="_xZO2ssRUEdq3a_CVKGVcKw _xZU9UcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZU9UcRUEdq3a_CVKGVcKw" type="_xZO2rMRUEdq3a_CVKGVcKw" association="_xZU9UMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZU9UsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZU9U8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZU9VMRUEdq3a_CVKGVcKw" name="A_operation_callEvent" memberEnd="_xZIwCcRUEdq3a_CVKGVcKw _xZU9VcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZU9VcRUEdq3a_CVKGVcKw" type="_xZIwBsRUEdq3a_CVKGVcKw" association="_xZU9VMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZU9VsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZU9V8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZU9WMRUEdq3a_CVKGVcKw" name="A_signal_signalEvent" memberEnd="_xZO2v8RUEdq3a_CVKGVcKw _xZU9WcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZU9WcRUEdq3a_CVKGVcKw" type="_xZO2vMRUEdq3a_CVKGVcKw" association="_xZU9WMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZU9WsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZU9W8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZU9XMRUEdq3a_CVKGVcKw" name="A_ownedReception_interface" memberEnd="_xZO2qMRUEdq3a_CVKGVcKw _xZU9X8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZU9XcRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZU9XsRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZU9X8RUEdq3a_CVKGVcKw" type="_8Ugn8GvtEdqG6fBIPwe-mw" association="_xZU9XMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZU9YMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZU9YcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZbD4MRUEdq3a_CVKGVcKw" name="A_ownedReception_class" memberEnd="_xZIwHMRUEdq3a_CVKGVcKw _xZbD48RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZbD4cRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZbD4sRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZbD48RUEdq3a_CVKGVcKw" type="_00owUGvdEdq4DLWZOhbdEA" association="_xZbD4MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZbD5MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZbD5cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZbD6cRUEdq3a_CVKGVcKw" name="A_changeExpression_changeEvent" memberEnd="_xZIwEMRUEdq3a_CVKGVcKw _xZbD68RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZbD6sRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZbD68RUEdq3a_CVKGVcKw" type="_xZIwDcRUEdq3a_CVKGVcKw" association="_xZbD6cRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xRxj3MRUEdq3a_CVKGVcKw" name="A_raisedException_behavioralFeature" memberEnd="_xQP57cRUEdq3a_CVKGVcKw _xRxj3cRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xRxj3cRUEdq3a_CVKGVcKw" visibility="public" type="_rHT3YKOsEdqi_5gqUMOQtA" association="_xRxj3MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZbD7MRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZbD7cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZbD7sRUEdq3a_CVKGVcKw" name="A_ownedAttribute_owningSignal" memberEnd="_xZO2uMRUEdq3a_CVKGVcKw _xZbD8cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZbD78RUEdq3a_CVKGVcKw" general="_xRrdSMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZbD8MRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZbD8cRUEdq3a_CVKGVcKw" name="owningSignal" type="_Pu3O0HL0EdqziYxiZo0YtA" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw _xRrdS8RUEdq3a_CVKGVcKw _xPfEz8RUEdq3a_CVKGVcKw" association="_xZbD7sRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZbD8sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZbD88RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZbD9MRUEdq3a_CVKGVcKw" name="A_ownedTrigger_behavioredClassifier" memberEnd="_xZU9QMRUEdq3a_CVKGVcKw _xZbD9sRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZbD9cRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZbD9sRUEdq3a_CVKGVcKw" type="_iY7sMGvsEdqG6fBIPwe-mw" association="_xZbD9MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZbD98RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZbD-MRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZbD-cRUEdq3a_CVKGVcKw" name="A_event_trigger" memberEnd="_xZO2o8RUEdq3a_CVKGVcKw _xZbD-sRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZbD-sRUEdq3a_CVKGVcKw" type="_xZO2oMRUEdq3a_CVKGVcKw" association="_xZbD-cRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZhKgMRUEdq3a_CVKGVcKw" name="ForkNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKgcRUEdq3a_CVKGVcKw" annotatedElement="_xZhKgMRUEdq3a_CVKGVcKw">
+ <body>A fork node has one incoming edge and multiple outgoing edges.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZhKgsRUEdq3a_CVKGVcKw" name="one_incoming_edge" constrainedElement="_xZhKgMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKg8RUEdq3a_CVKGVcKw" annotatedElement="_xZhKgsRUEdq3a_CVKGVcKw">
+ <body>A fork node has one incoming edge.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZhKhMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZhKhcRUEdq3a_CVKGVcKw" name="edges" constrainedElement="_xZhKgMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKhsRUEdq3a_CVKGVcKw" annotatedElement="_xZhKhcRUEdq3a_CVKGVcKw">
+ <body>The edges coming into and out of a fork node must be either all object flows or all control flows.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZhKh8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZhKiMRUEdq3a_CVKGVcKw" general="_xX5Z9MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZhKicRUEdq3a_CVKGVcKw" name="FlowFinalNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKisRUEdq3a_CVKGVcKw" annotatedElement="_xZhKicRUEdq3a_CVKGVcKw">
+ <body>A flow final destroys all tokens that arrive at it. It has no effect on other flows in the activity.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZhKi8RUEdq3a_CVKGVcKw" general="_xZnRQcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZhKjMRUEdq3a_CVKGVcKw" name="CentralBufferNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKjcRUEdq3a_CVKGVcKw" annotatedElement="_xZhKjMRUEdq3a_CVKGVcKw">
+ <body>A central buffer node accepts tokens from upstream objects nodes and passes them along to downstream object nodes. They act as a buffer for multiple in flows and out flows from other object nodes. They do not connect directly to actions.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZhKjsRUEdq3a_CVKGVcKw" general="_xX5Z6sRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZhKj8RUEdq3a_CVKGVcKw" name="ActivityPartition">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKkMRUEdq3a_CVKGVcKw" annotatedElement="_xZhKj8RUEdq3a_CVKGVcKw">
+ <body>Partitions divide the nodes and edges to constrain and show a view of the contained nodes. Partitions can share contents. They often correspond to organizational units in a business model. They may be used to allocate characteristics or resources among the nodes of an activity.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZhKkcRUEdq3a_CVKGVcKw" name="dimension_not_contained" constrainedElement="_xZhKj8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKksRUEdq3a_CVKGVcKw" annotatedElement="_xZhKkcRUEdq3a_CVKGVcKw">
+ <body>A partition with isDimension = true may not be contained by another partition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZhKk8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZhKlMRUEdq3a_CVKGVcKw" name="represents_part" constrainedElement="_xZhKj8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKlcRUEdq3a_CVKGVcKw" annotatedElement="_xZhKlMRUEdq3a_CVKGVcKw">
+ <body>If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZhKlsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZhKl8RUEdq3a_CVKGVcKw" name="represents_classifier" constrainedElement="_xZhKj8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKmMRUEdq3a_CVKGVcKw" annotatedElement="_xZhKl8RUEdq3a_CVKGVcKw">
+ <body>If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZhKmcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZhKmsRUEdq3a_CVKGVcKw" name="represents_part_and_is_contained" constrainedElement="_xZhKj8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKm8RUEdq3a_CVKGVcKw" annotatedElement="_xZhKmsRUEdq3a_CVKGVcKw">
+ <body>If a partition represents a part and is contained by another partition, then the part must be of a classifier represented by the containing partition, or of a classifier that is the type of a part representing the containing partition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZhKnMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZhKncRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZhKnsRUEdq3a_CVKGVcKw" general="_xWdPhsRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZhKn8RUEdq3a_CVKGVcKw" name="isDimension" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKoMRUEdq3a_CVKGVcKw" annotatedElement="_xZhKn8RUEdq3a_CVKGVcKw">
+ <body>Tells whether the partition groups other partitions along a dimension.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xZhKocRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZhKosRUEdq3a_CVKGVcKw" name="isExternal" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKo8RUEdq3a_CVKGVcKw" annotatedElement="_xZhKosRUEdq3a_CVKGVcKw">
+ <body>Tells whether the partition represents an entity to which the partitioning structure does not apply.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xZhKpMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZhKpcRUEdq3a_CVKGVcKw" name="edge" type="_xX5Z98RUEdq3a_CVKGVcKw" subsettedProperty="_xX_gocRUEdq3a_CVKGVcKw" association="_xZtXz8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKpsRUEdq3a_CVKGVcKw" annotatedElement="_xZhKpcRUEdq3a_CVKGVcKw">
+ <body>Edges immediately contained in the group.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZhKp8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZhKqMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZhKqcRUEdq3a_CVKGVcKw" name="node" type="_xWj9IMRUEdq3a_CVKGVcKw" subsettedProperty="_xWdPicRUEdq3a_CVKGVcKw" association="_xZzeYMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKqsRUEdq3a_CVKGVcKw" annotatedElement="_xZhKqcRUEdq3a_CVKGVcKw">
+ <body>Nodes immediately contained in the group.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZhKq8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZhKrMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZhKrcRUEdq3a_CVKGVcKw" name="subpartition" type="_xZhKj8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWdPkcRUEdq3a_CVKGVcKw" association="_xZzeYsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKrsRUEdq3a_CVKGVcKw" annotatedElement="_xZhKrcRUEdq3a_CVKGVcKw">
+ <body>Partitions immediately contained in the partition. Specialized from Activity-Group::subgroup.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZhKr8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZhKsMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZhKscRUEdq3a_CVKGVcKw" name="superPartition" type="_xZhKj8RUEdq3a_CVKGVcKw" subsettedProperty="_xWdPlcRUEdq3a_CVKGVcKw" association="_xZzeYsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKssRUEdq3a_CVKGVcKw" annotatedElement="_xZhKscRUEdq3a_CVKGVcKw">
+ <body>Partition immediately containing the partition.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZhKs8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZhKtMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZhKtcRUEdq3a_CVKGVcKw" name="represents" type="_kl90MGvbEdq4DLWZOhbdEA" association="_xZzeZMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZhKtsRUEdq3a_CVKGVcKw" annotatedElement="_xZhKtcRUEdq3a_CVKGVcKw">
+ <body>An element constraining behaviors invoked by nodes in the partition.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZhKt8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZhKuMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZnRKMRUEdq3a_CVKGVcKw" name="MergeNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRKcRUEdq3a_CVKGVcKw" annotatedElement="_xZnRKMRUEdq3a_CVKGVcKw">
+ <body>A merge node has multiple incoming edges and a single outgoing edge.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZnRKsRUEdq3a_CVKGVcKw" name="one_outgoing_edge" constrainedElement="_xZnRKMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRK8RUEdq3a_CVKGVcKw" annotatedElement="_xZnRKsRUEdq3a_CVKGVcKw">
+ <body>A merge node has one outgoing edge.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZnRLMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZnRLcRUEdq3a_CVKGVcKw" name="edges" constrainedElement="_xZnRKMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRLsRUEdq3a_CVKGVcKw" annotatedElement="_xZnRLcRUEdq3a_CVKGVcKw">
+ <body>The edges coming into and out of a merge node must be either all object flows or all control flows.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZnRL8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZnRMMRUEdq3a_CVKGVcKw" general="_xX5Z9MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZnRMcRUEdq3a_CVKGVcKw" name="DecisionNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRMsRUEdq3a_CVKGVcKw" annotatedElement="_xZnRMcRUEdq3a_CVKGVcKw">
+ <body>A decision node has one incoming edge and multiple outgoing activity edges.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZnRM8RUEdq3a_CVKGVcKw" name="one_incoming_edge" constrainedElement="_xZnRMcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRNMRUEdq3a_CVKGVcKw" annotatedElement="_xZnRM8RUEdq3a_CVKGVcKw">
+ <body>A decision node has one incoming edge.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZnRNcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZnRNsRUEdq3a_CVKGVcKw" name="input_parameter" constrainedElement="_xZnRMcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRN8RUEdq3a_CVKGVcKw" annotatedElement="_xZnRNsRUEdq3a_CVKGVcKw">
+ <body>A decision input behavior has zero or one input parameter and one output parameter. Any input parameter must be the same as or a supertype of the type of object tokens coming along the incoming edge. The behavior cannot have side effects.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZnROMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZnROcRUEdq3a_CVKGVcKw" name="edges" constrainedElement="_xZnRMcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnROsRUEdq3a_CVKGVcKw" annotatedElement="_xZnROcRUEdq3a_CVKGVcKw">
+ <body>The edges coming into and out of a decision node must be either all object flows or all control flows.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZnRO8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZnRPMRUEdq3a_CVKGVcKw" general="_xX5Z9MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZnRPcRUEdq3a_CVKGVcKw" name="decisionInput" type="_TUPtYGveEdq4DLWZOhbdEA" association="_xZzea8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRPsRUEdq3a_CVKGVcKw" annotatedElement="_xZnRPcRUEdq3a_CVKGVcKw">
+ <body>Provides input to guard specifications on edges outgoing from the decision node.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZnRP8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZnRQMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZnRQcRUEdq3a_CVKGVcKw" name="FinalNode" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRQsRUEdq3a_CVKGVcKw" annotatedElement="_xZnRQcRUEdq3a_CVKGVcKw">
+ <body>A final node is an abstract control node at which a flow in an activity stops.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZnRQ8RUEdq3a_CVKGVcKw" name="no_outgoing_edges" constrainedElement="_xZnRQcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZnRRMRUEdq3a_CVKGVcKw" annotatedElement="_xZnRQ8RUEdq3a_CVKGVcKw">
+ <body>A final node has no outgoing edges.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZnRRcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZtXwMRUEdq3a_CVKGVcKw" general="_xX5Z9MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xX_glcRUEdq3a_CVKGVcKw" name="ActivityFinalNode">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xX_glsRUEdq3a_CVKGVcKw" annotatedElement="_xX_glcRUEdq3a_CVKGVcKw">
+ <body>An activity may have more than one activity final node. The first one reached stops all flows in the activity.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZtXwcRUEdq3a_CVKGVcKw" general="_xZnRQcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZtXz8RUEdq3a_CVKGVcKw" name="A_edge_inPartition" memberEnd="_xZhKucRUEdq3a_CVKGVcKw _xZhKpcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZtX0MRUEdq3a_CVKGVcKw" general="_xYFnN8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZzeYMRUEdq3a_CVKGVcKw" name="A_inPartition_node" memberEnd="_xZnRIsRUEdq3a_CVKGVcKw _xZhKqcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZzeYcRUEdq3a_CVKGVcKw" general="_xWj9LcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZzeYsRUEdq3a_CVKGVcKw" name="A_subpartition_superPartition" memberEnd="_xZhKrcRUEdq3a_CVKGVcKw _xZhKscRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZzeY8RUEdq3a_CVKGVcKw" general="_xWj9MMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZzeZMRUEdq3a_CVKGVcKw" name="A_represents_activityPartition" memberEnd="_xZhKtcRUEdq3a_CVKGVcKw _xZzeZcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZzeZcRUEdq3a_CVKGVcKw" type="_xZhKj8RUEdq3a_CVKGVcKw" association="_xZzeZMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZzeZsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZzeZ8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZzeaMRUEdq3a_CVKGVcKw" name="A_activityEdge_guard" memberEnd="_xZhKvcRUEdq3a_CVKGVcKw _xZzeasRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZzeacRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZzeasRUEdq3a_CVKGVcKw" type="_xX5Z98RUEdq3a_CVKGVcKw" association="_xZzeaMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZzea8RUEdq3a_CVKGVcKw" name="A_decisionInput_decisionNode" memberEnd="_xZnRPcRUEdq3a_CVKGVcKw _xZzebMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZzebMRUEdq3a_CVKGVcKw" type="_xZnRMcRUEdq3a_CVKGVcKw" association="_xZzea8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZzebcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZzebsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZzeb8RUEdq3a_CVKGVcKw" name="A_partition_activity" memberEnd="_xZtXycRUEdq3a_CVKGVcKw _xZzeccRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZzecMRUEdq3a_CVKGVcKw" general="_xWj9LsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZzeccRUEdq3a_CVKGVcKw" type="_xWdPeMRUEdq3a_CVKGVcKw" association="_xZzeb8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZzecsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZzec8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xWj9LsRUEdq3a_CVKGVcKw" name="A_group_inActivity" memberEnd="_xWdPjcRUEdq3a_CVKGVcKw _xWdPgsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWj9L8RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZ5lHMRUEdq3a_CVKGVcKw" name="EncapsulatedClassifier" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZ5lHcRUEdq3a_CVKGVcKw" annotatedElement="_xZ5lHMRUEdq3a_CVKGVcKw">
+ <body>Extends a classifier with the ability to own ports as specific and type checked interaction points.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZ5lHsRUEdq3a_CVKGVcKw" general="_FQiVsGwYEdqHKKVoxc0dlA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZ5lH8RUEdq3a_CVKGVcKw" name="ownedPort" type="_ZAuvEGveEdq4DLWZOhbdEA" isDerived="true" aggregation="composite" subsettedProperty="_xXg_ZcRUEdq3a_CVKGVcKw" association="_xZ5lMMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZ5lIMRUEdq3a_CVKGVcKw" annotatedElement="_xZ5lH8RUEdq3a_CVKGVcKw">
+ <body>References a set of ports that an encapsulated classifier owns.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZ5lIcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZ5lIsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_aOgw0GveEdq4DLWZOhbdEA" name="ConnectorEnd">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa4zsRUEdq3a_CVKGVcKw" annotatedElement="_aOgw0GveEdq4DLWZOhbdEA">
+ <body>A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xXa4z8RUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa40MRUEdq3a_CVKGVcKw" annotatedElement="_xXa4z8RUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xXa40cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZ5lI8RUEdq3a_CVKGVcKw" name="part_with_port_empty" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZ5lJMRUEdq3a_CVKGVcKw" annotatedElement="_xZ5lI8RUEdq3a_CVKGVcKw">
+ <body>If a connector end is attached to a port of the containing classifier, partWithPort will be empty.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZ5lJcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZ5lJsRUEdq3a_CVKGVcKw" name="role_and_part_with_port" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZ5lJ8RUEdq3a_CVKGVcKw" annotatedElement="_xZ5lJsRUEdq3a_CVKGVcKw">
+ <body>If a connector end references both a role and a partWithPort, then the role must be a port that is defined by the type of the partWithPort.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZ5lKMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xZ5lKcRUEdq3a_CVKGVcKw" name="self_part_with_port" constrainedElement="_aOgw0GveEdq4DLWZOhbdEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZ5lKsRUEdq3a_CVKGVcKw" annotatedElement="_xZ5lKcRUEdq3a_CVKGVcKw">
+ <body>The property held in self.partWithPort must not be a Port.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xZ5lK8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXa40sRUEdq3a_CVKGVcKw" general="_Gjgl0GveEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXa408RUEdq3a_CVKGVcKw" name="definingEnd" type="_Jp_1oGveEdq4DLWZOhbdEA" isReadOnly="true" isDerived="true" association="_xXnGJcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa41MRUEdq3a_CVKGVcKw" annotatedElement="_xXa408RUEdq3a_CVKGVcKw">
+ <body>A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXa41cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXa41sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXa418RUEdq3a_CVKGVcKw" name="role" type="_xXg_dcRUEdq3a_CVKGVcKw" association="_xXnGKcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa42MRUEdq3a_CVKGVcKw" annotatedElement="_xXa418RUEdq3a_CVKGVcKw">
+ <body>The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXa42cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXa42sRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZ5lLMRUEdq3a_CVKGVcKw" name="partWithPort" type="_Jp_1oGveEdq4DLWZOhbdEA" association="_xZ_rrcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZ5lLcRUEdq3a_CVKGVcKw" annotatedElement="_xZ5lLMRUEdq3a_CVKGVcKw">
+ <body>Indicates the role of the internal structure of a classifier with the port to which the connector end is attached.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZ5lLsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZ5lL8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_QT7XMFYKEdqrn7iZ0eqieg" name="getDefiningEnd" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_VkstQFYKEdqrn7iZ0eqieg" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZ5lMMRUEdq3a_CVKGVcKw" name="A_encapsulatedClassifier_ownedPort" memberEnd="_xZ5lH8RUEdq3a_CVKGVcKw _xZ5lM8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZ5lMsRUEdq3a_CVKGVcKw" general="_xXnGBMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZ5lM8RUEdq3a_CVKGVcKw" type="_xZ5lHMRUEdq3a_CVKGVcKw" redefinedProperty="_xXnGCMRUEdq3a_CVKGVcKw" subsettedProperty="_xPrSGsRUEdq3a_CVKGVcKw" association="_xZ5lMMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZ5lNMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZ5lNcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZ_roMRUEdq3a_CVKGVcKw" name="A_required_port" memberEnd="_xZ5lEMRUEdq3a_CVKGVcKw _xZ_rocRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZ_rocRUEdq3a_CVKGVcKw" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_xZ_roMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZ_rosRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZ_ro8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZ_rpMRUEdq3a_CVKGVcKw" name="A_redefinedPort_port" memberEnd="_xZ5lFMRUEdq3a_CVKGVcKw _xZ_rpsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZ_rpcRUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZ_rpsRUEdq3a_CVKGVcKw" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_xZ_rpMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZ_rp8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZ_rqMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZ_rqcRUEdq3a_CVKGVcKw" name="A_provided_port" memberEnd="_xZ5lGMRUEdq3a_CVKGVcKw _xZ_rqsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZ_rqsRUEdq3a_CVKGVcKw" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_xZ_rqcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZ_rq8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZ_rrMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZ_rrcRUEdq3a_CVKGVcKw" name="A_partWithPort_connectorEnd" memberEnd="_xZ5lLMRUEdq3a_CVKGVcKw _xZ_rrsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZ_rrsRUEdq3a_CVKGVcKw" type="_aOgw0GveEdq4DLWZOhbdEA" association="_xZ_rrcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaFyZMRUEdq3a_CVKGVcKw" name="ComponentRealization">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFyZcRUEdq3a_CVKGVcKw" annotatedElement="_xaFyZMRUEdq3a_CVKGVcKw">
+ <body>In the metamodel, a ComponentRealization is a subtype of Dependencies::Realization.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaFyZsRUEdq3a_CVKGVcKw" general="_xXCeVcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaFyZ8RUEdq3a_CVKGVcKw" name="abstraction" type="_DAbfwa69EdqjppZik4kD8A" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw _xXCeUcRUEdq3a_CVKGVcKw" association="_xaL47sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFyaMRUEdq3a_CVKGVcKw" annotatedElement="_xaFyZ8RUEdq3a_CVKGVcKw">
+ <body>The Component that owns this ComponentRealization and which is implemented by its realizing classifiers.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaFyacRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaFyasRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaFya8RUEdq3a_CVKGVcKw" name="realizingClassifier" type="_6UV2QGwJEdq7X4sGURiZYA" subsettedProperty="_xXCeTcRUEdq3a_CVKGVcKw" association="_xaL48cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFybMRUEdq3a_CVKGVcKw" annotatedElement="_xaFya8RUEdq3a_CVKGVcKw">
+ <body>A classifier that is involved in the implementation of the Component that owns this ComponentRealization.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaFybcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaFybsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xXa428RUEdq3a_CVKGVcKw" name="Connector">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa43MRUEdq3a_CVKGVcKw" annotatedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <body>Each connector may be attached to two or more connectable elements, each representing a set of instances. Each connector end is distinct in the sense that it plays a distinct role in the communication realized over a connector. The communications realized over a connector may be constrained by various constraints (including type constraints) that apply to the attached connectable elements.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFyb8RUEdq3a_CVKGVcKw" annotatedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <body>In the metamodel, a connector kind attribute is added to the Connector metaclass. Its value is an enumeration type with valid values 'assembly' or 'delegation'.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xXa43cRUEdq3a_CVKGVcKw" name="types" constrainedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa43sRUEdq3a_CVKGVcKw" annotatedElement="_xXa43cRUEdq3a_CVKGVcKw">
+ <body>The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xXa438RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xXa44MRUEdq3a_CVKGVcKw" name="compatible" constrainedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa44cRUEdq3a_CVKGVcKw" annotatedElement="_xXa44MRUEdq3a_CVKGVcKw">
+ <body>The connectable elements attached to the ends of a connector must be compatible.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xXa44sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xXa448RUEdq3a_CVKGVcKw" name="roles" constrainedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa45MRUEdq3a_CVKGVcKw" annotatedElement="_xXa448RUEdq3a_CVKGVcKw">
+ <body>The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xXa45cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaFycMRUEdq3a_CVKGVcKw" name="between_interfaces_ports" constrainedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFyccRUEdq3a_CVKGVcKw" annotatedElement="_xaFycMRUEdq3a_CVKGVcKw">
+ <body>A delegation connector must only be defined between used Interfaces or Ports of the same kind, e.g. between two provided Ports or between two required Ports.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaFycsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaFyc8RUEdq3a_CVKGVcKw" name="between_interface_port_implements" constrainedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFydMRUEdq3a_CVKGVcKw" annotatedElement="_xaFyc8RUEdq3a_CVKGVcKw">
+ <body>If a delegation connector is defined between a used Interface or Port and an internal Part Classifier, then that Classifier must have an 'implements' relationship to the Interface type of that Port.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaFydcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaFydsRUEdq3a_CVKGVcKw" name="between_interface_port_signature" constrainedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFyd8RUEdq3a_CVKGVcKw" annotatedElement="_xaFydsRUEdq3a_CVKGVcKw">
+ <body>If a delegation connector is defined between a source Interface or Port and a target Interface or Port, then the target Interface must support a signature compatible subset of Operations of the source Interface or Port.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaFyeMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaFyecRUEdq3a_CVKGVcKw" name="union_signature_compatible" constrainedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFyesRUEdq3a_CVKGVcKw" annotatedElement="_xaFyecRUEdq3a_CVKGVcKw">
+ <body>In a complete model, if a source Port has delegation connectors to a set of delegated target Ports, then the union of the Interfaces of these target Ports must be signature compatible with the Interface that types the source Port.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaFye8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaFyfMRUEdq3a_CVKGVcKw" name="assembly_connector" constrainedElement="_xXa428RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFyfcRUEdq3a_CVKGVcKw" annotatedElement="_xaFyfMRUEdq3a_CVKGVcKw">
+ <body>An assembly connector must only be defined from a required Interface or Ports to a provided Interface or Port.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaFyfsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xXa45sRUEdq3a_CVKGVcKw" general="_xPfEzMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXa458RUEdq3a_CVKGVcKw" name="type" type="_AwvxoGwNEdq7X4sGURiZYA" association="_xXnGAMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa46MRUEdq3a_CVKGVcKw" annotatedElement="_xXa458RUEdq3a_CVKGVcKw">
+ <body>An optional association that specifies the link corresponding to this connector.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXa46cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXa46sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXa468RUEdq3a_CVKGVcKw" name="redefinedConnector" type="_xXa428RUEdq3a_CVKGVcKw" subsettedProperty="_xPrSHsRUEdq3a_CVKGVcKw" association="_xXnGG8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa47MRUEdq3a_CVKGVcKw" annotatedElement="_xXa468RUEdq3a_CVKGVcKw">
+ <body>A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector.
+The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXa47cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXa47sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXa478RUEdq3a_CVKGVcKw" name="end" type="_aOgw0GveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xXnGIMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xXa48MRUEdq3a_CVKGVcKw" annotatedElement="_xXa478RUEdq3a_CVKGVcKw">
+ <body>A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xXa48cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xXa48sRUEdq3a_CVKGVcKw" value="2"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaFyf8RUEdq3a_CVKGVcKw" name="kind" type="_xaL45MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaFygMRUEdq3a_CVKGVcKw" annotatedElement="_xaFyf8RUEdq3a_CVKGVcKw">
+ <body>Indicates the kind of connector.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaFygcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaFygsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaL44MRUEdq3a_CVKGVcKw" name="contract" type="_TUPtYGveEdq4DLWZOhbdEA" association="_xaL49MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaL44cRUEdq3a_CVKGVcKw" annotatedElement="_xaL44MRUEdq3a_CVKGVcKw">
+ <body>The set of Behaviors that specify the valid interaction patterns across the connector.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaL44sRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaL448RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_xaL45MRUEdq3a_CVKGVcKw" name="ConnectorKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaL45cRUEdq3a_CVKGVcKw" annotatedElement="_xaL45MRUEdq3a_CVKGVcKw">
+ <body>ConnectorKind is an enumeration of the following literal values:
+• assembly Indicates that the connector is an assembly connector.
+• delegation Indicates that the connector is a delegation connector.
+</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xaL45sRUEdq3a_CVKGVcKw" name="assembly">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaL458RUEdq3a_CVKGVcKw" annotatedElement="_xaL45sRUEdq3a_CVKGVcKw">
+ <body>Indicates that the connector is an assembly connector.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xaL46MRUEdq3a_CVKGVcKw" name="delegation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaL46cRUEdq3a_CVKGVcKw" annotatedElement="_xaL46MRUEdq3a_CVKGVcKw">
+ <body>Indicates that the connector is a delegation connector.</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaL46sRUEdq3a_CVKGVcKw" name="A_required_component" memberEnd="_xZ_rusRUEdq3a_CVKGVcKw _xaL468RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaL468RUEdq3a_CVKGVcKw" type="_DAbfwa69EdqjppZik4kD8A" association="_xaL46sRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaL47MRUEdq3a_CVKGVcKw" name="A_provided_component" memberEnd="_xaFyQMRUEdq3a_CVKGVcKw _xaL47cRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaL47cRUEdq3a_CVKGVcKw" type="_DAbfwa69EdqjppZik4kD8A" association="_xaL47MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaL47sRUEdq3a_CVKGVcKw" name="A_realization_abstraction" memberEnd="_xaFyRMRUEdq3a_CVKGVcKw _xaFyZ8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaL478RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaL48MRUEdq3a_CVKGVcKw" general="_xXOrk8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaL48cRUEdq3a_CVKGVcKw" name="A_realizingClassifier_componentRealization" memberEnd="_xaFya8RUEdq3a_CVKGVcKw _xaL488RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaL48sRUEdq3a_CVKGVcKw" general="_xXOrjcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaL488RUEdq3a_CVKGVcKw" type="_xaFyZMRUEdq3a_CVKGVcKw" redefinedProperty="_xR3qgMRUEdq3a_CVKGVcKw" association="_xaL48cRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaL49MRUEdq3a_CVKGVcKw" name="A_contract_connector" memberEnd="_xaL44MRUEdq3a_CVKGVcKw _xaL49cRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaL49cRUEdq3a_CVKGVcKw" type="_xXa428RUEdq3a_CVKGVcKw" association="_xaL49MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaL49sRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaL498RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaSmoMRUEdq3a_CVKGVcKw" name="Manifestation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaSmocRUEdq3a_CVKGVcKw" annotatedElement="_xaSmoMRUEdq3a_CVKGVcKw">
+ <body>In the metamodel, a Manifestation is a subtype of Abstraction. A Manifestation is owned by an Artifact.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmosRUEdq3a_CVKGVcKw" general="_xXCeQ8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaSmo8RUEdq3a_CVKGVcKw" name="utilizedElement" type="_jKxnwGwLEdq7X4sGURiZYA" subsettedProperty="_xXCeTcRUEdq3a_CVKGVcKw" association="_xaSmp8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaSmpMRUEdq3a_CVKGVcKw" annotatedElement="_xaSmo8RUEdq3a_CVKGVcKw">
+ <body>The model element that is utilized in the manifestation in an Artifact.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSmpcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSmpsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaSmp8RUEdq3a_CVKGVcKw" name="A_utilizedElement_manifestation" memberEnd="_xaSmo8RUEdq3a_CVKGVcKw _xaSmqcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmqMRUEdq3a_CVKGVcKw" general="_xXOrjcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaSmqcRUEdq3a_CVKGVcKw" type="_xaSmoMRUEdq3a_CVKGVcKw" association="_xaSmp8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSmqsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSmq8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaSmrMRUEdq3a_CVKGVcKw" name="A_nestedArtifact_artifact" memberEnd="_xaSmkMRUEdq3a_CVKGVcKw _xaSmrsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmrcRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaSmrsRUEdq3a_CVKGVcKw" type="_-lGRgHLzEdqziYxiZo0YtA" redefinedProperty="_xR9xBMRUEdq3a_CVKGVcKw" association="_xaSmrMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaSmr8RUEdq3a_CVKGVcKw" name="A_manifestation_artifact" memberEnd="_xaSmlMRUEdq3a_CVKGVcKw _xaSmssRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmsMRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmscRUEdq3a_CVKGVcKw" general="_xXOrk8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaSmssRUEdq3a_CVKGVcKw" type="_-lGRgHLzEdqziYxiZo0YtA" association="_xaSmr8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSms8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSmtMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaSmtcRUEdq3a_CVKGVcKw" name="A_ownedOperation_artifact" memberEnd="_xaSmmMRUEdq3a_CVKGVcKw _xaSmucRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmtsRUEdq3a_CVKGVcKw" general="_xR3qhcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmt8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmuMRUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaSmucRUEdq3a_CVKGVcKw" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_xPrSGsRUEdq3a_CVKGVcKw _xRfQC8RUEdq3a_CVKGVcKw _xPfEz8RUEdq3a_CVKGVcKw" association="_xaSmtcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSmusRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSmu8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xaSmvMRUEdq3a_CVKGVcKw" name="A_ownedAttribute_artifact" memberEnd="_xaSmnMRUEdq3a_CVKGVcKw _xaSmv8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmvcRUEdq3a_CVKGVcKw" general="_xRrdSMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaSmvsRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xaSmv8RUEdq3a_CVKGVcKw" type="_-lGRgHLzEdqziYxiZo0YtA" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw _xPfEz8RUEdq3a_CVKGVcKw _xRrdS8RUEdq3a_CVKGVcKw" association="_xaSmvMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSmwMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSmwcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaYtO8RUEdq3a_CVKGVcKw" name="Node">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtPMRUEdq3a_CVKGVcKw" annotatedElement="_xaYtO8RUEdq3a_CVKGVcKw">
+ <body>In the metamodel, a Node is a subclass of Class. It is associated with a Deployment of an Artifact. It is also associated with a set of Elements that are deployed on it. This is a derived association in that these PackageableElements are involved in a Manifestation of an Artifact that is deployed on the Node. Nodes may have an internal structure defined in terms of parts and connectors associated with them for advanced modeling applications.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaYtPcRUEdq3a_CVKGVcKw" name="internal_structure" constrainedElement="_xaYtO8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtPsRUEdq3a_CVKGVcKw" annotatedElement="_xaYtPcRUEdq3a_CVKGVcKw">
+ <body>The internal structure of a Node (if defined) consists solely of parts of type Node.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaYtP8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaYtQMRUEdq3a_CVKGVcKw" general="_00owUGvdEdq4DLWZOhbdEA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaYtQcRUEdq3a_CVKGVcKw" general="_xaYtTMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaYtQsRUEdq3a_CVKGVcKw" name="nestedNode" type="_xaYtO8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xak6eMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtQ8RUEdq3a_CVKGVcKw" annotatedElement="_xaYtQsRUEdq3a_CVKGVcKw">
+ <body>The Nodes that are defined (nested) within the Node.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaYtRMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaYtRcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaYtRsRUEdq3a_CVKGVcKw" name="Device">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtR8RUEdq3a_CVKGVcKw" annotatedElement="_xaYtRsRUEdq3a_CVKGVcKw">
+ <body>A Device is a physical computational resource with processing capability upon which artifacts may be deployed for execution. Devices may be complex, i.e. they may consist of other devices. In the metamodel, a Device is a subclass of Node.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaYtSMRUEdq3a_CVKGVcKw" general="_xaYtO8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaYtScRUEdq3a_CVKGVcKw" name="ExecutionEnvironment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtSsRUEdq3a_CVKGVcKw" annotatedElement="_xaYtScRUEdq3a_CVKGVcKw">
+ <body>In the metamodel, a ExecutionEnvironment is a subclass of Node. It is usually part of a general Node, representing the physical hardware environment on which the ExecutionEnvironment resides. In that environment, the ExecutionEnvironment implements a standard set of services that Components require at execution time (at the modeling level these services are usually implicit). For each component Deployment, aspects of these services may be determined by properties in a DeploymentSpecification for a particular kind of ExecutionEnvironment.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaYtS8RUEdq3a_CVKGVcKw" general="_xaYtO8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaYtTMRUEdq3a_CVKGVcKw" name="DeploymentTarget" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtTcRUEdq3a_CVKGVcKw" annotatedElement="_xaYtTMRUEdq3a_CVKGVcKw">
+ <body>In the metamodel, DeploymentTarget is an abstract metaclass that is a specialization of NamedElement. A DeploymentTarget owns a set of Deployments.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaYtTsRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaYtT8RUEdq3a_CVKGVcKw" name="deployment" type="_xaYtMMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw _xXIk4MRUEdq3a_CVKGVcKw" association="_xak6dcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtUMRUEdq3a_CVKGVcKw" annotatedElement="_xaYtT8RUEdq3a_CVKGVcKw">
+ <body>The set of Deployments for a DeploymentTarget.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaYtUcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaYtUsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaYtU8RUEdq3a_CVKGVcKw" name="deployedElement" type="_jKxnwGwLEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" association="_xak6e8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtVMRUEdq3a_CVKGVcKw" annotatedElement="_xaYtU8RUEdq3a_CVKGVcKw">
+ <body>The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaYtVcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaYtVsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xaYtV8RUEdq3a_CVKGVcKw" name="deployedElement" isQuery="true" bodyCondition="_xaYtWMRUEdq3a_CVKGVcKw">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaYtWMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xaYtV8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaYtWcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement)</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xaYtWsRUEdq3a_CVKGVcKw" type="_jKxnwGwLEdq7X4sGURiZYA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaYtW8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaYtXMRUEdq3a_CVKGVcKw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaYtXcRUEdq3a_CVKGVcKw" name="DeployedArtifact" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaYtXsRUEdq3a_CVKGVcKw" annotatedElement="_xaYtXcRUEdq3a_CVKGVcKw">
+ <body>In the metamodel, DeployedArtifact is an abstract metaclass that is a specialization of NamedElement. A DeployedArtifact is involved in one or more Deployments to a DeploymentTarget.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaYtX8RUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaez0MRUEdq3a_CVKGVcKw" name="CommunicationPath">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaez0cRUEdq3a_CVKGVcKw" annotatedElement="_xaez0MRUEdq3a_CVKGVcKw">
+ <body>In the metamodel, CommunicationPath is a subclass of Association.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaez0sRUEdq3a_CVKGVcKw" name="association_ends" constrainedElement="_xaez0MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaez08RUEdq3a_CVKGVcKw" annotatedElement="_xaez0sRUEdq3a_CVKGVcKw">
+ <body>The association ends of a CommunicationPath are typed by DeploymentTargets.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaez1MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = self.endType->forAll (t | t.oclIsKindOf(DeploymentTarget))</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaez1cRUEdq3a_CVKGVcKw" general="_AwvxoGwNEdq7X4sGURiZYA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xTsPV8RUEdq3a_CVKGVcKw" name="InstanceSpecification">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPWMRUEdq3a_CVKGVcKw" annotatedElement="_xTsPV8RUEdq3a_CVKGVcKw">
+ <body>An instance specification specifies existence of an entity in a modeled system and completely or partially describes the entity.
+The description may include:
+
+- Classification of the entity by one or more classifiers of which the entity is an instance. If the only classifier specified is abstract, then the instance specification only partially describes the entity.
+- The kind of instance, based on its classifier or classifiers -- for example, an instance specification whose classifier is a class describes an object of that class, while an instance specification whose classifier is an association describes a link of that association.
+- Specification of values of structural features of the entity. Not all structural features of all classifiers of the instance specification need be represented by slots, in which case the instance specification is a partial description.
+- Specification of how to compute, derive or construct the instance (optional).
+
+InstanceSpecification is a concrete class.
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaez28RUEdq3a_CVKGVcKw" annotatedElement="_xTsPV8RUEdq3a_CVKGVcKw">
+ <body>In the metamodel, InstanceSpecification is a specialization of DeploymentTarget and DeployedArtifact.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xTsPWcRUEdq3a_CVKGVcKw" name="defining_feature" constrainedElement="_xTsPV8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPWsRUEdq3a_CVKGVcKw" annotatedElement="_xTsPWcRUEdq3a_CVKGVcKw">
+ <body>The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTsPW8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature)))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xTsPXMRUEdq3a_CVKGVcKw" name="structural_feature" constrainedElement="_xTsPV8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPXcRUEdq3a_CVKGVcKw" annotatedElement="_xTsPXMRUEdq3a_CVKGVcKw">
+ <body>One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xTsPXsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() &lt;= 1)))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaez3MRUEdq3a_CVKGVcKw" name="deployment_target" constrainedElement="_xTsPV8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaez3cRUEdq3a_CVKGVcKw" annotatedElement="_xaez3MRUEdq3a_CVKGVcKw">
+ <body>An InstanceSpecification can be a DeploymentTarget if it is the instance specification of a Node and functions as a part in the internal structure of an encompassing Node.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaez3sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaez38RUEdq3a_CVKGVcKw" name="deployment_artifact" constrainedElement="_xTsPV8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaez4MRUEdq3a_CVKGVcKw" annotatedElement="_xaez38RUEdq3a_CVKGVcKw">
+ <body>An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaez4cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xTsPX8RUEdq3a_CVKGVcKw" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaez4sRUEdq3a_CVKGVcKw" general="_xaYtTMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaez48RUEdq3a_CVKGVcKw" general="_xaYtXcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTsPYMRUEdq3a_CVKGVcKw" name="classifier" type="_6UV2QGwJEdq7X4sGURiZYA" association="_xVN5WMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPYcRUEdq3a_CVKGVcKw" annotatedElement="_xTsPYMRUEdq3a_CVKGVcKw">
+ <body>The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTsPYsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTsPY8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTsPZMRUEdq3a_CVKGVcKw" name="slot" type="_xTsPbMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xVN5WsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPZcRUEdq3a_CVKGVcKw" annotatedElement="_xTsPZMRUEdq3a_CVKGVcKw">
+ <body>A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTsPZsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTsPZ8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xTsPaMRUEdq3a_CVKGVcKw" name="specification" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xVgNQcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xTsPacRUEdq3a_CVKGVcKw" annotatedElement="_xTsPaMRUEdq3a_CVKGVcKw">
+ <body>A specification of how to compute, derive, or construct the instance.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xTsPasRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTsPa8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-lGRgHLzEdqziYxiZo0YtA" name="Artifact">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaL4_cRUEdq3a_CVKGVcKw" annotatedElement="_-lGRgHLzEdqziYxiZo0YtA">
+ <body>In the metamodel, an Artifact is a Classifier that represents a physical entity. Artifacts may have Properties that represent features of the Artifact, and Operations that can be performed on its instances. Artifacts can be involved in Associations to other Artifacts, e.g. composition associations. Artifacts can be instantiated to represent detailed copy semantics, where different instances of the same Artifact may be deployed to various Node instances (and each may have separate property values, e.g. for a 'time-stamp' property.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaez5MRUEdq3a_CVKGVcKw" annotatedElement="_-lGRgHLzEdqziYxiZo0YtA">
+ <body>As part of the Nodes package, an Artifact is extended to become the source of a deployment to a Node. This is achieved by specializing the abstract superclass.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaL4_sRUEdq3a_CVKGVcKw" general="_6UV2QGwJEdq7X4sGURiZYA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaez5cRUEdq3a_CVKGVcKw" general="_xaYtXcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaL5AMRUEdq3a_CVKGVcKw" name="fileName" type="_aAyVgGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaL5AcRUEdq3a_CVKGVcKw" annotatedElement="_xaL5AMRUEdq3a_CVKGVcKw">
+ <body>A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaL5AsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaL5A8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaSmkMRUEdq3a_CVKGVcKw" name="nestedArtifact" type="_-lGRgHLzEdqziYxiZo0YtA" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xaSmrMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaSmkcRUEdq3a_CVKGVcKw" annotatedElement="_xaSmkMRUEdq3a_CVKGVcKw">
+ <body>The Artifacts that are defined (nested) within the Artifact.
+The association is a specialization of the ownedMember association from Namespace to NamedElement.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSmksRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSmk8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaSmlMRUEdq3a_CVKGVcKw" name="manifestation" type="_xaSmoMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xXIk4MRUEdq3a_CVKGVcKw _xPY-U8RUEdq3a_CVKGVcKw" association="_xaSmr8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaSmlcRUEdq3a_CVKGVcKw" annotatedElement="_xaSmlMRUEdq3a_CVKGVcKw">
+ <body>The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSmlsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSml8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaSmmMRUEdq3a_CVKGVcKw" name="ownedOperation" type="_M4X2IGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_xPS3jMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw" association="_xaSmtcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaSmmcRUEdq3a_CVKGVcKw" annotatedElement="_xaSmmMRUEdq3a_CVKGVcKw">
+ <body>The Operations defined for the Artifact. The association is a specialization of the ownedMember association.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSmmsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSmm8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaSmnMRUEdq3a_CVKGVcKw" name="ownedAttribute" type="_Jp_1oGveEdq4DLWZOhbdEA" isOrdered="true" aggregation="composite" subsettedProperty="_xPS3iMRUEdq3a_CVKGVcKw _xPlLg8RUEdq3a_CVKGVcKw" association="_xaSmvMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaSmncRUEdq3a_CVKGVcKw" annotatedElement="_xaSmnMRUEdq3a_CVKGVcKw">
+ <body>The attributes or association ends defined for the Artifact.
+The association is a specialization of the ownedMember association.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaSmnsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaSmn8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C-IuUHL0EdqziYxiZo0YtA" name="createOwnedOperation">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C-IuUXL0EdqziYxiZo0YtA" type="_M4X2IGveEdq4DLWZOhbdEA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C-IuUnL0EdqziYxiZo0YtA" name="name" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m8S2MaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m8S2MKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C-IuVHL0EdqziYxiZo0YtA" name="parameterNames" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C-IuVXL0EdqziYxiZo0YtA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C-IuVnL0EdqziYxiZo0YtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C-IuV3L0EdqziYxiZo0YtA" name="parameterTypes" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C-IuWHL0EdqziYxiZo0YtA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C-IuWXL0EdqziYxiZo0YtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C-IuU3L0EdqziYxiZo0YtA" name="returnType" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_o7P2MaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_o7P2MKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_U7wxgHL0EdqziYxiZo0YtA" name="createOwnedAttribute">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_U7wxgXL0EdqziYxiZo0YtA" type="_Jp_1oGveEdq4DLWZOhbdEA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_U7wxgnL0EdqziYxiZo0YtA" name="name" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rUSKIaOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rUSKIKOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_U7wxg3L0EdqziYxiZo0YtA" name="type" type="_ynRtoGvtEdqG6fBIPwe-mw" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tO6q0aOxEdqi_5gqUMOQtA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tO6q0KOxEdqi_5gqUMOQtA"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_U7wxhHL0EdqziYxiZo0YtA" name="lower" type="_XqvEIGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_U7wxhXL0EdqziYxiZo0YtA" name="upper" type="_dRZxsGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xak6cMRUEdq3a_CVKGVcKw" name="A_deployedArtifact_deployment" memberEnd="_xaYtM8RUEdq3a_CVKGVcKw _xak6csRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xak6ccRUEdq3a_CVKGVcKw" general="_xXOrjcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xak6csRUEdq3a_CVKGVcKw" type="_xaYtMMRUEdq3a_CVKGVcKw" association="_xak6cMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xak6c8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xak6dMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xak6dcRUEdq3a_CVKGVcKw" name="A_deployment_location" memberEnd="_xaYtT8RUEdq3a_CVKGVcKw _xaYtN8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xak6dsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xak6d8RUEdq3a_CVKGVcKw" general="_xXOrk8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xak6eMRUEdq3a_CVKGVcKw" name="A_nestedNode_node" memberEnd="_xaYtQsRUEdq3a_CVKGVcKw _xak6esRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xak6ecRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xak6esRUEdq3a_CVKGVcKw" type="_xaYtO8RUEdq3a_CVKGVcKw" redefinedProperty="_xR9xBMRUEdq3a_CVKGVcKw" association="_xak6eMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xak6e8RUEdq3a_CVKGVcKw" name="A_deployedElement_deploymentTarget" memberEnd="_xaYtU8RUEdq3a_CVKGVcKw _xak6fMRUEdq3a_CVKGVcKw" isDerived="true">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xak6fMRUEdq3a_CVKGVcKw" type="_xaYtTMRUEdq3a_CVKGVcKw" association="_xak6e8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xak6fcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xak6fsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xak6gcRUEdq3a_CVKGVcKw" name="InteractionUse">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6gsRUEdq3a_CVKGVcKw" annotatedElement="_xak6gcRUEdq3a_CVKGVcKw">
+ <body>An InteractionUse refers to an Interaction. The InteractionUse is a shorthand for copying the contents of the referred Interaction where the InteractionUse is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones.
+
+It is common to want to share portions of an interaction between several other interactions. An InteractionUse allows multiple interactions to reference an interaction that represents a common portion of their specification.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xak6g8RUEdq3a_CVKGVcKw" name="gates_match" constrainedElement="_xak6gcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6hMRUEdq3a_CVKGVcKw" annotatedElement="_xak6g8RUEdq3a_CVKGVcKw">
+ <body>Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xak6hcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xak6hsRUEdq3a_CVKGVcKw" name="all_lifelines" constrainedElement="_xak6gcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6h8RUEdq3a_CVKGVcKw" annotatedElement="_xak6hsRUEdq3a_CVKGVcKw">
+ <body>The InteractionUse must cover all Lifelines of the enclosing Interaction which appear within the referred Interaction.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xak6iMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xak6icRUEdq3a_CVKGVcKw" name="arguments_correspond_to_parameters" constrainedElement="_xak6gcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6isRUEdq3a_CVKGVcKw" annotatedElement="_xak6icRUEdq3a_CVKGVcKw">
+ <body>The arguments of the InteractionUse must correspond to parameters of the referred Interaction</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xak6i8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xak6jMRUEdq3a_CVKGVcKw" name="arguments_are_constants" constrainedElement="_xak6gcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6jcRUEdq3a_CVKGVcKw" annotatedElement="_xak6jMRUEdq3a_CVKGVcKw">
+ <body>The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xak6jsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xak6j8RUEdq3a_CVKGVcKw" general="_xYR0YMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xak6kMRUEdq3a_CVKGVcKw" name="refersTo" type="_xYLtx8RUEdq3a_CVKGVcKw" association="_xb0QlcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6kcRUEdq3a_CVKGVcKw" annotatedElement="_xak6kMRUEdq3a_CVKGVcKw">
+ <body>Refers to the Interaction that defines its meaning</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xak6ksRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xak6k8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xak6lMRUEdq3a_CVKGVcKw" name="actualGate" type="_xarBP8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xb0QnsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6lcRUEdq3a_CVKGVcKw" annotatedElement="_xak6lMRUEdq3a_CVKGVcKw">
+ <body>The actual gates of the InteractionUse</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xak6lsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xak6l8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xak6mMRUEdq3a_CVKGVcKw" name="argument" type="_xWXI0MRUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" association="_xb0QrsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6mcRUEdq3a_CVKGVcKw" annotatedElement="_xak6mMRUEdq3a_CVKGVcKw">
+ <body>The actual arguments of the Interaction</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xak6msRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xak6m8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xak6nMRUEdq3a_CVKGVcKw" name="PartDecomposition">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6ncRUEdq3a_CVKGVcKw" annotatedElement="_xak6nMRUEdq3a_CVKGVcKw">
+ <body>PartDecomposition is a description of the internal interactions of one Lifeline relative to an Interaction.
+
+A Lifeline has a class associated as the type of the ConnectableElement that the Lifeline represents. That class may have an internal structure and the PartDecomposition is an Interaction that describes the behavior of that internal structure relative to the Interaction where the decomposition is referenced.
+
+A PartDecomposition is a specialization of InteractionUse. It associates with the ConnectableElement that it decomposes.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xak6nsRUEdq3a_CVKGVcKw" name="parts_of_internal_structures" constrainedElement="_xak6nMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6n8RUEdq3a_CVKGVcKw" annotatedElement="_xak6nsRUEdq3a_CVKGVcKw">
+ <body>PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xak6oMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xak6ocRUEdq3a_CVKGVcKw" name="assume" constrainedElement="_xak6nMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6osRUEdq3a_CVKGVcKw" annotatedElement="_xak6ocRUEdq3a_CVKGVcKw">
+ <body>Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Within X there is a sequence of constructs along L (such constructs are CombinedFragments, InteractionUse and (plain) OccurrenceSpecifications). Then a corresponding sequence of constructs must appear within D, matched one-to-one in the same order.
+
+i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D
+ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D.
+iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xak6o8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xak6pMRUEdq3a_CVKGVcKw" name="commutativity_of_decomposition" constrainedElement="_xak6nMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xak6pcRUEdq3a_CVKGVcKw" annotatedElement="_xak6pMRUEdq3a_CVKGVcKw">
+ <body>Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an
+InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition)
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xak6psRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xak6p8RUEdq3a_CVKGVcKw" general="_xak6gcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xarBEMRUEdq3a_CVKGVcKw" name="InteractionOperand">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBEcRUEdq3a_CVKGVcKw" annotatedElement="_xarBEMRUEdq3a_CVKGVcKw">
+ <body>An InteractionOperand is contained in a CombinedFragment. An InteractionOperand represents one operand of the expression given by the enclosing CombinedFragment.
+
+An InteractionOperand is an InteractionFragment with an optional guard expression. An InteractionOperand may be
+guarded by a InteractionConstraint. Only InteractionOperands with a guard that evaluates to true at this point in the interaction will be considered for the production of the traces for the enclosing CombinedFragment.
+
+InteractionOperand contains an ordered set of InteractionFragments.
+
+In Sequence Diagrams these InteractionFragments are ordered according to their geometrical position vertically. The geometrical position of the InteractionFragment is given by the topmost vertical coordinate of its contained OccurrenceSpecifications or symbols.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBEsRUEdq3a_CVKGVcKw" name="guard_directly_prior" constrainedElement="_xarBEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBE8RUEdq3a_CVKGVcKw" annotatedElement="_xarBEsRUEdq3a_CVKGVcKw">
+ <body>The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBFMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBFcRUEdq3a_CVKGVcKw" name="guard_contain_references" constrainedElement="_xarBEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBFsRUEdq3a_CVKGVcKw" annotatedElement="_xarBFcRUEdq3a_CVKGVcKw">
+ <body>The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBF8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xarBGMRUEdq3a_CVKGVcKw" general="_xYR0YMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xarBGcRUEdq3a_CVKGVcKw" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xarBGsRUEdq3a_CVKGVcKw" name="guard" type="_xarBIsRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xbuKDMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBG8RUEdq3a_CVKGVcKw" annotatedElement="_xarBGsRUEdq3a_CVKGVcKw">
+ <body>Constraint of the operand.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xarBHMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xarBHcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xarBHsRUEdq3a_CVKGVcKw" name="fragment" type="_xYR0YMRUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xb0QssRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBH8RUEdq3a_CVKGVcKw" annotatedElement="_xarBHsRUEdq3a_CVKGVcKw">
+ <body>The fragments of the operand.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xarBIMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xarBIcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xarBIsRUEdq3a_CVKGVcKw" name="InteractionConstraint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBI8RUEdq3a_CVKGVcKw" annotatedElement="_xarBIsRUEdq3a_CVKGVcKw">
+ <body>An InteractionConstraint is a Boolean expression that guards an operand in a CombinedFragment. InteractionConstraint is a specialization of Constraint. Furthermore the InteractionConstraint contains two expressions designating the minimum and maximum number of times a loop CombinedFragment should execute.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBJMRUEdq3a_CVKGVcKw" name="dynamic_variables" constrainedElement="_xarBIsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBJcRUEdq3a_CVKGVcKw" annotatedElement="_xarBJMRUEdq3a_CVKGVcKw">
+ <body>The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBJsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBJ8RUEdq3a_CVKGVcKw" name="global_data" constrainedElement="_xarBIsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBKMRUEdq3a_CVKGVcKw" annotatedElement="_xarBJ8RUEdq3a_CVKGVcKw">
+ <body>The constraint may contain references to global data or write-once data.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBKcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBKsRUEdq3a_CVKGVcKw" name="minint_maxint" constrainedElement="_xarBIsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBK8RUEdq3a_CVKGVcKw" annotatedElement="_xarBKsRUEdq3a_CVKGVcKw">
+ <body>Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBLMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBLcRUEdq3a_CVKGVcKw" name="minint_non_negative" constrainedElement="_xarBIsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBLsRUEdq3a_CVKGVcKw" annotatedElement="_xarBLcRUEdq3a_CVKGVcKw">
+ <body>If minint is specified, then the expression must evaluate to a non-negative integer.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBL8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBMMRUEdq3a_CVKGVcKw" name="maxint_positive" constrainedElement="_xarBIsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBMcRUEdq3a_CVKGVcKw" annotatedElement="_xarBMMRUEdq3a_CVKGVcKw">
+ <body>If maxint is specified, then the expression must evaluate to a positive integer.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBMsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBM8RUEdq3a_CVKGVcKw" name="maxint_greater_equal_minint" constrainedElement="_xarBIsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBNMRUEdq3a_CVKGVcKw" annotatedElement="_xarBM8RUEdq3a_CVKGVcKw">
+ <body>If maxint is specified, then minint must be specified and the evaluation of maxint must be >= the evaluation of minint</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBNcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xarBNsRUEdq3a_CVKGVcKw" general="_xQDsosRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xarBN8RUEdq3a_CVKGVcKw" name="minint" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xb0QqMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBOMRUEdq3a_CVKGVcKw" annotatedElement="_xarBN8RUEdq3a_CVKGVcKw">
+ <body>The minimum number of iterations of a loop</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xarBOcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xarBOsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xarBO8RUEdq3a_CVKGVcKw" name="maxint" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xb0Qq8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBPMRUEdq3a_CVKGVcKw" annotatedElement="_xarBO8RUEdq3a_CVKGVcKw">
+ <body>The maximum number of iterations of a loop</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xarBPcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xarBPsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xarBP8RUEdq3a_CVKGVcKw" name="Gate">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBQMRUEdq3a_CVKGVcKw" annotatedElement="_xarBP8RUEdq3a_CVKGVcKw">
+ <body>A Gate is a connection point for relating a Message outside an InteractionFragment with a Message inside the InteractionFragment. Gate is a specialization of MessageEnd. Gates are connected through Messages. A Gate is actually a representative of an OccurrenceSpecification that is not in the same scope as the Gate. Gates play different roles: we have formal gates on Interactions, actual gates on InteractionUses, expression gates on CombinedFragments.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBQcRUEdq3a_CVKGVcKw" name="messages_actual_gate" constrainedElement="_xarBP8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBQsRUEdq3a_CVKGVcKw" annotatedElement="_xarBQcRUEdq3a_CVKGVcKw">
+ <body>The message leading to/from an actualGate of an InteractionUse must correspond to the message leading from/to the formalGate with the same name of the Interaction referenced by the InteractionUse.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBQ8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xarBRMRUEdq3a_CVKGVcKw" name="messages_combined_fragment" constrainedElement="_xarBP8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xarBRcRUEdq3a_CVKGVcKw" annotatedElement="_xarBRMRUEdq3a_CVKGVcKw">
+ <body>The message leading to/from an (expression) Gate within a CombinedFragment must correspond to the message leading from/to the CombinedFragment on its outside.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xarBRsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xarBR8RUEdq3a_CVKGVcKw" general="_xYX7LMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaxHsMRUEdq3a_CVKGVcKw" name="CombinedFragment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHscRUEdq3a_CVKGVcKw" annotatedElement="_xaxHsMRUEdq3a_CVKGVcKw">
+ <body>A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of CombinedFragments the user will be able to describe a number of traces in a compact and concise manner. CombinedFragment is a specialization of InteractionFragment.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxHssRUEdq3a_CVKGVcKw" name="opt_loop_break_neg" constrainedElement="_xaxHsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHs8RUEdq3a_CVKGVcKw" annotatedElement="_xaxHssRUEdq3a_CVKGVcKw">
+ <body>If the interactionOperator is opt, loop, break, or neg there must be exactly one operand</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxHtMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxHtcRUEdq3a_CVKGVcKw" name="minint_and_maxint" constrainedElement="_xaxHsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHtsRUEdq3a_CVKGVcKw" annotatedElement="_xaxHtcRUEdq3a_CVKGVcKw">
+ <body>The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxHt8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxHuMRUEdq3a_CVKGVcKw" name="break" constrainedElement="_xaxHsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHucRUEdq3a_CVKGVcKw" annotatedElement="_xaxHuMRUEdq3a_CVKGVcKw">
+ <body>If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxHusRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxHu8RUEdq3a_CVKGVcKw" name="consider_and_ignore" constrainedElement="_xaxHsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHvMRUEdq3a_CVKGVcKw" annotatedElement="_xaxHu8RUEdq3a_CVKGVcKw">
+ <body>The interaction operators 'consider' and 'ignore' can only be used for the CombineIgnoreFragment subtype of CombinedFragment</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxHvcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaxHvsRUEdq3a_CVKGVcKw" general="_xYR0YMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaxHv8RUEdq3a_CVKGVcKw" name="interactionOperator" type="_xbuJ8MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHwMRUEdq3a_CVKGVcKw" annotatedElement="_xaxHv8RUEdq3a_CVKGVcKw">
+ <body>Specifies the operation which defines the semantics of this combination of InteractionFragments.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:InstanceValue" xmi:id="_xaxHwcRUEdq3a_CVKGVcKw" type="_xbuJ8MRUEdq3a_CVKGVcKw" instance="_xbuJ8sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaxHwsRUEdq3a_CVKGVcKw" name="operand" type="_xarBEMRUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xb0QkMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHw8RUEdq3a_CVKGVcKw" annotatedElement="_xaxHwsRUEdq3a_CVKGVcKw">
+ <body>The set of operands of the combined fragment.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaxHxMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaxHxcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaxHxsRUEdq3a_CVKGVcKw" name="cfragmentGate" type="_xarBP8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xb0QmcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHx8RUEdq3a_CVKGVcKw" annotatedElement="_xaxHxsRUEdq3a_CVKGVcKw">
+ <body>Specifies the gates that form the interface between this CombinedFragment and its surroundings</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaxHyMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaxHycRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYLtx8RUEdq3a_CVKGVcKw" name="Interaction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLtyMRUEdq3a_CVKGVcKw" annotatedElement="_xYLtx8RUEdq3a_CVKGVcKw">
+ <body>An interaction is a unit of behavior that focuses on the observable exchange of information between ConnectableElements. An Interaction is a specialization of InteractionFragment and of Behavior.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYLtycRUEdq3a_CVKGVcKw" general="_xYR0YMRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYLtysRUEdq3a_CVKGVcKw" general="_TUPtYGveEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYLty8RUEdq3a_CVKGVcKw" name="lifeline" type="_xYLt28RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xYkIZ8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLtzMRUEdq3a_CVKGVcKw" annotatedElement="_xYLty8RUEdq3a_CVKGVcKw">
+ <body>Specifies the participants in this Interaction.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLtzcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLtzsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYLtz8RUEdq3a_CVKGVcKw" name="message" type="_gfgNwGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xYqO6cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt0MRUEdq3a_CVKGVcKw" annotatedElement="_xYLtz8RUEdq3a_CVKGVcKw">
+ <body>The Messages contained in this Interaction.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLt0cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLt0sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYLt08RUEdq3a_CVKGVcKw" name="fragment" type="_xYR0YMRUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xYqO_8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt1MRUEdq3a_CVKGVcKw" annotatedElement="_xYLt08RUEdq3a_CVKGVcKw">
+ <body>The ordered set of fragments in the Interaction.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLt1cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLt1sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYLt18RUEdq3a_CVKGVcKw" name="action" type="_xWXI0MRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xYwVkMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt2MRUEdq3a_CVKGVcKw" annotatedElement="_xYLt18RUEdq3a_CVKGVcKw">
+ <body>Actions owned by the Interaction.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLt2cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLt2sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaxHysRUEdq3a_CVKGVcKw" name="formalGate" type="_xarBP8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xb0Qo8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHy8RUEdq3a_CVKGVcKw" annotatedElement="_xaxHysRUEdq3a_CVKGVcKw">
+ <body>Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaxHzMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaxHzcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYLt28RUEdq3a_CVKGVcKw" name="Lifeline">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt3MRUEdq3a_CVKGVcKw" annotatedElement="_xYLt28RUEdq3a_CVKGVcKw">
+ <body>A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement. If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline. If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxHzsRUEdq3a_CVKGVcKw" annotatedElement="_xYLt28RUEdq3a_CVKGVcKw">
+ <body>A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement.
+
+If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline.
+
+If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYLt3cRUEdq3a_CVKGVcKw" name="interaction_uses_share_lifeline" constrainedElement="_xYLt28RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt3sRUEdq3a_CVKGVcKw" annotatedElement="_xYLt3cRUEdq3a_CVKGVcKw">
+ <body>If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYLt38RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYLt4MRUEdq3a_CVKGVcKw" name="selector_specified" constrainedElement="_xYLt28RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt4cRUEdq3a_CVKGVcKw" annotatedElement="_xYLt4MRUEdq3a_CVKGVcKw">
+ <body>The selector for a Lifeline must only be specified if the referenced Part is multivalued.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYLt4sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.selector->isEmpty() implies not self.represents.isMultivalued()) or&#xA;(not self.selector->isEmpty() implies self.represents.isMultivalued())&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xYLt48RUEdq3a_CVKGVcKw" name="same_classifier" constrainedElement="_xYLt28RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt5MRUEdq3a_CVKGVcKw" annotatedElement="_xYLt48RUEdq3a_CVKGVcKw">
+ <body>The classifier containing the referenced ConnectableElement must be the same classifier, or an ancestor, of the classifier that contains the interaction enclosing this lifeline.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xYLt5cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>if (represents->notEmpty()) then&#xA;(if selector->notEmpty() then represents.isMultivalued() else not represents.isMultivalued())&#xA;</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYLt5sRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYLt58RUEdq3a_CVKGVcKw" name="coveredBy" type="_xYR0YMRUEdq3a_CVKGVcKw" association="_xYkIVsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt6MRUEdq3a_CVKGVcKw" annotatedElement="_xYLt58RUEdq3a_CVKGVcKw">
+ <body>References the InteractionFragments in which this Lifeline takes part.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLt6cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLt6sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYLt68RUEdq3a_CVKGVcKw" name="represents" type="_xXg_dcRUEdq3a_CVKGVcKw" association="_xYkIYsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt7MRUEdq3a_CVKGVcKw" annotatedElement="_xYLt68RUEdq3a_CVKGVcKw">
+ <body>References the ConnectableElement within the classifier that contains the enclosing interaction.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLt7cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLt7sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYLt78RUEdq3a_CVKGVcKw" name="interaction" type="_xYLtx8RUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xYkIZ8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt8MRUEdq3a_CVKGVcKw" annotatedElement="_xYLt78RUEdq3a_CVKGVcKw">
+ <body>References the Interaction enclosing this Lifeline.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLt8cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLt8sRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYLt88RUEdq3a_CVKGVcKw" name="selector" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xYqO4MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYLt9MRUEdq3a_CVKGVcKw" annotatedElement="_xYLt88RUEdq3a_CVKGVcKw">
+ <body>If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYLt9cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYLt9sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaxHz8RUEdq3a_CVKGVcKw" name="decomposedAs" type="_xak6nMRUEdq3a_CVKGVcKw" association="_xbuKCsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH0MRUEdq3a_CVKGVcKw" annotatedElement="_xaxHz8RUEdq3a_CVKGVcKw">
+ <body>References the Interaction that represents the decomposition.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaxH0cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaxH0sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaxH08RUEdq3a_CVKGVcKw" name="Continuation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH1MRUEdq3a_CVKGVcKw" annotatedElement="_xaxH08RUEdq3a_CVKGVcKw">
+ <body>A Continuation is a syntactic way to define continuations of different branches of an Alternative CombinedFragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxH1cRUEdq3a_CVKGVcKw" name="same_name" constrainedElement="_xaxH08RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH1sRUEdq3a_CVKGVcKw" annotatedElement="_xaxH1cRUEdq3a_CVKGVcKw">
+ <body>Continuations with the same name may only cover the same set of Lifelines (within one Classifier).</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxH18RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxH2MRUEdq3a_CVKGVcKw" name="global" constrainedElement="_xaxH08RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH2cRUEdq3a_CVKGVcKw" annotatedElement="_xaxH2MRUEdq3a_CVKGVcKw">
+ <body>Continuations are always global in the enclosing InteractionFragment e.g. it always covers all Lifelines covered by the enclosing InteractionFragment.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxH2sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxH28RUEdq3a_CVKGVcKw" name="first_or_last_interaction_fragment" constrainedElement="_xaxH08RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH3MRUEdq3a_CVKGVcKw" annotatedElement="_xaxH28RUEdq3a_CVKGVcKw">
+ <body>Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxH3cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaxH3sRUEdq3a_CVKGVcKw" general="_xYR0YMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaxH38RUEdq3a_CVKGVcKw" name="setting" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH4MRUEdq3a_CVKGVcKw" annotatedElement="_xaxH38RUEdq3a_CVKGVcKw">
+ <body>True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xaxH4cRUEdq3a_CVKGVcKw" value="true"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xYR0YMRUEdq3a_CVKGVcKw" name="InteractionFragment" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0YcRUEdq3a_CVKGVcKw" annotatedElement="_xYR0YMRUEdq3a_CVKGVcKw">
+ <body>InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself. InteractionFragment is an abstract class and a specialization of NamedElement.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xYR0YsRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0Y8RUEdq3a_CVKGVcKw" name="covered" type="_xYLt28RUEdq3a_CVKGVcKw" association="_xYkIVsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0ZMRUEdq3a_CVKGVcKw" annotatedElement="_xYR0Y8RUEdq3a_CVKGVcKw">
+ <body>References the Lifelines that the InteractionFragment involves.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0ZcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0ZsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0Z8RUEdq3a_CVKGVcKw" name="generalOrdering" type="_xYX7AMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xYqO-sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0aMRUEdq3a_CVKGVcKw" annotatedElement="_xYR0Z8RUEdq3a_CVKGVcKw">
+ <body>The general ordering relationships contained in this fragment.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0acRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0asRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xYR0a8RUEdq3a_CVKGVcKw" name="enclosingInteraction" type="_xYLtx8RUEdq3a_CVKGVcKw" association="_xYqO_8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xYR0bMRUEdq3a_CVKGVcKw" annotatedElement="_xYR0a8RUEdq3a_CVKGVcKw">
+ <body>The Interaction enclosing this InteractionFragment.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xYR0bcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xYR0bsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaxH4sRUEdq3a_CVKGVcKw" name="enclosingOperand" type="_xarBEMRUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xb0QssRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH48RUEdq3a_CVKGVcKw" annotatedElement="_xaxH4sRUEdq3a_CVKGVcKw">
+ <body>The operand enclosing this InteractionFragment (they may nest recursively)</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaxH5MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaxH5cRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xaxH5sRUEdq3a_CVKGVcKw" name="ConsiderIgnoreFragment">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH58RUEdq3a_CVKGVcKw" annotatedElement="_xaxH5sRUEdq3a_CVKGVcKw">
+ <body>A ConsiderIgnoreFragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxH6MRUEdq3a_CVKGVcKw" name="consider_or_ignore" constrainedElement="_xaxH5sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH6cRUEdq3a_CVKGVcKw" annotatedElement="_xaxH6MRUEdq3a_CVKGVcKw">
+ <body>The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxH6sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(interactionOperator = #consider) or (interactionOperator = #ignore)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xaxH68RUEdq3a_CVKGVcKw" name="type" constrainedElement="_xaxH5sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH7MRUEdq3a_CVKGVcKw" annotatedElement="_xaxH68RUEdq3a_CVKGVcKw">
+ <body>The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal).</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xaxH7cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal))</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xaxH7sRUEdq3a_CVKGVcKw" general="_xaxHsMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xaxH78RUEdq3a_CVKGVcKw" name="message" type="_csVgUGvtEdqG6fBIPwe-mw" association="_xb0QtMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xaxH8MRUEdq3a_CVKGVcKw" annotatedElement="_xaxH78RUEdq3a_CVKGVcKw">
+ <body>The set of messages that apply to this fragment</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xaxH8cRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xaxH8sRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_xbuJ8MRUEdq3a_CVKGVcKw" name="InteractionOperatorKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuJ8cRUEdq3a_CVKGVcKw" annotatedElement="_xbuJ8MRUEdq3a_CVKGVcKw">
+ <body>InteractionOperatorKind is an enumeration designating the different kinds of operators of CombinedFragments. The InteractionOperand defines the type of operator of a CombinedFragment.</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuJ8sRUEdq3a_CVKGVcKw" name="seq">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuJ88RUEdq3a_CVKGVcKw" annotatedElement="_xbuJ8sRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between the behaviors of the operands.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuJ9MRUEdq3a_CVKGVcKw" name="alt">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuJ9cRUEdq3a_CVKGVcKw" annotatedElement="_xbuJ9MRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator alt designates that the CombinedFragment represents a choice of behavior. At most one of the operands will be chosen. The chosen operand must have an explicit or implicit guard expression that evaluates to true at this point in the interaction. An implicit true guard is implied if the operand has no guard.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuJ9sRUEdq3a_CVKGVcKw" name="opt">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuJ98RUEdq3a_CVKGVcKw" annotatedElement="_xbuJ9sRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator opt designates that the CombinedFragment represents a choice of behavior where either the (sole) operand happens or nothing happens. An option is semantically equivalent to an alternative CombinedFragment where there is one operand with non-empty content and the second operand is empty.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuJ-MRUEdq3a_CVKGVcKw" name="break">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuJ-cRUEdq3a_CVKGVcKw" annotatedElement="_xbuJ-MRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator break designates that the CombinedFragment represents a breaking scenario in the sense that the operand is a scenario that is performed instead of the remainder of the enclosing InteractionFragment. A break operator with a guard is chosen when the guard is true and the rest of the enclosing Interaction Fragment is ignored. When the guard of the break operand is false, the break operand is ignored and the rest of the enclosing InteractionFragment is chosen. The choice between a break operand without a guard and the rest of the enclosing InteractionFragment is done non-deterministically.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuJ-sRUEdq3a_CVKGVcKw" name="par">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuJ-8RUEdq3a_CVKGVcKw" annotatedElement="_xbuJ-sRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator par designates that the CombinedFragment represents a parallel merge between the behaviors of the operands. The OccurrenceSpecifications of the different operands can be interleaved in any way as long as the ordering imposed by each operand as such is preserved.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuJ_MRUEdq3a_CVKGVcKw" name="strict">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuJ_cRUEdq3a_CVKGVcKw" annotatedElement="_xbuJ_MRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator strict designates that the CombinedFragment represents a strict sequencing between the behaviors of the operands. The semantics of strict sequencing defines a strict ordering of the operands on the first level within the CombinedFragment with interactionOperator strict. Therefore OccurrenceSpecifications within contained CombinedFragment will not directly be compared with other OccurrenceSpecifications of the enclosing CombinedFragment.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuJ_sRUEdq3a_CVKGVcKw" name="loop">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuJ_8RUEdq3a_CVKGVcKw" annotatedElement="_xbuJ_sRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand will be repeated a number of times.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuKAMRUEdq3a_CVKGVcKw" name="critical">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuKAcRUEdq3a_CVKGVcKw" annotatedElement="_xbuKAMRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator critical designates that the CombinedFragment represents a critical region. A critical region means that the traces of the region cannot be interleaved by other OccurrenceSpecifications (on those Lifelines covered by the region). This means that the region is treated atomically by the enclosing fragment when determining the set of valid traces. Even though enclosing CombinedFragments may imply that some OccurrenceSpecifications may interleave into the region, such as e.g. with par-operator, this is prevented by defining a region.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuKAsRUEdq3a_CVKGVcKw" name="neg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuKA8RUEdq3a_CVKGVcKw" annotatedElement="_xbuKAsRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be invalid.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuKBMRUEdq3a_CVKGVcKw" name="assert">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuKBcRUEdq3a_CVKGVcKw" annotatedElement="_xbuKBMRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator assert designates that the CombinedFragment represents an assertion. The sequences of the operand of the assertion are the only valid continuations. All other continuations result in an invalid trace.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuKBsRUEdq3a_CVKGVcKw" name="ignore">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuKB8RUEdq3a_CVKGVcKw" annotatedElement="_xbuKBsRUEdq3a_CVKGVcKw">
+ <body>The interacionOperator ignore designates that there are some message types that are not shown within this combined fragment. These message types can be considered insignificant and are implicitly ignored if they appear in a corresponding execution. Alternatively, one can understand ignore to mean that the message types that are ignored can appear anywhere in the traces.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xbuKCMRUEdq3a_CVKGVcKw" name="consider">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xbuKCcRUEdq3a_CVKGVcKw" annotatedElement="_xbuKCMRUEdq3a_CVKGVcKw">
+ <body>The interactionOperator consider designates which messages should be considered within this combined fragment. This is equivalent to defining every other message to be ignored.</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xbuKCsRUEdq3a_CVKGVcKw" name="A_lifeline_decomposedAs" memberEnd="_xaxHz8RUEdq3a_CVKGVcKw _xbuKC8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xbuKC8RUEdq3a_CVKGVcKw" type="_xYLt28RUEdq3a_CVKGVcKw" association="_xbuKCsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xbuKDMRUEdq3a_CVKGVcKw" name="A_guard_interactionOperand" memberEnd="_xarBGsRUEdq3a_CVKGVcKw _xbuKDsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xbuKDcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xbuKDsRUEdq3a_CVKGVcKw" type="_xarBEMRUEdq3a_CVKGVcKw" association="_xbuKDMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xbuKD8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xbuKEMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0QkMRUEdq3a_CVKGVcKw" name="A_operand_combinedFragment" memberEnd="_xaxHwsRUEdq3a_CVKGVcKw _xb0QksRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb0QkcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0QksRUEdq3a_CVKGVcKw" type="_xaxHsMRUEdq3a_CVKGVcKw" association="_xb0QkMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb0Qk8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb0QlMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0QlcRUEdq3a_CVKGVcKw" name="A_refersTo_interactionUse" memberEnd="_xak6kMRUEdq3a_CVKGVcKw _xb0QlsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0QlsRUEdq3a_CVKGVcKw" type="_xak6gcRUEdq3a_CVKGVcKw" association="_xb0QlcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb0Ql8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb0QmMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0QmcRUEdq3a_CVKGVcKw" name="A_cfragmentGate_combinedFragment" memberEnd="_xaxHxsRUEdq3a_CVKGVcKw _xb0Qm8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb0QmsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0Qm8RUEdq3a_CVKGVcKw" type="_xaxHsMRUEdq3a_CVKGVcKw" association="_xb0QmcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb0QnMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb0QncRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0QnsRUEdq3a_CVKGVcKw" name="A_interactionUse_actualGate" memberEnd="_xak6lMRUEdq3a_CVKGVcKw _xb0QoMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb0Qn8RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0QoMRUEdq3a_CVKGVcKw" type="_xak6gcRUEdq3a_CVKGVcKw" association="_xb0QnsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb0QocRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb0QosRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0Qo8RUEdq3a_CVKGVcKw" name="A_formalGate_interaction" memberEnd="_xaxHysRUEdq3a_CVKGVcKw _xb0QpcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb0QpMRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0QpcRUEdq3a_CVKGVcKw" type="_xYLtx8RUEdq3a_CVKGVcKw" association="_xb0Qo8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb0QpsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb0Qp8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0QqMRUEdq3a_CVKGVcKw" name="A_minint_interactionConstraint" memberEnd="_xarBN8RUEdq3a_CVKGVcKw _xb0QqsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb0QqcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0QqsRUEdq3a_CVKGVcKw" type="_xarBIsRUEdq3a_CVKGVcKw" association="_xb0QqMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0Qq8RUEdq3a_CVKGVcKw" name="A_maxint_interactionConstraint" memberEnd="_xarBO8RUEdq3a_CVKGVcKw _xb0QrcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb0QrMRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0QrcRUEdq3a_CVKGVcKw" type="_xarBIsRUEdq3a_CVKGVcKw" association="_xb0Qq8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0QrsRUEdq3a_CVKGVcKw" name="A_argument_interactionUse" memberEnd="_xak6mMRUEdq3a_CVKGVcKw _xb0Qr8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0Qr8RUEdq3a_CVKGVcKw" type="_xak6gcRUEdq3a_CVKGVcKw" association="_xb0QrsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb0QsMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb0QscRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0QssRUEdq3a_CVKGVcKw" name="A_fragment_enclosingOperand" memberEnd="_xarBHsRUEdq3a_CVKGVcKw _xaxH4sRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb0Qs8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xb0QtMRUEdq3a_CVKGVcKw" name="A_message_considerIgnoreFragment" memberEnd="_xaxH78RUEdq3a_CVKGVcKw _xb0QtcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xb0QtcRUEdq3a_CVKGVcKw" type="_xaxH5sRUEdq3a_CVKGVcKw" association="_xb0QtMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb0QtsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb0Qt8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xb6XMMRUEdq3a_CVKGVcKw" name="CreateObjectAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XMcRUEdq3a_CVKGVcKw" annotatedElement="_xb6XMMRUEdq3a_CVKGVcKw">
+ <body>CreateObjectAction is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XMsRUEdq3a_CVKGVcKw" name="classifier_not_abstract" constrainedElement="_xb6XMMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XM8RUEdq3a_CVKGVcKw" annotatedElement="_xb6XMsRUEdq3a_CVKGVcKw">
+ <body>The classifier cannot be abstract.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XNMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>not (self.classifier.isAbstract = #true)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XNcRUEdq3a_CVKGVcKw" name="classifier_not_association_class" constrainedElement="_xb6XMMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XNsRUEdq3a_CVKGVcKw" annotatedElement="_xb6XNcRUEdq3a_CVKGVcKw">
+ <body>The classifier cannot be an association class</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XN8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>not self.classifier.oclIsKindOf(AssociationClass)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XOMRUEdq3a_CVKGVcKw" name="same_type" constrainedElement="_xb6XMMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XOcRUEdq3a_CVKGVcKw" annotatedElement="_xb6XOMRUEdq3a_CVKGVcKw">
+ <body>The type of the result pin must be the same as the classifier of the action.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XOsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.result.type = self.classifier</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XO8RUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xb6XMMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XPMRUEdq3a_CVKGVcKw" annotatedElement="_xb6XO8RUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the output pin is 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XPcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.result.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb6XPsRUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xb6XP8RUEdq3a_CVKGVcKw" name="classifier" type="_6UV2QGwJEdq7X4sGURiZYA" association="_xcSx-sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XQMRUEdq3a_CVKGVcKw" annotatedElement="_xb6XP8RUEdq3a_CVKGVcKw">
+ <body>Classifier to be instantiated.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb6XQcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb6XQsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xb6XQ8RUEdq3a_CVKGVcKw" name="result" type="_xWK7tcRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI08RUEdq3a_CVKGVcKw" association="_xcY4U8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XRMRUEdq3a_CVKGVcKw" annotatedElement="_xb6XQ8RUEdq3a_CVKGVcKw">
+ <body>Gives the output pin on which the result is put.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb6XRcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb6XRsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xb6XR8RUEdq3a_CVKGVcKw" name="DestroyObjectAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XSMRUEdq3a_CVKGVcKw" annotatedElement="_xb6XR8RUEdq3a_CVKGVcKw">
+ <body>This action destroys the object on its input pin at runtime. The object may be a link object, in which case the semantics of DestroyLinkAction also applies.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XScRUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xb6XR8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XSsRUEdq3a_CVKGVcKw" annotatedElement="_xb6XScRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the input pin is 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XS8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.target.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XTMRUEdq3a_CVKGVcKw" name="no_type" constrainedElement="_xb6XR8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XTcRUEdq3a_CVKGVcKw" annotatedElement="_xb6XTMRUEdq3a_CVKGVcKw">
+ <body>The input pin has no type.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XTsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.target.type->size() = 0</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xb6XT8RUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xb6XUMRUEdq3a_CVKGVcKw" name="isDestroyLinks" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XUcRUEdq3a_CVKGVcKw" annotatedElement="_xb6XUMRUEdq3a_CVKGVcKw">
+ <body>Specifies whether links in which the object participates are destroyed along with the object.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xb6XUsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xb6XU8RUEdq3a_CVKGVcKw" name="isDestroyOwnedObjects" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XVMRUEdq3a_CVKGVcKw" annotatedElement="_xb6XU8RUEdq3a_CVKGVcKw">
+ <body>Specifies whether objects owned by the object are destroyed along with the object.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xb6XVcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xb6XVsRUEdq3a_CVKGVcKw" name="target" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xcY4WMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XV8RUEdq3a_CVKGVcKw" annotatedElement="_xb6XVsRUEdq3a_CVKGVcKw">
+ <body>The input pin providing the object to be destroyed.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xb6XWMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xb6XWcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xb6XWsRUEdq3a_CVKGVcKw" name="TestIdentityAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XW8RUEdq3a_CVKGVcKw" annotatedElement="_xb6XWsRUEdq3a_CVKGVcKw">
+ <body>This action returns true if the two input values are the same identity, false if they are not.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XXMRUEdq3a_CVKGVcKw" name="no_type" constrainedElement="_xb6XWsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XXcRUEdq3a_CVKGVcKw" annotatedElement="_xb6XXMRUEdq3a_CVKGVcKw">
+ <body>The input pins have no type.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XXsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.first.type->size() = 0&#xA;and self.second.type->size() = 0&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XX8RUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xb6XWsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XYMRUEdq3a_CVKGVcKw" annotatedElement="_xb6XX8RUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the input pins is 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XYcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.first.multiplicity.is(1,1)&#xA;and self.second.multiplicity.is(1,1)&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xb6XYsRUEdq3a_CVKGVcKw" name="result_is_boolean" constrainedElement="_xb6XWsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xb6XY8RUEdq3a_CVKGVcKw" annotatedElement="_xb6XYsRUEdq3a_CVKGVcKw">
+ <body>The type of the result is Boolean.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xb6XZMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.result.type.oclIsTypeOf(Boolean)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcAd0MRUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcAd0cRUEdq3a_CVKGVcKw" name="first" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xcY4XcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd0sRUEdq3a_CVKGVcKw" annotatedElement="_xcAd0cRUEdq3a_CVKGVcKw">
+ <body>Gives the pin on which an object is placed.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcAd08RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcAd1MRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcAd1cRUEdq3a_CVKGVcKw" name="second" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xcY4YsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd1sRUEdq3a_CVKGVcKw" annotatedElement="_xcAd1cRUEdq3a_CVKGVcKw">
+ <body>Gives the pin on which an object is placed.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcAd18RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcAd2MRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcAd2cRUEdq3a_CVKGVcKw" name="result" type="_xWK7tcRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI08RUEdq3a_CVKGVcKw" association="_xcY4Z8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd2sRUEdq3a_CVKGVcKw" annotatedElement="_xcAd2cRUEdq3a_CVKGVcKw">
+ <body>Tells whether the two input objects are identical.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcAd28RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcAd3MRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcAd3cRUEdq3a_CVKGVcKw" name="ReadSelfAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd3sRUEdq3a_CVKGVcKw" annotatedElement="_xcAd3cRUEdq3a_CVKGVcKw">
+ <body>Every action is ultimately a part of some behavior, which is in turn optionally attached in some way to the specification of a classifier; for example as the body of a method or as part of a state machine. When the behavior executes, it does so in the context of some specific host instance of that classifier. This action produces this host instance, if any, on its output pin. The type of the output pin is the classifier to which the behavior is associated in the user model.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd38RUEdq3a_CVKGVcKw" name="contained" constrainedElement="_xcAd3cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd4MRUEdq3a_CVKGVcKw" annotatedElement="_xcAd38RUEdq3a_CVKGVcKw">
+ <body>The action must be contained in an behavior that has a host classifier.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAd4cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.context->size() = 1</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd4sRUEdq3a_CVKGVcKw" name="not_static" constrainedElement="_xcAd3cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd48RUEdq3a_CVKGVcKw" annotatedElement="_xcAd4sRUEdq3a_CVKGVcKw">
+ <body>If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAd5MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd5cRUEdq3a_CVKGVcKw" name="type" constrainedElement="_xcAd3cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd5sRUEdq3a_CVKGVcKw" annotatedElement="_xcAd5cRUEdq3a_CVKGVcKw">
+ <body>The type of the result output pin is the host classifier.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAd58RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.result.type = self.context</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd6MRUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xcAd3cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd6cRUEdq3a_CVKGVcKw" annotatedElement="_xcAd6MRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the result output pin is 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAd6sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.result.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcAd68RUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcAd7MRUEdq3a_CVKGVcKw" name="result" type="_xWK7tcRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI08RUEdq3a_CVKGVcKw" association="_xcY4bMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd7cRUEdq3a_CVKGVcKw" annotatedElement="_xcAd7MRUEdq3a_CVKGVcKw">
+ <body>Gives the output pin on which the hosting object is placed.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcAd7sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcAd78RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcAd8MRUEdq3a_CVKGVcKw" name="StructuralFeatureAction" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd8cRUEdq3a_CVKGVcKw" annotatedElement="_xcAd8MRUEdq3a_CVKGVcKw">
+ <body>This abstract action class statically specifies the structural feature being accessed. The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd8sRUEdq3a_CVKGVcKw" name="not_static" constrainedElement="_xcAd8MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd88RUEdq3a_CVKGVcKw" annotatedElement="_xcAd8sRUEdq3a_CVKGVcKw">
+ <body>The structural feature must not be static.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAd9MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.structuralFeature.isStatic = #false</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd9cRUEdq3a_CVKGVcKw" name="same_type" constrainedElement="_xcAd8MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd9sRUEdq3a_CVKGVcKw" annotatedElement="_xcAd9cRUEdq3a_CVKGVcKw">
+ <body>The type of the object input pin is the same as the classifier of the object passed on this pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAd98RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd-MRUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xcAd8MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd-cRUEdq3a_CVKGVcKw" annotatedElement="_xcAd-MRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the input pin must be 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAd-sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.object.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd-8RUEdq3a_CVKGVcKw" name="visibility" constrainedElement="_xcAd8MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd_MRUEdq3a_CVKGVcKw" annotatedElement="_xcAd-8RUEdq3a_CVKGVcKw">
+ <body>Visibility of structural feature must allow access to the object performing the action.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAd_cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>let host : Classifier = self.context in&#xA;self.structuralFeature.visibility = #public&#xA;or host = self.structuralFeature.featuringClassifier.type&#xA;or (self.structuralFeature.visibility = #protected and host.allSupertypes&#xA;->includes(self.structuralFeature.featuringClassifier.type)))&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAd_sRUEdq3a_CVKGVcKw" name="one_featuring_classifier" constrainedElement="_xcAd8MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAd_8RUEdq3a_CVKGVcKw" annotatedElement="_xcAd_sRUEdq3a_CVKGVcKw">
+ <body>A structural feature has exactly one featuringClassifier.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAeAMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.structuralFeature.featuringClassifier->size() = 1</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcAeAcRUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcAeAsRUEdq3a_CVKGVcKw" name="structuralFeature" type="_xPrSNMRUEdq3a_CVKGVcKw" association="_xcY4ccRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeA8RUEdq3a_CVKGVcKw" annotatedElement="_xcAeAsRUEdq3a_CVKGVcKw">
+ <body>Structural feature to be read.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcAeBMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcAeBcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcAeBsRUEdq3a_CVKGVcKw" name="object" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xcY4dcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeB8RUEdq3a_CVKGVcKw" annotatedElement="_xcAeBsRUEdq3a_CVKGVcKw">
+ <body>Gives the input pin from which the object whose structural feature is to be read or written is obtained.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcAeCMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcAeCcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcAeCsRUEdq3a_CVKGVcKw" name="ReadStructuralFeatureAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeC8RUEdq3a_CVKGVcKw" annotatedElement="_xcAeCsRUEdq3a_CVKGVcKw">
+ <body>This action reads the values of a structural feature, in order if the structural feature is ordered.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAeDMRUEdq3a_CVKGVcKw" name="type_and_ordering" constrainedElement="_xcAeCsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeDcRUEdq3a_CVKGVcKw" annotatedElement="_xcAeDMRUEdq3a_CVKGVcKw">
+ <body>The type and ordering of the result output pin are the same as the type and ordering of the structural feature.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAeDsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.result.type = self.structuralFeature.type&#xA;and self.result.ordering = self.structuralFeature.ordering&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAeD8RUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xcAeCsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeEMRUEdq3a_CVKGVcKw" annotatedElement="_xcAeD8RUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the structural feature must be compatible with the multiplicity of the output pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAeEcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcAeEsRUEdq3a_CVKGVcKw" general="_xcAd8MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcAeE8RUEdq3a_CVKGVcKw" name="result" type="_xWK7tcRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI08RUEdq3a_CVKGVcKw" association="_xce-8MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeFMRUEdq3a_CVKGVcKw" annotatedElement="_xcAeE8RUEdq3a_CVKGVcKw">
+ <body>Gives the output pin on which the result is put.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcAeFcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcAeFsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcAeF8RUEdq3a_CVKGVcKw" name="WriteStructuralFeatureAction" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeGMRUEdq3a_CVKGVcKw" annotatedElement="_xcAeF8RUEdq3a_CVKGVcKw">
+ <body>A write structural feature action operates on a structural feature of an object to modify its values. It has an input pin on which the value that will be added or removed is put. Other aspects of write structural feature actions are inherited from StructuralFeatureAction.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAeGcRUEdq3a_CVKGVcKw" name="input_pin" constrainedElement="_xcAeF8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeGsRUEdq3a_CVKGVcKw" annotatedElement="_xcAeGcRUEdq3a_CVKGVcKw">
+ <body>The type input pin is the same as the classifier of the structural feature.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAeG8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.value.type = self.structuralFeature.featuringClassifier</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcAeHMRUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xcAeF8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeHcRUEdq3a_CVKGVcKw" annotatedElement="_xcAeHMRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the input pin is 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcAeHsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.value.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcAeH8RUEdq3a_CVKGVcKw" general="_xcAd8MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcAeIMRUEdq3a_CVKGVcKw" name="value" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xce-9cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcAeIcRUEdq3a_CVKGVcKw" annotatedElement="_xcAeIMRUEdq3a_CVKGVcKw">
+ <body>Value to be added or removed from the structural feature.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcAeIsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcAeI8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcGkcMRUEdq3a_CVKGVcKw" name="ClearStructuralFeatureAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkccRUEdq3a_CVKGVcKw" annotatedElement="_xcGkcMRUEdq3a_CVKGVcKw">
+ <body>This action removes all values of a structural feature.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcGkcsRUEdq3a_CVKGVcKw" general="_xcAd8MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcGkc8RUEdq3a_CVKGVcKw" name="RemoveStructuralFeatureValueAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkdMRUEdq3a_CVKGVcKw" annotatedElement="_xcGkc8RUEdq3a_CVKGVcKw">
+ <body>The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1.
+
+Structural features are potentially multi-valued and ordered, and may support duplicates, so the action supports specification of removal points for new values. It also supports the removal of all duplicate values.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcGkdcRUEdq3a_CVKGVcKw" name="non_unique_removal" constrainedElement="_xcGkc8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkdsRUEdq3a_CVKGVcKw" annotatedElement="_xcGkdcRUEdq3a_CVKGVcKw">
+ <body>Actions removing a value from ordered nonunique structural features must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has no removeAt input pin.
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcGkd8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcGkeMRUEdq3a_CVKGVcKw" general="_xcAeF8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcGkecRUEdq3a_CVKGVcKw" name="isRemoveDuplicates" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkesRUEdq3a_CVKGVcKw" annotatedElement="_xcGkecRUEdq3a_CVKGVcKw">
+ <body>Specifies whether to remove duplicates of the value in nonunique structural features.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xcGke8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcGkfMRUEdq3a_CVKGVcKw" name="removeAt" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xclFnsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkfcRUEdq3a_CVKGVcKw" annotatedElement="_xcGkfMRUEdq3a_CVKGVcKw">
+ <body>Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcGkfsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcGkf8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcGkgMRUEdq3a_CVKGVcKw" name="AddStructuralFeatureValueAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkgcRUEdq3a_CVKGVcKw" annotatedElement="_xcGkgMRUEdq3a_CVKGVcKw">
+ <body>Structural Features are potentially multi-valued and ordered, so the action supports specification of insertion points for new values. It also supports the removal of existing values of the structural feature before the new value is added.
+
+The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcGkgsRUEdq3a_CVKGVcKw" name="unlimited_natural_and_multiplicity" constrainedElement="_xcGkgMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkg8RUEdq3a_CVKGVcKw" annotatedElement="_xcGkgsRUEdq3a_CVKGVcKw">
+ <body>Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcGkhMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>let insertAtPins : Collection = self.insertAt in&#xA;if self.structuralFeature.isOrdered = #false&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin= insertAt->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcGkhcRUEdq3a_CVKGVcKw" general="_xcAeF8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcGkhsRUEdq3a_CVKGVcKw" name="isReplaceAll" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkh8RUEdq3a_CVKGVcKw" annotatedElement="_xcGkhsRUEdq3a_CVKGVcKw">
+ <body>Specifies whether existing values of the structural feature of the object should be removed before adding the new value.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xcGkiMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcGkicRUEdq3a_CVKGVcKw" name="insertAt" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xce--sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkisRUEdq3a_CVKGVcKw" annotatedElement="_xcGkicRUEdq3a_CVKGVcKw">
+ <body>Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcGki8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcGkjMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcGkjcRUEdq3a_CVKGVcKw" name="LinkAction" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkjsRUEdq3a_CVKGVcKw" annotatedElement="_xcGkjcRUEdq3a_CVKGVcKw">
+ <body>A link action creates, destroys, or reads links, identifying a link by its end objects and qualifier values, if any.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcGkj8RUEdq3a_CVKGVcKw" name="same_association" constrainedElement="_xcGkjcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkkMRUEdq3a_CVKGVcKw" annotatedElement="_xcGkj8RUEdq3a_CVKGVcKw">
+ <body>The association ends of the link end data must all be from the same association and include all and only the association ends of that association.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcGkkcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.endData->collect(end) = self.association()->collect(connection))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcGkksRUEdq3a_CVKGVcKw" name="not_static" constrainedElement="_xcGkjcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkk8RUEdq3a_CVKGVcKw" annotatedElement="_xcGkksRUEdq3a_CVKGVcKw">
+ <body>The association ends of the link end data must not be static.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcGklMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcGklcRUEdq3a_CVKGVcKw" name="same_pins" constrainedElement="_xcGkjcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGklsRUEdq3a_CVKGVcKw" annotatedElement="_xcGklcRUEdq3a_CVKGVcKw">
+ <body>The input pins of the action are the same as the pins of the link end data and insertion pins.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcGkl8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.input->asSet() =&#xA;let ledpins : Set = self.endData->collect(value) in&#xA;if self.oclIsKindOf(LinkEndCreationData)&#xA;then ledpins->union(self.endData.oclAsType(LinkEndCreationData).insertAt)&#xA;else ledpins&#xA;</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcGkmMRUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcGkmcRUEdq3a_CVKGVcKw" name="endData" type="_xcGkpsRUEdq3a_CVKGVcKw" aggregation="composite" association="_xce-_8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkmsRUEdq3a_CVKGVcKw" annotatedElement="_xcGkmcRUEdq3a_CVKGVcKw">
+ <body>Data identifying one end of a link by the objects on its ends and qualifiers.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcGkm8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcGknMRUEdq3a_CVKGVcKw" value="2"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcGkncRUEdq3a_CVKGVcKw" name="inputValue" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xcrMMMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGknsRUEdq3a_CVKGVcKw" annotatedElement="_xcGkncRUEdq3a_CVKGVcKw">
+ <body>Pins taking end objects and qualifier values as input.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcGkn8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcGkoMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xcGkocRUEdq3a_CVKGVcKw" name="association" isQuery="true" bodyCondition="_xcGko8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcGkosRUEdq3a_CVKGVcKw" annotatedElement="_xcGkocRUEdq3a_CVKGVcKw">
+ <body>The association operates on LinkAction. It returns the association of the action.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcGko8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xcGkocRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcGkpMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = self.endData->asSequence().first().end.association</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xcGkpcRUEdq3a_CVKGVcKw" type="_AwvxoGwNEdq7X4sGURiZYA" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcMrEMRUEdq3a_CVKGVcKw" name="ReadLinkAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrEcRUEdq3a_CVKGVcKw" annotatedElement="_xcMrEMRUEdq3a_CVKGVcKw">
+ <body>This action navigates an association towards one end, which is the end that does not have an input pin to take its object (the “open” end). The objects put on the result output pin are the ones participating in the association at the open end, conforming to the specified qualifiers, in order if the end is ordered. The semantics is undefined for reading a link that violates the navigability or visibility of the open end.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrEsRUEdq3a_CVKGVcKw" name="one_open_end" constrainedElement="_xcMrEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrE8RUEdq3a_CVKGVcKw" annotatedElement="_xcMrEsRUEdq3a_CVKGVcKw">
+ <body>Exactly one link-end data specification (the 'open' end) must not have an end object input pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrFMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.endData->select(ed | ed.value->size() = 0)->size() = 1</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrFcRUEdq3a_CVKGVcKw" name="type_and_ordering" constrainedElement="_xcMrEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrFsRUEdq3a_CVKGVcKw" annotatedElement="_xcMrFcRUEdq3a_CVKGVcKw">
+ <body>The type and ordering of the result output pin are same as the type and ordering of the open association end.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrF8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;self.result.type = openend.type&#xA;and self.result.ordering = openend.ordering&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrGMRUEdq3a_CVKGVcKw" name="compatible_multiplicity" constrainedElement="_xcMrEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrGcRUEdq3a_CVKGVcKw" annotatedElement="_xcMrGMRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrGsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.multiplicity.compatibleWith(self.result.multiplicity)&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrG8RUEdq3a_CVKGVcKw" name="navigable_open_end" constrainedElement="_xcMrEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrHMRUEdq3a_CVKGVcKw" annotatedElement="_xcMrG8RUEdq3a_CVKGVcKw">
+ <body>The open end must be navigable.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrHcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.isNavigable()&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrHsRUEdq3a_CVKGVcKw" name="visibility" constrainedElement="_xcMrEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrH8RUEdq3a_CVKGVcKw" annotatedElement="_xcMrHsRUEdq3a_CVKGVcKw">
+ <body>Visibility of the open end must allow access to the object performing the action.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrIMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>let host : Classifier = self.context in&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.visibility = #public&#xA;or self.endData->exists(oed | not oed.end = openend&#xA;and (host = oed.end.participant&#xA;or (openend.visibility = #protected&#xA;and host.allSupertypes->includes(oed.end.participant))))&#xA;</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcMrIcRUEdq3a_CVKGVcKw" general="_xcGkjcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcMrIsRUEdq3a_CVKGVcKw" name="result" type="_xWK7tcRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI08RUEdq3a_CVKGVcKw" association="_xce_C8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrI8RUEdq3a_CVKGVcKw" annotatedElement="_xcMrIsRUEdq3a_CVKGVcKw">
+ <body>The pin on which are put the objects participating in the association at the end not specified by the inputs.
+</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcMrJMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcMrJcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcMrJsRUEdq3a_CVKGVcKw" name="LinkEndCreationData">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrJ8RUEdq3a_CVKGVcKw" annotatedElement="_xcMrJsRUEdq3a_CVKGVcKw">
+ <body>This class is required when using CreateLinkAction, to specify insertion points for ordered ends and for replacing all links at end. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the statically-specified end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class.
+
+Qualifier values are used in CompleteActions to identify links to create.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrKMRUEdq3a_CVKGVcKw" name="create_link_action" constrainedElement="_xcMrJsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrKcRUEdq3a_CVKGVcKw" annotatedElement="_xcMrKMRUEdq3a_CVKGVcKw">
+ <body>LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrKsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.LinkAction.oclIsKindOf(CreateLinkAction)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrK8RUEdq3a_CVKGVcKw" name="single_input_pin" constrainedElement="_xcMrJsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrLMRUEdq3a_CVKGVcKw" annotatedElement="_xcMrK8RUEdq3a_CVKGVcKw">
+ <body>Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrLcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>let insertAtPins : Collection = self.insertAt in&#xA;if self.end.ordering = #unordered&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin = insertAts->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcMrLsRUEdq3a_CVKGVcKw" general="_xcGkpsRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcMrL8RUEdq3a_CVKGVcKw" name="isReplaceAll" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrMMRUEdq3a_CVKGVcKw" annotatedElement="_xcMrL8RUEdq3a_CVKGVcKw">
+ <body>Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xcMrMcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcMrMsRUEdq3a_CVKGVcKw" name="insertAt" type="_xWK7uMRUEdq3a_CVKGVcKw" association="_xce_EMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrM8RUEdq3a_CVKGVcKw" annotatedElement="_xcMrMsRUEdq3a_CVKGVcKw">
+ <body>Specifies where the new link should be inserted for ordered association ends, or where an existing link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for association ends that are not ordered.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcMrNMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcMrNcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcMrNsRUEdq3a_CVKGVcKw" name="CreateLinkAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrN8RUEdq3a_CVKGVcKw" annotatedElement="_xcMrNsRUEdq3a_CVKGVcKw">
+ <body>This action can be used to create links and link objects. There is no return value in either case. This is so that no change of the action is required if the association is changed to an association class or vice versa. CreateLinkAction uses a specialization of LinkEndData called LinkEndCreationData, to support ordered associations. The insertion point is specified at runtime by an additional input pin, which is required for ordered association ends and omitted for unordered ends. The insertion point is a positive integer giving the position to insert the link, or unlimited, to insert at the end. Reinserting an existing end at a new position in an ordered unique structural feature moves the end to that position. CreateLinkAction also uses LinkEndCreationData to support the destruction of existing links of the association that connect any of the objects of the new link. When the link is created, this option is available on an end-by-end basis, and causes all links of the association emanating from the
+specified ends to be destroyed before the new link is created.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrOMRUEdq3a_CVKGVcKw" name="association_not_abstract" constrainedElement="_xcMrNsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrOcRUEdq3a_CVKGVcKw" annotatedElement="_xcMrOMRUEdq3a_CVKGVcKw">
+ <body>The association cannot be an abstract classifier.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrOsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.association().isAbstract = #false</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcMrO8RUEdq3a_CVKGVcKw" general="_xcMrR8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcMrPMRUEdq3a_CVKGVcKw" name="endData" type="_xcMrJsRUEdq3a_CVKGVcKw" aggregation="composite" redefinedProperty="_xcGkmcRUEdq3a_CVKGVcKw" association="_xce_FMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrPcRUEdq3a_CVKGVcKw" annotatedElement="_xcMrPMRUEdq3a_CVKGVcKw">
+ <body>Specifies ends of association and inputs.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcMrPsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcMrP8RUEdq3a_CVKGVcKw" value="2"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcMrQMRUEdq3a_CVKGVcKw" name="DestroyLinkAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrQcRUEdq3a_CVKGVcKw" annotatedElement="_xcMrQMRUEdq3a_CVKGVcKw">
+ <body>This action destroys a link or a link object. Link objects can also be destroyed with DestroyObjectAction. The link is specified in the same way as link creation, even for link objects. This allows actions to remain unchanged when their associations are transformed from ordinary ones to association classes and vice versa.
+
+DestroyLinkAction uses a specialization of LinkEndData, called LinkEndDestructionData, to support ordered nonunique associations. The position of the link to be destroyed is specified at runtime by an additional input pin, which is required for ordered nonunique association ends and omitted for other kinds of ends. This is a positive integer giving the position of the link to destroy.
+
+DestroyLinkAction also uses LinkEndDestructionData to support the destruction of duplicate links of the association on ends that are nonunique. This option is available on an end-by-end basis, and causes all duplicate links of the association emanating from the specified ends to be destroyed.
+</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcMrQsRUEdq3a_CVKGVcKw" general="_xcMrR8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcMrQ8RUEdq3a_CVKGVcKw" name="endData" type="_xcSx2cRUEdq3a_CVKGVcKw" aggregation="composite" redefinedProperty="_xcGkmcRUEdq3a_CVKGVcKw" association="_xclFp8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrRMRUEdq3a_CVKGVcKw" annotatedElement="_xcMrQ8RUEdq3a_CVKGVcKw">
+ <body>Specifies ends of association and inputs.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcMrRcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcMrRsRUEdq3a_CVKGVcKw" value="2"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcMrR8RUEdq3a_CVKGVcKw" name="WriteLinkAction" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrSMRUEdq3a_CVKGVcKw" annotatedElement="_xcMrR8RUEdq3a_CVKGVcKw">
+ <body>A write link action takes a complete identification of a link and creates or destroys it.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcMrScRUEdq3a_CVKGVcKw" name="allow_access" constrainedElement="_xcMrR8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcMrSsRUEdq3a_CVKGVcKw" annotatedElement="_xcMrScRUEdq3a_CVKGVcKw">
+ <body>The visibility of at least one end must allow access to the class using the action.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcMrS8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcMrTMRUEdq3a_CVKGVcKw" general="_xcGkjcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcSxsMRUEdq3a_CVKGVcKw" name="ClearAssociationAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxscRUEdq3a_CVKGVcKw" annotatedElement="_xcSxsMRUEdq3a_CVKGVcKw">
+ <body>This action destroys all links of an association that have a particular object at one end.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcSxssRUEdq3a_CVKGVcKw" name="same_type" constrainedElement="_xcSxsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxs8RUEdq3a_CVKGVcKw" annotatedElement="_xcSxssRUEdq3a_CVKGVcKw">
+ <body>The type of the input pin must be the same as the type of at least one of the association ends of the association.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcSxtMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.association->exists(end.type = self.object.type)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcSxtcRUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xcSxsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxtsRUEdq3a_CVKGVcKw" annotatedElement="_xcSxtcRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the input pin is 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcSxt8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.object.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcSxuMRUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSxucRUEdq3a_CVKGVcKw" name="object" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xce_GcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxusRUEdq3a_CVKGVcKw" annotatedElement="_xcSxucRUEdq3a_CVKGVcKw">
+ <body>Gives the input pin from which is obtained the object whose participation in the association is to be cleared.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcSxu8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcSxvMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSxvcRUEdq3a_CVKGVcKw" name="association" type="_AwvxoGwNEdq7X4sGURiZYA" association="_xclFkMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxvsRUEdq3a_CVKGVcKw" annotatedElement="_xcSxvcRUEdq3a_CVKGVcKw">
+ <body>Association to be cleared.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcSxv8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcSxwMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcSxwcRUEdq3a_CVKGVcKw" name="BroadcastSignalAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxwsRUEdq3a_CVKGVcKw" annotatedElement="_xcSxwcRUEdq3a_CVKGVcKw">
+ <body>BroadcastSignalAction is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcSxw8RUEdq3a_CVKGVcKw" name="number_and_order" constrainedElement="_xcSxwcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxxMRUEdq3a_CVKGVcKw" annotatedElement="_xcSxw8RUEdq3a_CVKGVcKw">
+ <body>The number and order of argument pins must be the same as the number and order of attributes in the signal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcSxxcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcSxxsRUEdq3a_CVKGVcKw" name="type_ordering_multiplicity" constrainedElement="_xcSxwcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxx8RUEdq3a_CVKGVcKw" annotatedElement="_xcSxxsRUEdq3a_CVKGVcKw">
+ <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcSxyMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcSxycRUEdq3a_CVKGVcKw" general="_xWK7u8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSxysRUEdq3a_CVKGVcKw" name="signal" type="_Pu3O0HL0EdqziYxiZo0YtA" association="_xclFmsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxy8RUEdq3a_CVKGVcKw" annotatedElement="_xcSxysRUEdq3a_CVKGVcKw">
+ <body>The specification of signal object transmitted to the target objects.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcSxzMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcSxzcRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcSxzsRUEdq3a_CVKGVcKw" name="SendObjectAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSxz8RUEdq3a_CVKGVcKw" annotatedElement="_xcSxzsRUEdq3a_CVKGVcKw">
+ <body>SendObjectAction is an action that transmits an object to the target object, where it may invoke behavior such as the firing of state machine transitions or the execution of an activity. The value of the object is available to the execution of invoked behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcSx0MRUEdq3a_CVKGVcKw" general="_xWK7u8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSx0cRUEdq3a_CVKGVcKw" name="target" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xclFlMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx0sRUEdq3a_CVKGVcKw" annotatedElement="_xcSx0cRUEdq3a_CVKGVcKw">
+ <body>The target object to which the object is sent.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcSx08RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcSx1MRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSx1cRUEdq3a_CVKGVcKw" name="request" type="_xWK7uMRUEdq3a_CVKGVcKw" aggregation="composite" redefinedProperty="_xWK7vsRUEdq3a_CVKGVcKw" association="_xclFl8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx1sRUEdq3a_CVKGVcKw" annotatedElement="_xcSx1cRUEdq3a_CVKGVcKw">
+ <body>The request object, which is transmitted to the target object. The object may be copied in transmission, so identity might not be preserved. (Specialized from InvocationActon.argument)</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcSx18RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcSx2MRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcSx2cRUEdq3a_CVKGVcKw" name="LinkEndDestructionData">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx2sRUEdq3a_CVKGVcKw" annotatedElement="_xcSx2cRUEdq3a_CVKGVcKw">
+ <body>This class is required when using DestroyLinkAction, to specify links to destroy for nonunique ordered ends. A link cannot be passed as a runtime value to or from an action.
+
+Qualifier values are used in CompleteActions to identify links to destroy.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcSx28RUEdq3a_CVKGVcKw" name="destroy_link_action" constrainedElement="_xcSx2cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx3MRUEdq3a_CVKGVcKw" annotatedElement="_xcSx28RUEdq3a_CVKGVcKw">
+ <body>LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcSx3cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcSx3sRUEdq3a_CVKGVcKw" name="unlimited_natural_and_multiplicity" constrainedElement="_xcSx2cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx38RUEdq3a_CVKGVcKw" annotatedElement="_xcSx3sRUEdq3a_CVKGVcKw">
+ <body>LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcSx4MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcSx4cRUEdq3a_CVKGVcKw" general="_xcGkpsRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSx4sRUEdq3a_CVKGVcKw" name="isDestroyDuplicates" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx48RUEdq3a_CVKGVcKw" annotatedElement="_xcSx4sRUEdq3a_CVKGVcKw">
+ <body>Specifies whether to destroy duplicates of the value in nonunique association ends.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xcSx5MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSx5cRUEdq3a_CVKGVcKw" name="destroyAt" type="_xWK7uMRUEdq3a_CVKGVcKw" association="_xclFo8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx5sRUEdq3a_CVKGVcKw" annotatedElement="_xcSx5cRUEdq3a_CVKGVcKw">
+ <body>Specifies the position of an existing link to be destroyed in ordered nonunique association ends. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcSx58RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcSx6MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcSx6cRUEdq3a_CVKGVcKw" name="ValueSpecificationAction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx6sRUEdq3a_CVKGVcKw" annotatedElement="_xcSx6cRUEdq3a_CVKGVcKw">
+ <body>The action returns the result of evaluating a value specification.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcSx68RUEdq3a_CVKGVcKw" name="compatible_type" constrainedElement="_xcSx6cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx7MRUEdq3a_CVKGVcKw" annotatedElement="_xcSx68RUEdq3a_CVKGVcKw">
+ <body>The type of value specification must be compatible with the type of the result pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcSx7cRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcSx7sRUEdq3a_CVKGVcKw" name="multiplicity" constrainedElement="_xcSx6cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx78RUEdq3a_CVKGVcKw" annotatedElement="_xcSx7sRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of the result pin is 1..1</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcSx8MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcSx8cRUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSx8sRUEdq3a_CVKGVcKw" name="value" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" association="_xclFrMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx88RUEdq3a_CVKGVcKw" annotatedElement="_xcSx8sRUEdq3a_CVKGVcKw">
+ <body>Value specification to be evaluated.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcSx9MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcSx9cRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcSx9sRUEdq3a_CVKGVcKw" name="result" type="_xWK7tcRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xWXI08RUEdq3a_CVKGVcKw" association="_xclFsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcSx98RUEdq3a_CVKGVcKw" annotatedElement="_xcSx9sRUEdq3a_CVKGVcKw">
+ <body>Gives the output pin on which the result is put.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcSx-MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcSx-cRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcSx-sRUEdq3a_CVKGVcKw" name="A_classifier_createObjectAction" memberEnd="_xb6XP8RUEdq3a_CVKGVcKw _xcY4UMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4UMRUEdq3a_CVKGVcKw" type="_xb6XMMRUEdq3a_CVKGVcKw" association="_xcSx-sRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4UcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4UsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcY4U8RUEdq3a_CVKGVcKw" name="A_result_createObjectAction" memberEnd="_xb6XQ8RUEdq3a_CVKGVcKw _xcY4VcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcY4VMRUEdq3a_CVKGVcKw" general="_xWXI-8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4VcRUEdq3a_CVKGVcKw" type="_xb6XMMRUEdq3a_CVKGVcKw" association="_xcY4U8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4VsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4V8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcY4WMRUEdq3a_CVKGVcKw" name="A_target_destroyObjectAction" memberEnd="_xb6XVsRUEdq3a_CVKGVcKw _xcY4WsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcY4WcRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4WsRUEdq3a_CVKGVcKw" type="_xb6XR8RUEdq3a_CVKGVcKw" association="_xcY4WMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4W8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4XMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcY4XcRUEdq3a_CVKGVcKw" name="A_first_testIdentityAction" memberEnd="_xcAd0cRUEdq3a_CVKGVcKw _xcY4X8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcY4XsRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4X8RUEdq3a_CVKGVcKw" type="_xb6XWsRUEdq3a_CVKGVcKw" association="_xcY4XcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4YMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4YcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcY4YsRUEdq3a_CVKGVcKw" name="A_second_testIdentityAction" memberEnd="_xcAd1cRUEdq3a_CVKGVcKw _xcY4ZMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcY4Y8RUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4ZMRUEdq3a_CVKGVcKw" type="_xb6XWsRUEdq3a_CVKGVcKw" association="_xcY4YsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4ZcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4ZsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcY4Z8RUEdq3a_CVKGVcKw" name="A_result_testIdentityAction" memberEnd="_xcAd2cRUEdq3a_CVKGVcKw _xcY4acRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcY4aMRUEdq3a_CVKGVcKw" general="_xWXI-8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4acRUEdq3a_CVKGVcKw" type="_xb6XWsRUEdq3a_CVKGVcKw" association="_xcY4Z8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4asRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4a8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcY4bMRUEdq3a_CVKGVcKw" name="A_result_readSelfAction" memberEnd="_xcAd7MRUEdq3a_CVKGVcKw _xcY4bsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcY4bcRUEdq3a_CVKGVcKw" general="_xWXI-8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4bsRUEdq3a_CVKGVcKw" type="_xcAd3cRUEdq3a_CVKGVcKw" association="_xcY4bMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4b8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4cMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcY4ccRUEdq3a_CVKGVcKw" name="A_structuralFeatureAction_structuralFeature" memberEnd="_xcAeAsRUEdq3a_CVKGVcKw _xcY4csRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4csRUEdq3a_CVKGVcKw" type="_xcAd8MRUEdq3a_CVKGVcKw" association="_xcY4ccRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4c8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4dMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcY4dcRUEdq3a_CVKGVcKw" name="A_object_structuralFeatureAction" memberEnd="_xcAeBsRUEdq3a_CVKGVcKw _xcY4d8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcY4dsRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcY4d8RUEdq3a_CVKGVcKw" type="_xcAd8MRUEdq3a_CVKGVcKw" association="_xcY4dcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcY4eMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcY4ecRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce-8MRUEdq3a_CVKGVcKw" name="A_result_readStructuralFeatureAction" memberEnd="_xcAeE8RUEdq3a_CVKGVcKw _xce-8sRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xce-8cRUEdq3a_CVKGVcKw" general="_xWXI-8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce-8sRUEdq3a_CVKGVcKw" type="_xcAeCsRUEdq3a_CVKGVcKw" association="_xce-8MRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce-88RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce-9MRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce-9cRUEdq3a_CVKGVcKw" name="A_value_writeStructuralFeatureAction" memberEnd="_xcAeIMRUEdq3a_CVKGVcKw _xce-98RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xce-9sRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce-98RUEdq3a_CVKGVcKw" type="_xcAeF8RUEdq3a_CVKGVcKw" association="_xce-9cRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce--MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce--cRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce--sRUEdq3a_CVKGVcKw" name="A_insertAt_addStructuralFeatureValueAction" memberEnd="_xcGkicRUEdq3a_CVKGVcKw _xce-_MRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xce--8RUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce-_MRUEdq3a_CVKGVcKw" type="_xcGkgMRUEdq3a_CVKGVcKw" association="_xce--sRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce-_cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce-_sRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce-_8RUEdq3a_CVKGVcKw" name="A_endData_linkAction" memberEnd="_xcGkmcRUEdq3a_CVKGVcKw _xce_AMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce_AMRUEdq3a_CVKGVcKw" type="_xcGkjcRUEdq3a_CVKGVcKw" association="_xce-_8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce_AcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce_AsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce_A8RUEdq3a_CVKGVcKw" name="A_value_linkEndData" memberEnd="_xcGkssRUEdq3a_CVKGVcKw _xce_BMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce_BMRUEdq3a_CVKGVcKw" type="_xcGkpsRUEdq3a_CVKGVcKw" association="_xce_A8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce_BcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce_BsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce_B8RUEdq3a_CVKGVcKw" name="A_end_linkEndData" memberEnd="_xcGktsRUEdq3a_CVKGVcKw _xce_CMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce_CMRUEdq3a_CVKGVcKw" type="_xcGkpsRUEdq3a_CVKGVcKw" association="_xce_B8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce_CcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce_CsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce_C8RUEdq3a_CVKGVcKw" name="A_result_readLinkAction" memberEnd="_xcMrIsRUEdq3a_CVKGVcKw _xce_DcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xce_DMRUEdq3a_CVKGVcKw" general="_xWXI-8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce_DcRUEdq3a_CVKGVcKw" type="_xcMrEMRUEdq3a_CVKGVcKw" association="_xce_C8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce_DsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce_D8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce_EMRUEdq3a_CVKGVcKw" name="A_insertAt_linkEndCreationData" memberEnd="_xcMrMsRUEdq3a_CVKGVcKw _xce_EcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce_EcRUEdq3a_CVKGVcKw" type="_xcMrJsRUEdq3a_CVKGVcKw" association="_xce_EMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce_EsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce_E8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce_FMRUEdq3a_CVKGVcKw" name="A_endData_createLinkAction" memberEnd="_xcMrPMRUEdq3a_CVKGVcKw _xce_FsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xce_FcRUEdq3a_CVKGVcKw" general="_xce-_8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce_FsRUEdq3a_CVKGVcKw" type="_xcMrNsRUEdq3a_CVKGVcKw" redefinedProperty="_xce_AMRUEdq3a_CVKGVcKw" association="_xce_FMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce_F8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce_GMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xce_GcRUEdq3a_CVKGVcKw" name="A_object_clearAssociationAction" memberEnd="_xcSxucRUEdq3a_CVKGVcKw _xce_G8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xce_GsRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xce_G8RUEdq3a_CVKGVcKw" type="_xcSxsMRUEdq3a_CVKGVcKw" association="_xce_GcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xce_HMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xce_HcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFkMRUEdq3a_CVKGVcKw" name="A_association_clearAssociationAction" memberEnd="_xcSxvcRUEdq3a_CVKGVcKw _xclFkcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFkcRUEdq3a_CVKGVcKw" type="_xcSxsMRUEdq3a_CVKGVcKw" association="_xclFkMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xclFksRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xclFk8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFlMRUEdq3a_CVKGVcKw" name="A_target_sendObjectAction" memberEnd="_xcSx0cRUEdq3a_CVKGVcKw _xclFlsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xclFlcRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFlsRUEdq3a_CVKGVcKw" type="_xcSxzsRUEdq3a_CVKGVcKw" redefinedProperty="_xWXJAsRUEdq3a_CVKGVcKw" association="_xclFlMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFl8RUEdq3a_CVKGVcKw" name="A_request_sendObjectAction" memberEnd="_xcSx1cRUEdq3a_CVKGVcKw _xclFmcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xclFmMRUEdq3a_CVKGVcKw" general="_xWXI-MRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFmcRUEdq3a_CVKGVcKw" type="_xcSxzsRUEdq3a_CVKGVcKw" redefinedProperty="_xWXI-sRUEdq3a_CVKGVcKw" association="_xclFl8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFmsRUEdq3a_CVKGVcKw" name="A_signal_broadcastSignalAction" memberEnd="_xcSxysRUEdq3a_CVKGVcKw _xclFm8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFm8RUEdq3a_CVKGVcKw" type="_xcSxwcRUEdq3a_CVKGVcKw" association="_xclFmsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xclFnMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xclFncRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFnsRUEdq3a_CVKGVcKw" name="A_removeAt_removeStructuralFeatureValueAction" memberEnd="_xcGkfMRUEdq3a_CVKGVcKw _xclFoMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xclFn8RUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFoMRUEdq3a_CVKGVcKw" type="_xcGkc8RUEdq3a_CVKGVcKw" association="_xclFnsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xclFocRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xclFosRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFo8RUEdq3a_CVKGVcKw" name="A_destroyAt_linkEndDestructionData" memberEnd="_xcSx5cRUEdq3a_CVKGVcKw _xclFpMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFpMRUEdq3a_CVKGVcKw" type="_xcSx2cRUEdq3a_CVKGVcKw" association="_xclFo8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xclFpcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xclFpsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFp8RUEdq3a_CVKGVcKw" name="A_endData_destroyLinkAction" memberEnd="_xcMrQ8RUEdq3a_CVKGVcKw _xclFqcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xclFqMRUEdq3a_CVKGVcKw" general="_xce-_8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFqcRUEdq3a_CVKGVcKw" type="_xcMrQMRUEdq3a_CVKGVcKw" redefinedProperty="_xce_AMRUEdq3a_CVKGVcKw" association="_xclFp8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xclFqsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xclFq8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFrMRUEdq3a_CVKGVcKw" name="A_value_valueSpecificationAction" memberEnd="_xcSx8sRUEdq3a_CVKGVcKw _xclFrcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFrcRUEdq3a_CVKGVcKw" type="_xcSx6cRUEdq3a_CVKGVcKw" association="_xclFrMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xclFrsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xclFr8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xclFsMRUEdq3a_CVKGVcKw" name="A_result_valueSpecificationAction" memberEnd="_xcSx9sRUEdq3a_CVKGVcKw _xclFssRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xclFscRUEdq3a_CVKGVcKw" general="_xWXI-8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xclFssRUEdq3a_CVKGVcKw" type="_xcSx6cRUEdq3a_CVKGVcKw" association="_xclFsMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xclFs8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xclFtMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xcrMMMRUEdq3a_CVKGVcKw" name="A_inputValue_linkAction" memberEnd="_xcGkncRUEdq3a_CVKGVcKw _xcrMMsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcrMMcRUEdq3a_CVKGVcKw" general="_xWXJAMRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xcrMMsRUEdq3a_CVKGVcKw" type="_xcGkjcRUEdq3a_CVKGVcKw" redefinedProperty="_xWXJAsRUEdq3a_CVKGVcKw" association="_xcrMMMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DylKEH4YEdq7cMP_l1l5Gg" name="TimeExpression">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcrMM8RUEdq3a_CVKGVcKw" annotatedElement="_DylKEH4YEdq7cMP_l1l5Gg">
+ <body>A TimeExpression defines a value specification that represents a time value.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcrMNMRUEdq3a_CVKGVcKw" general="_xPxYp8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcrMNcRUEdq3a_CVKGVcKw" name="expr" type="_xPxYp8RUEdq3a_CVKGVcKw" association="_xc9gJMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcrMNsRUEdq3a_CVKGVcKw" annotatedElement="_xcrMNcRUEdq3a_CVKGVcKw">
+ <body>The value of the time expression.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcrMN8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcrMOMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcrMOcRUEdq3a_CVKGVcKw" name="observation" type="_xc3ZdcRUEdq3a_CVKGVcKw" association="_xc9gIsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcrMOsRUEdq3a_CVKGVcKw" annotatedElement="_xcrMOcRUEdq3a_CVKGVcKw">
+ <body>Refers to the time and duration observations that are involved in expr.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcrMO8RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcrMPMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JdkW8H4YEdq7cMP_l1l5Gg" name="stringValue" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_JdkW8X4YEdq7cMP_l1l5Gg" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-Ixo8H4XEdq7cMP_l1l5Gg" name="Duration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcrMPcRUEdq3a_CVKGVcKw" annotatedElement="_-Ixo8H4XEdq7cMP_l1l5Gg">
+ <body>A duration defines a value specification that specifies the temporal distance between two time instants.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcrMPsRUEdq3a_CVKGVcKw" general="_xPxYp8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcrMP8RUEdq3a_CVKGVcKw" name="expr" type="_xPxYp8RUEdq3a_CVKGVcKw" association="_xc9gJsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcrMQMRUEdq3a_CVKGVcKw" annotatedElement="_xcrMP8RUEdq3a_CVKGVcKw">
+ <body>The value of the Duration.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcrMQcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcrMQsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcrMQ8RUEdq3a_CVKGVcKw" name="observation" type="_xc3ZdcRUEdq3a_CVKGVcKw" association="_xc9gIMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcrMRMRUEdq3a_CVKGVcKw" annotatedElement="_xcrMQ8RUEdq3a_CVKGVcKw">
+ <body>Refers to the time and duration observations that are involved in expr.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcrMRcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcrMRsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_I3a88H4YEdq7cMP_l1l5Gg" name="stringValue" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_I3a88X4YEdq7cMP_l1l5Gg" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcxS0MRUEdq3a_CVKGVcKw" name="DurationInterval">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS0cRUEdq3a_CVKGVcKw" annotatedElement="_xcxS0MRUEdq3a_CVKGVcKw">
+ <body>A DurationInterval defines the range between two Durations.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcxS0sRUEdq3a_CVKGVcKw" general="_xcxTAMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS08RUEdq3a_CVKGVcKw" name="min" type="_-Ixo8H4XEdq7cMP_l1l5Gg" redefinedProperty="_xcxTA8RUEdq3a_CVKGVcKw" association="_xc3ZkcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS1MRUEdq3a_CVKGVcKw" annotatedElement="_xcxS08RUEdq3a_CVKGVcKw">
+ <body>Refers to the Duration denoting the minimum value of the range.</body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS1cRUEdq3a_CVKGVcKw" name="max" type="_-Ixo8H4XEdq7cMP_l1l5Gg" redefinedProperty="_xcxTB8RUEdq3a_CVKGVcKw" association="_xc3ZlMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS1sRUEdq3a_CVKGVcKw" annotatedElement="_xcxS1cRUEdq3a_CVKGVcKw">
+ <body>Refers to the Duration denoting the maximum value of the range.</body>
+ </ownedComment>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcxS18RUEdq3a_CVKGVcKw" name="TimeConstraint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS2MRUEdq3a_CVKGVcKw" annotatedElement="_xcxS18RUEdq3a_CVKGVcKw">
+ <body>A TimeConstraint defines a Constraint that refers to a TimeInterval.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcxS2cRUEdq3a_CVKGVcKw" general="_xcxS-cRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS2sRUEdq3a_CVKGVcKw" name="specification" type="_xcxS48RUEdq3a_CVKGVcKw" aggregation="composite" redefinedProperty="_xcxS_MRUEdq3a_CVKGVcKw" association="_xc9gE8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS28RUEdq3a_CVKGVcKw" annotatedElement="_xcxS2sRUEdq3a_CVKGVcKw">
+ <body>A condition that must be true when evaluated in order for the constraint to be satisfied.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcxS3MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcxS3cRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS3sRUEdq3a_CVKGVcKw" name="firstEvent" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS38RUEdq3a_CVKGVcKw" annotatedElement="_xcxS3sRUEdq3a_CVKGVcKw">
+ <body>The value of firstEvent is related to constrainedElement. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters constrainedElement. If firstEvent is false, then the corresponding observation event is the last time instant the execution is within constrainedElement.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcxS4MRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcxS4cRUEdq3a_CVKGVcKw"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xcxS4sRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" value="true"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcxS48RUEdq3a_CVKGVcKw" name="TimeInterval">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS5MRUEdq3a_CVKGVcKw" annotatedElement="_xcxS48RUEdq3a_CVKGVcKw">
+ <body>A TimeInterval defines the range between two TimeExpressions.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcxS5cRUEdq3a_CVKGVcKw" general="_xcxTAMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS5sRUEdq3a_CVKGVcKw" name="max" type="_DylKEH4YEdq7cMP_l1l5Gg" redefinedProperty="_xcxTB8RUEdq3a_CVKGVcKw" association="_xc3Zl8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS58RUEdq3a_CVKGVcKw" annotatedElement="_xcxS5sRUEdq3a_CVKGVcKw">
+ <body>Refers to the TimeExpression denoting the maximum value of the range.</body>
+ </ownedComment>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS6MRUEdq3a_CVKGVcKw" name="min" type="_DylKEH4YEdq7cMP_l1l5Gg" redefinedProperty="_xcxTA8RUEdq3a_CVKGVcKw" association="_xc9gEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS6cRUEdq3a_CVKGVcKw" annotatedElement="_xcxS6MRUEdq3a_CVKGVcKw">
+ <body>Refers to the TimeExpression denoting the minimum value of the range.</body>
+ </ownedComment>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcxS6sRUEdq3a_CVKGVcKw" name="DurationConstraint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS68RUEdq3a_CVKGVcKw" annotatedElement="_xcxS6sRUEdq3a_CVKGVcKw">
+ <body>A DurationConstraint defines a Constraint that refers to a DurationInterval.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xcxS7MRUEdq3a_CVKGVcKw" name="first_event_multiplicity" constrainedElement="_xcxS6sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS7cRUEdq3a_CVKGVcKw" annotatedElement="_xcxS7MRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of firstEvent must be 2 if the multiplicity of constrainedElement is 2. Otherwise the multiplicity of firstEvent is 0.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xcxS7sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>if (constrainedElement->size() =2)&#xA; then (firstEvent->size() = 2) else (firstEvent->size() = 0)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcxS78RUEdq3a_CVKGVcKw" general="_xcxS-cRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS8MRUEdq3a_CVKGVcKw" name="specification" type="_xcxS0MRUEdq3a_CVKGVcKw" aggregation="composite" redefinedProperty="_xcxS_MRUEdq3a_CVKGVcKw" association="_xc9gFsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS8cRUEdq3a_CVKGVcKw" annotatedElement="_xcxS8MRUEdq3a_CVKGVcKw">
+ <body>The interval constraining the duration.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcxS8sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcxS88RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS9MRUEdq3a_CVKGVcKw" name="firstEvent" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS9cRUEdq3a_CVKGVcKw" annotatedElement="_xcxS9MRUEdq3a_CVKGVcKw">
+ <body>The value of firstEvent[i] is related to constrainedElement[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters constrainedElement[i]. If firstEvent[i] is false, then the corresponding observation event is the last time instant the execution is within constrainedElement[i]. Default value is true applied when constrainedElement[i] refers an element that represents only one time instant.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcxS9sRUEdq3a_CVKGVcKw" value="2"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcxS98RUEdq3a_CVKGVcKw"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xcxS-MRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" value="true"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcxS-cRUEdq3a_CVKGVcKw" name="IntervalConstraint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS-sRUEdq3a_CVKGVcKw" annotatedElement="_xcxS-cRUEdq3a_CVKGVcKw">
+ <body>A IntervalConstraint defines a Constraint that refers to an Interval.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcxS-8RUEdq3a_CVKGVcKw" general="_xQDsosRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxS_MRUEdq3a_CVKGVcKw" name="specification" type="_xcxTAMRUEdq3a_CVKGVcKw" aggregation="composite" redefinedProperty="_xQDsr8RUEdq3a_CVKGVcKw" association="_xc9gHcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxS_cRUEdq3a_CVKGVcKw" annotatedElement="_xcxS_MRUEdq3a_CVKGVcKw">
+ <body>A condition that must be true when evaluated in order for the constraint to be satisfied.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcxS_sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcxS_8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xcxTAMRUEdq3a_CVKGVcKw" name="Interval">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxTAcRUEdq3a_CVKGVcKw" annotatedElement="_xcxTAMRUEdq3a_CVKGVcKw">
+ <body>An Interval defines the range between two value specifications.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xcxTAsRUEdq3a_CVKGVcKw" general="_xPxYp8RUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxTA8RUEdq3a_CVKGVcKw" name="min" type="_xPxYp8RUEdq3a_CVKGVcKw" association="_xc9gGcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxTBMRUEdq3a_CVKGVcKw" annotatedElement="_xcxTA8RUEdq3a_CVKGVcKw">
+ <body>Refers to the ValueSpecification denoting the minimum value of the range.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcxTBcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcxTBsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xcxTB8RUEdq3a_CVKGVcKw" name="max" type="_xPxYp8RUEdq3a_CVKGVcKw" association="_xc9gG8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xcxTCMRUEdq3a_CVKGVcKw" annotatedElement="_xcxTB8RUEdq3a_CVKGVcKw">
+ <body>Refers to the ValueSpecification denoting the maximum value of the range.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xcxTCcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xcxTCsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xc3ZdcRUEdq3a_CVKGVcKw" name="Observation" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3ZdsRUEdq3a_CVKGVcKw" annotatedElement="_xc3ZdcRUEdq3a_CVKGVcKw">
+ <body>Observation is a superclass of TimeObservation and DurationObservation in order for TimeExpressions and Duration to refer to either in a simple way.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc3Zd8RUEdq3a_CVKGVcKw" general="_jKxnwGwLEdq7X4sGURiZYA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xc3ZeMRUEdq3a_CVKGVcKw" name="TimeObservation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3ZecRUEdq3a_CVKGVcKw" annotatedElement="_xc3ZeMRUEdq3a_CVKGVcKw">
+ <body>A time observation is a reference to a time instant during an execution. It points out the element in the model to observe and whether the observation is when this model element is entered or when it is exited.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc3ZesRUEdq3a_CVKGVcKw" general="_xc3ZdcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xc3Ze8RUEdq3a_CVKGVcKw" name="event" type="_csVgUGvtEdqG6fBIPwe-mw" association="_xc9gKMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3ZfMRUEdq3a_CVKGVcKw" annotatedElement="_xc3Ze8RUEdq3a_CVKGVcKw">
+ <body>The observation is determined by the entering or exiting of the event element during execution.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xc3ZfcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xc3ZfsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xc3Zf8RUEdq3a_CVKGVcKw" name="firstEvent" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3ZgMRUEdq3a_CVKGVcKw" annotatedElement="_xc3Zf8RUEdq3a_CVKGVcKw">
+ <body>The value of firstEvent is related to event. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters event. If firstEvent is false, then the corresponding observation event is the time instant the execution exits event.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xc3ZgcRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" value="true"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xc3ZgsRUEdq3a_CVKGVcKw" name="DurationObservation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3Zg8RUEdq3a_CVKGVcKw" annotatedElement="_xc3ZgsRUEdq3a_CVKGVcKw">
+ <body>A duration observation is a reference to a duration during an execution. It points out the element(s) in the model to observe and whether the observations are when this model element is entered or when it is exited.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xc3ZhMRUEdq3a_CVKGVcKw" name="first_event_multiplicity" constrainedElement="_xc3ZgsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3ZhcRUEdq3a_CVKGVcKw" annotatedElement="_xc3ZhMRUEdq3a_CVKGVcKw">
+ <body>The multiplicity of firstEvent must be 2 if the multiplicity of event is 2. Otherwise the multiplicity of firstEvent is 0.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xc3ZhsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>if (event->size() = 2)&#xA; then (firstEvent->size() = 2) else (firstEvent->size() = 0)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc3Zh8RUEdq3a_CVKGVcKw" general="_xc3ZdcRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xc3ZiMRUEdq3a_CVKGVcKw" name="event" type="_csVgUGvtEdqG6fBIPwe-mw" association="_xdDmsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3ZicRUEdq3a_CVKGVcKw" annotatedElement="_xc3ZiMRUEdq3a_CVKGVcKw">
+ <body>The observation is determined by the entering or exiting of the event element during execution.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xc3ZisRUEdq3a_CVKGVcKw" value="2"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xc3Zi8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xc3ZjMRUEdq3a_CVKGVcKw" name="firstEvent" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3ZjcRUEdq3a_CVKGVcKw" annotatedElement="_xc3ZjMRUEdq3a_CVKGVcKw">
+ <body>The value of firstEvent[i] is related to event[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters event[i]. If firstEvent[i] is false, then the corresponding observation event is the time instant the execution exits event[i]. Default value is true applied when event[i] refers an element that represents only one time instant.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xc3ZjsRUEdq3a_CVKGVcKw" value="2"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xc3Zj8RUEdq3a_CVKGVcKw"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xc3ZkMRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" value="true"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc3ZkcRUEdq3a_CVKGVcKw" name="A_min_durationInterval" memberEnd="_xcxS08RUEdq3a_CVKGVcKw _xc3Zk8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc3ZksRUEdq3a_CVKGVcKw" general="_xc9gGcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc3Zk8RUEdq3a_CVKGVcKw" type="_xcxS0MRUEdq3a_CVKGVcKw" redefinedProperty="_xc9gGsRUEdq3a_CVKGVcKw" association="_xc3ZkcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc3ZlMRUEdq3a_CVKGVcKw" name="A_max_durationInterval" memberEnd="_xcxS1cRUEdq3a_CVKGVcKw _xc3ZlsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc3ZlcRUEdq3a_CVKGVcKw" general="_xc9gG8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc3ZlsRUEdq3a_CVKGVcKw" type="_xcxS0MRUEdq3a_CVKGVcKw" redefinedProperty="_xc9gHMRUEdq3a_CVKGVcKw" association="_xc3ZlMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc3Zl8RUEdq3a_CVKGVcKw" name="A_max_timeInterval" memberEnd="_xcxS5sRUEdq3a_CVKGVcKw _xc3ZmcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc3ZmMRUEdq3a_CVKGVcKw" general="_xc9gG8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc3ZmcRUEdq3a_CVKGVcKw" type="_xcxS48RUEdq3a_CVKGVcKw" redefinedProperty="_xc9gHMRUEdq3a_CVKGVcKw" association="_xc3Zl8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gEMRUEdq3a_CVKGVcKw" name="A_min_timeInterval" memberEnd="_xcxS6MRUEdq3a_CVKGVcKw _xc9gEsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc9gEcRUEdq3a_CVKGVcKw" general="_xc9gGcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gEsRUEdq3a_CVKGVcKw" type="_xcxS48RUEdq3a_CVKGVcKw" redefinedProperty="_xc9gGsRUEdq3a_CVKGVcKw" association="_xc9gEMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gE8RUEdq3a_CVKGVcKw" name="A_specification_timeConstraint" memberEnd="_xcxS2sRUEdq3a_CVKGVcKw _xc9gFcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc9gFMRUEdq3a_CVKGVcKw" general="_xc9gHcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gFcRUEdq3a_CVKGVcKw" type="_xcxS18RUEdq3a_CVKGVcKw" redefinedProperty="_xc9gH8RUEdq3a_CVKGVcKw" association="_xc9gE8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gFsRUEdq3a_CVKGVcKw" name="A_specification_durationConstraint" memberEnd="_xcxS8MRUEdq3a_CVKGVcKw _xc9gGMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc9gF8RUEdq3a_CVKGVcKw" general="_xc9gHcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gGMRUEdq3a_CVKGVcKw" type="_xcxS6sRUEdq3a_CVKGVcKw" redefinedProperty="_xc9gH8RUEdq3a_CVKGVcKw" association="_xc9gFsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gGcRUEdq3a_CVKGVcKw" name="A_min_interval" memberEnd="_xcxTA8RUEdq3a_CVKGVcKw _xc9gGsRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gGsRUEdq3a_CVKGVcKw" type="_xcxTAMRUEdq3a_CVKGVcKw" association="_xc9gGcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gG8RUEdq3a_CVKGVcKw" name="A_max_interval" memberEnd="_xcxTB8RUEdq3a_CVKGVcKw _xc9gHMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gHMRUEdq3a_CVKGVcKw" type="_xcxTAMRUEdq3a_CVKGVcKw" association="_xc9gG8RUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gHcRUEdq3a_CVKGVcKw" name="A_specification_intervalConstraint" memberEnd="_xcxS_MRUEdq3a_CVKGVcKw _xc9gH8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xc9gHsRUEdq3a_CVKGVcKw" general="_xR3qicRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gH8RUEdq3a_CVKGVcKw" type="_xcxS-cRUEdq3a_CVKGVcKw" association="_xc9gHcRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gIMRUEdq3a_CVKGVcKw" name="A_observation_duration" memberEnd="_xcrMQ8RUEdq3a_CVKGVcKw _xc9gIcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gIcRUEdq3a_CVKGVcKw" type="_-Ixo8H4XEdq7cMP_l1l5Gg" association="_xc9gIMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gIsRUEdq3a_CVKGVcKw" name="A_observation_timeExpression" memberEnd="_xcrMOcRUEdq3a_CVKGVcKw _xc9gI8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gI8RUEdq3a_CVKGVcKw" type="_DylKEH4YEdq7cMP_l1l5Gg" association="_xc9gIsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xZbD5sRUEdq3a_CVKGVcKw" name="A_when_timeEvent" memberEnd="_xZbD6MRUEdq3a_CVKGVcKw _xZO2x8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZbD58RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xZbD6MRUEdq3a_CVKGVcKw" visibility="public" type="_xZO2wcRUEdq3a_CVKGVcKw" association="_xZbD5sRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gJMRUEdq3a_CVKGVcKw" name="A_expr_timeExpression" memberEnd="_xcrMNcRUEdq3a_CVKGVcKw _xc9gJcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gJcRUEdq3a_CVKGVcKw" type="_DylKEH4YEdq7cMP_l1l5Gg" association="_xc9gJMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gJsRUEdq3a_CVKGVcKw" name="A_expr_duration" memberEnd="_xcrMP8RUEdq3a_CVKGVcKw _xc9gJ8RUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gJ8RUEdq3a_CVKGVcKw" type="_-Ixo8H4XEdq7cMP_l1l5Gg" association="_xc9gJsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xc9gKMRUEdq3a_CVKGVcKw" name="A_event_timeObservation" memberEnd="_xc3Ze8RUEdq3a_CVKGVcKw _xc9gKcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xc9gKcRUEdq3a_CVKGVcKw" type="_xc3ZeMRUEdq3a_CVKGVcKw" association="_xc9gKMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xdDmsMRUEdq3a_CVKGVcKw" name="A_event_durationObservation" memberEnd="_xc3ZiMRUEdq3a_CVKGVcKw _xdDmscRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xdDmscRUEdq3a_CVKGVcKw" type="_xc3ZgsRUEdq3a_CVKGVcKw" association="_xdDmsMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xWK7u8RUEdq3a_CVKGVcKw" name="InvocationAction" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7vMRUEdq3a_CVKGVcKw" annotatedElement="_xWK7u8RUEdq3a_CVKGVcKw">
+ <body>Invocation is an abstract class for the various actions that invoke behavior.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdDmssRUEdq3a_CVKGVcKw" annotatedElement="_xWK7u8RUEdq3a_CVKGVcKw">
+ <body>In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdDms8RUEdq3a_CVKGVcKw" name="on_port_receiver" constrainedElement="_xWK7u8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdDmtMRUEdq3a_CVKGVcKw" annotatedElement="_xdDms8RUEdq3a_CVKGVcKw">
+ <body>The onPort must be a port on the receiver object.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdDmtcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xWK7vcRUEdq3a_CVKGVcKw" general="_xWXI0MRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xWK7vsRUEdq3a_CVKGVcKw" name="argument" type="_xWK7uMRUEdq3a_CVKGVcKw" isOrdered="true" aggregation="composite" subsettedProperty="_xWXI18RUEdq3a_CVKGVcKw" association="_xWXI-MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xWK7v8RUEdq3a_CVKGVcKw" annotatedElement="_xWK7vsRUEdq3a_CVKGVcKw">
+ <body>Specification of the ordered set of argument values that appears during execution.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xWRCMMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xWRCMcRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdDmtsRUEdq3a_CVKGVcKw" name="onPort" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_xdDmw8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdDmt8RUEdq3a_CVKGVcKw" annotatedElement="_xdDmtsRUEdq3a_CVKGVcKw">
+ <body>A optional port of the receiver object on which the behavioral feature is invoked.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdDmuMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdDmucRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZO2oMRUEdq3a_CVKGVcKw" name="Trigger">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2ocRUEdq3a_CVKGVcKw" annotatedElement="_xZO2oMRUEdq3a_CVKGVcKw">
+ <body>A trigger specifies an event that may cause the execution of an associated behavior. An event is often ultimately caused by the execution of an action, but need not be.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdDmusRUEdq3a_CVKGVcKw" annotatedElement="_xZO2oMRUEdq3a_CVKGVcKw">
+ <body>A trigger specification may be qualified by the port on which the event occurred.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZO2osRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZO2o8RUEdq3a_CVKGVcKw" name="event" type="_xZU9RMRUEdq3a_CVKGVcKw" association="_xZbD-cRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2pMRUEdq3a_CVKGVcKw" annotatedElement="_xZO2o8RUEdq3a_CVKGVcKw">
+ <body>The event that causes the trigger.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xZO2pcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xZO2psRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdDmu8RUEdq3a_CVKGVcKw" name="port" type="_ZAuvEGveEdq4DLWZOhbdEA" association="_xdDmv8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdDmvMRUEdq3a_CVKGVcKw" annotatedElement="_xdDmu8RUEdq3a_CVKGVcKw">
+ <body>A optional port of the receiver object on which the behavioral feature is invoked.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdDmvcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdDmvsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xdDmv8RUEdq3a_CVKGVcKw" name="A_port_trigger" memberEnd="_xdDmu8RUEdq3a_CVKGVcKw _xdDmwMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xdDmwMRUEdq3a_CVKGVcKw" type="_xZO2oMRUEdq3a_CVKGVcKw" association="_xdDmv8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdDmwcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdDmwsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xdDmw8RUEdq3a_CVKGVcKw" name="A_onPort_invocationAction" memberEnd="_xdDmtsRUEdq3a_CVKGVcKw _xdDmxMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xdDmxMRUEdq3a_CVKGVcKw" type="_xWK7u8RUEdq3a_CVKGVcKw" association="_xdDmw8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdDmxcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdDmxsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xdJtUMRUEdq3a_CVKGVcKw" name="StateMachine">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtUcRUEdq3a_CVKGVcKw" annotatedElement="_xdJtUMRUEdq3a_CVKGVcKw">
+ <body>A state machine owns one or more regions, which in turn own vertices and transitions.
+The behaviored classifier context owning a state machine defines which signal and call triggers are defined for the state machine, and which attributes and operations are available in activities of the state machine. Signal triggers and call triggers for the state machine are defined according to the receptions and operations of this classifier.
+
+As a kind of behavior, a state machine may have an associated behavioral feature (specification) and be the method of this behavioral feature. In this case the state machine specifies the behavior of this behavioral feature. The parameters of the state machine in this case match the parameters of the behavioral feature and provide the means for accessing (within the state machine) the behavioral feature parameters.
+
+A state machine without a context classifier may use triggers that are independent of receptions or operations of a classifier, i.e. either just signal triggers or call triggers based upon operation template parameters of the (parameterized) statemachine.
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdJtUsRUEdq3a_CVKGVcKw" name="classifier_context" constrainedElement="_xdJtUMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtU8RUEdq3a_CVKGVcKw" annotatedElement="_xdJtUsRUEdq3a_CVKGVcKw">
+ <body>The classifier context of a state machine cannot be an interface.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdJtVMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>context->notEmpty() implies not context.oclIsKindOf(Interface)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdJtVcRUEdq3a_CVKGVcKw" name="context_classifier" constrainedElement="_xdJtUMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtVsRUEdq3a_CVKGVcKw" annotatedElement="_xdJtVcRUEdq3a_CVKGVcKw">
+ <body>The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdJtV8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdJtWMRUEdq3a_CVKGVcKw" name="connection_points" constrainedElement="_xdJtUMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtWcRUEdq3a_CVKGVcKw" annotatedElement="_xdJtWMRUEdq3a_CVKGVcKw">
+ <body>The connection points of a state machine are pseudostates of kind entry point or exit point.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdJtWsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdJtW8RUEdq3a_CVKGVcKw" name="method" constrainedElement="_xdJtUMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtXMRUEdq3a_CVKGVcKw" annotatedElement="_xdJtW8RUEdq3a_CVKGVcKw">
+ <body>A state machine as the method for a behavioral feature cannot have entry/exit connection points.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdJtXcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>specification->notEmpty() implies connectionPoint->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdJtXsRUEdq3a_CVKGVcKw" general="_TUPtYGveEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdJtX8RUEdq3a_CVKGVcKw" name="region" type="_xdiH5cRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xduVJMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtYMRUEdq3a_CVKGVcKw" annotatedElement="_xdJtX8RUEdq3a_CVKGVcKw">
+ <body>The regions owned directly by the state machine.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdJtYcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdJtYsRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdJtY8RUEdq3a_CVKGVcKw" name="connectionPoint" type="_xdcBRMRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLg8RUEdq3a_CVKGVcKw" association="_xduVJsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtZMRUEdq3a_CVKGVcKw" annotatedElement="_xdJtY8RUEdq3a_CVKGVcKw">
+ <body>The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdJtZcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdJtZsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdJtZ8RUEdq3a_CVKGVcKw" name="extendedStateMachine" type="_xdJtUMRUEdq3a_CVKGVcKw" subsettedProperty="_xPrSHsRUEdq3a_CVKGVcKw" association="_xduVL8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtaMRUEdq3a_CVKGVcKw" annotatedElement="_xdJtZ8RUEdq3a_CVKGVcKw">
+ <body>The state machines of which this is an extension.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdJtacRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdJtasRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdJta8RUEdq3a_CVKGVcKw" name="submachineState" type="_xdPz8MRUEdq3a_CVKGVcKw" association="_xdoOmsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtbMRUEdq3a_CVKGVcKw" annotatedElement="_xdJta8RUEdq3a_CVKGVcKw">
+ <body>References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdJtbcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdJtbsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xdJtb8RUEdq3a_CVKGVcKw" name="LCA" isQuery="true" bodyCondition="_xdJtcsRUEdq3a_CVKGVcKw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xdJtcMRUEdq3a_CVKGVcKw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtccRUEdq3a_CVKGVcKw" annotatedElement="_xdJtb8RUEdq3a_CVKGVcKw">
+ <body>The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdJtcsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xdJtb8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdJtc8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJtdMRUEdq3a_CVKGVcKw" type="_ZiwkoGwLEdq7X4sGURiZYA" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJtdcRUEdq3a_CVKGVcKw" name="s1" type="_xdPz8MRUEdq3a_CVKGVcKw"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJtdsRUEdq3a_CVKGVcKw" name="s2" type="_xdPz8MRUEdq3a_CVKGVcKw"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xdJtd8RUEdq3a_CVKGVcKw" name="ancestor" isQuery="true" bodyCondition="_xdJtecRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJteMRUEdq3a_CVKGVcKw" annotatedElement="_xdJtd8RUEdq3a_CVKGVcKw">
+ <body>The query ancestor(s1, s2) checks whether s2 is an ancestor state of state s1. context StateMachine::ancestor (s1 : State, s2 : State) : Boolean
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdJtecRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xdJtd8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdJtesRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = if (s2 = s1) then&#xA;true&#xA;else if (s1.container->isEmpty) then&#xA;true&#xA;else if (s2.container->isEmpty) then&#xA;false&#xA;else (ancestor (s1, s2.container))</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJte8RUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJtfMRUEdq3a_CVKGVcKw" name="s1" type="_xdPz8MRUEdq3a_CVKGVcKw"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJtfcRUEdq3a_CVKGVcKw" name="s2" type="_xdPz8MRUEdq3a_CVKGVcKw"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xdJtfsRUEdq3a_CVKGVcKw" name="isRedefinitionContextValid" isQuery="true" redefinedOperation="_xPrSKMRUEdq3a_CVKGVcKw" bodyCondition="_xdJtgMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJtf8RUEdq3a_CVKGVcKw" annotatedElement="_xdJtfsRUEdq3a_CVKGVcKw">
+ <body>The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdJtgMRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xdJtfsRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdJtgcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJtgsRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJtg8RUEdq3a_CVKGVcKw" name="redefined" type="_xdJtUMRUEdq3a_CVKGVcKw" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xdJthMRUEdq3a_CVKGVcKw" name="isConsistentWith" isQuery="true" redefinedOperation="_xPrSIsRUEdq3a_CVKGVcKw" bodyCondition="_xdJth8RUEdq3a_CVKGVcKw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xdJthcRUEdq3a_CVKGVcKw" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdJthsRUEdq3a_CVKGVcKw" annotatedElement="_xdJthMRUEdq3a_CVKGVcKw">
+ <body>The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdJth8RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xdJthMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdJtiMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = true</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJticRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdJtisRUEdq3a_CVKGVcKw" name="redefinee" type="_xPrSEcRUEdq3a_CVKGVcKw"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xdV6kMRUEdq3a_CVKGVcKw" name="Transition">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6kcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6kMRUEdq3a_CVKGVcKw">
+ <body>A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV6ksRUEdq3a_CVKGVcKw" name="fork_segment_guards" constrainedElement="_xdV6kMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6k8RUEdq3a_CVKGVcKw" annotatedElement="_xdV6ksRUEdq3a_CVKGVcKw">
+ <body>A fork segment must not have guards or triggers.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV6lMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV6lcRUEdq3a_CVKGVcKw" name="join_segment_guards" constrainedElement="_xdV6kMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6lsRUEdq3a_CVKGVcKw" annotatedElement="_xdV6lcRUEdq3a_CVKGVcKw">
+ <body>A join segment must not have guards or triggers.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV6l8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV6mMRUEdq3a_CVKGVcKw" name="fork_segment_state" constrainedElement="_xdV6kMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6mcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6mMRUEdq3a_CVKGVcKw">
+ <body>A fork segment must always target a state.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV6msRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV6m8RUEdq3a_CVKGVcKw" name="join_segment_state" constrainedElement="_xdV6kMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6nMRUEdq3a_CVKGVcKw" annotatedElement="_xdV6m8RUEdq3a_CVKGVcKw">
+ <body>A join segment must always originate from a state.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV6ncRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV6nsRUEdq3a_CVKGVcKw" name="outgoing_pseudostates" constrainedElement="_xdV6kMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6n8RUEdq3a_CVKGVcKw" annotatedElement="_xdV6nsRUEdq3a_CVKGVcKw">
+ <body>Transitions outgoing pseudostates may not have a trigger.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV6oMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>source.oclIsKindOf(Pseudostate) and&#xA;((source.kind &lt;> #junction) and (source.kind &lt;> #join) and (source.kind &lt;> #initial)) implies trigger->isEmpty()&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV6ocRUEdq3a_CVKGVcKw" name="initial_transition" constrainedElement="_xdV6kMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6osRUEdq3a_CVKGVcKw" annotatedElement="_xdV6ocRUEdq3a_CVKGVcKw">
+ <body>An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype “create”.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV6o8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.source.oclIsKindOf(Pseudostate) implies&#xA;(self.source.oclAsType(Pseudostate).kind = #initial) implies&#xA;(self.source.container = self.stateMachine.top) implies&#xA;((self.trigger->isEmpty) or&#xA;(self.trigger.stereotype.name = 'create'))&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV6pMRUEdq3a_CVKGVcKw" name="signatures_compatible" constrainedElement="_xdV6kMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6pcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6pMRUEdq3a_CVKGVcKw">
+ <body>In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes.
+</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV6psRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdV6p8RUEdq3a_CVKGVcKw" general="_xPrSEcRUEdq3a_CVKGVcKw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdV6qMRUEdq3a_CVKGVcKw" general="_ZiwkoGwLEdq7X4sGURiZYA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6qcRUEdq3a_CVKGVcKw" name="kind" type="_xdoOhsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6qsRUEdq3a_CVKGVcKw" annotatedElement="_xdV6qcRUEdq3a_CVKGVcKw">
+ <body>Indicates the precise type of the transition.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:InstanceValue" xmi:id="_xdV6q8RUEdq3a_CVKGVcKw" type="_xdoOhsRUEdq3a_CVKGVcKw" instance="_xdoOksRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6rMRUEdq3a_CVKGVcKw" name="container" type="_xdiH5cRUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xdoOlsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6rcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6rMRUEdq3a_CVKGVcKw">
+ <body>Designates the region that owns this transition.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdV6rsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdV6r8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6sMRUEdq3a_CVKGVcKw" name="source" type="_xdcBMMRUEdq3a_CVKGVcKw" association="_xdoOmMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6scRUEdq3a_CVKGVcKw" annotatedElement="_xdV6sMRUEdq3a_CVKGVcKw">
+ <body>Designates the originating vertex (state or pseudostate) of the transition.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdV6ssRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdV6s8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6tMRUEdq3a_CVKGVcKw" name="target" type="_xdcBMMRUEdq3a_CVKGVcKw" association="_xdoOmcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6tcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6tMRUEdq3a_CVKGVcKw">
+ <body>Designates the target vertex that is reached when the transition is taken.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdV6tsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdV6t8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6uMRUEdq3a_CVKGVcKw" name="redefinedTransition" type="_xdV6kMRUEdq3a_CVKGVcKw" subsettedProperty="_xPrSHsRUEdq3a_CVKGVcKw" association="_xduVG8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6ucRUEdq3a_CVKGVcKw" annotatedElement="_xdV6uMRUEdq3a_CVKGVcKw">
+ <body>The transition that is redefined by this transition.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdV6usRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdV6u8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6vMRUEdq3a_CVKGVcKw" name="guard" type="_xQDsosRUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPlLi8RUEdq3a_CVKGVcKw" association="_xd0bsMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6vcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6vMRUEdq3a_CVKGVcKw">
+ <body>A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdV6vsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdV6v8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6wMRUEdq3a_CVKGVcKw" name="redefinitionContext" type="_6UV2QGwJEdq7X4sGURiZYA" isReadOnly="true" isDerived="true" redefinedProperty="_xPrSGsRUEdq3a_CVKGVcKw" association="_xd0bv8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6wcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6wMRUEdq3a_CVKGVcKw">
+ <body>References the classifier in which context this element may be redefined.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdV6wsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdV6w8RUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6xMRUEdq3a_CVKGVcKw" name="effect" type="_TUPtYGveEdq4DLWZOhbdEA" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xd0bycRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6xcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6xMRUEdq3a_CVKGVcKw">
+ <body>Specifies an optional behavior to be performed when the transition fires.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdV6xsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdV6x8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdV6yMRUEdq3a_CVKGVcKw" name="trigger" type="_xZO2oMRUEdq3a_CVKGVcKw" aggregation="composite" association="_xd6iV8RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6ycRUEdq3a_CVKGVcKw" annotatedElement="_xdV6yMRUEdq3a_CVKGVcKw">
+ <body>Specifies the triggers that may fire the transition.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdV6ysRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdV6y8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xdV6zMRUEdq3a_CVKGVcKw" name="redefinitionContext" isQuery="true" bodyCondition="_xdV6zsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV6zcRUEdq3a_CVKGVcKw" annotatedElement="_xdV6zMRUEdq3a_CVKGVcKw">
+ <body>The redefinition context of a transition is the nearest containing statemachine.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV6zsRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xdV6zMRUEdq3a_CVKGVcKw _xdV6wMRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV6z8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdV60MRUEdq3a_CVKGVcKw" type="_6UV2QGwJEdq7X4sGURiZYA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xdV60cRUEdq3a_CVKGVcKw" name="isConsistentWith" isQuery="true" precondition="_xdV61cRUEdq3a_CVKGVcKw" redefinedOperation="_xPrSIsRUEdq3a_CVKGVcKw" bodyCondition="_xdV608RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV60sRUEdq3a_CVKGVcKw" annotatedElement="_xdV60cRUEdq3a_CVKGVcKw">
+ <body>The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV608RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xdV60cRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV61MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = (redefinee.oclIsKindOf(Transition) and&#xA; let trans: Transition = redefinee.oclAsType(Transition) in&#xA; (source() = trans.source() and trigger() = tran.trigger())</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV61cRUEdq3a_CVKGVcKw" constrainedElement="_xdV60cRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV61sRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>redefinee.isRedefinitionContextValid(self)</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdV618RUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdV62MRUEdq3a_CVKGVcKw" name="redefinee" type="_xPrSEcRUEdq3a_CVKGVcKw"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xdV62cRUEdq3a_CVKGVcKw" name="containingStateMachine" isQuery="true" bodyCondition="_xdV628RUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdV62sRUEdq3a_CVKGVcKw" annotatedElement="_xdV62cRUEdq3a_CVKGVcKw">
+ <body>The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdV628RUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xdV62cRUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdV63MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = container.containingStateMachine()</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdV63cRUEdq3a_CVKGVcKw" type="_xdJtUMRUEdq3a_CVKGVcKw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xdcBMMRUEdq3a_CVKGVcKw" name="Vertex" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBMcRUEdq3a_CVKGVcKw" annotatedElement="_xdcBMMRUEdq3a_CVKGVcKw">
+ <body>A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions.</body>
+ </ownedComment>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdcBMsRUEdq3a_CVKGVcKw" general="_csVgUGvtEdqG6fBIPwe-mw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdcBM8RUEdq3a_CVKGVcKw" name="container" type="_xdiH5cRUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xdoOlMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBNMRUEdq3a_CVKGVcKw" annotatedElement="_xdcBM8RUEdq3a_CVKGVcKw">
+ <body>The region that contains this vertex.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdcBNcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdcBNsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdcBN8RUEdq3a_CVKGVcKw" name="outgoing" type="_xdV6kMRUEdq3a_CVKGVcKw" association="_xdoOmMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBOMRUEdq3a_CVKGVcKw" annotatedElement="_xdcBN8RUEdq3a_CVKGVcKw">
+ <body>Specifies the transitions departing from this vertex.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdcBOcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdcBOsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdcBO8RUEdq3a_CVKGVcKw" name="incoming" type="_xdV6kMRUEdq3a_CVKGVcKw" association="_xdoOmcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBPMRUEdq3a_CVKGVcKw" annotatedElement="_xdcBO8RUEdq3a_CVKGVcKw">
+ <body>Specifies the transitions entering this vertex.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdcBPcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdcBPsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xdcBP8RUEdq3a_CVKGVcKw" name="containingStateMachine" isQuery="true" bodyCondition="_xdcBQcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBQMRUEdq3a_CVKGVcKw" annotatedElement="_xdcBP8RUEdq3a_CVKGVcKw">
+ <body>The operation containingStateMachine() returns the state machine in which this Vertex is defined</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBQcRUEdq3a_CVKGVcKw" name="spec" constrainedElement="_xdcBP8RUEdq3a_CVKGVcKw">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBQsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>result = if not container->isEmpty()&#xA;then&#xA;-- the container is a region&#xA;container.containingStateMachine()&#xA;else if (oclIsKindOf(Pseudostate)) then&#xA;-- entry or exit point?&#xA;if (kind = #entryPoint) or (kind = #exitPoint) then&#xA;stateMachine&#xA;else if (oclIsKindOf(ConnectionPointReference)) then&#xA;state.containingStateMachine() -- no other valid cases possible&#xA;endif&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xdcBQ8RUEdq3a_CVKGVcKw" type="_xdJtUMRUEdq3a_CVKGVcKw" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xdcBRMRUEdq3a_CVKGVcKw" name="Pseudostate">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBRcRUEdq3a_CVKGVcKw" annotatedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <body>Pseudostates are typically used to connect multiple transitions into more complex state transitions paths. For example, by combining a transition entering a fork pseudostate with a set of transitions exiting the fork pseudostate, we get a compound transition that leads to a set of orthogonal target states.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBRsRUEdq3a_CVKGVcKw" name="initial_vertex" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBR8RUEdq3a_CVKGVcKw" annotatedElement="_xdcBRsRUEdq3a_CVKGVcKw">
+ <body>An initial vertex can have at most one outgoing transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBSMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.kind = #initial) implies (self.outgoing->size &lt;= 1)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBScRUEdq3a_CVKGVcKw" name="history_vertices" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBSsRUEdq3a_CVKGVcKw" annotatedElement="_xdcBScRUEdq3a_CVKGVcKw">
+ <body>History vertices can have at most one outgoing transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBS8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies&#xA;(self.outgoing->size &lt;= 1)&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBTMRUEdq3a_CVKGVcKw" name="join_vertex" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBTcRUEdq3a_CVKGVcKw" annotatedElement="_xdcBTMRUEdq3a_CVKGVcKw">
+ <body>In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBTsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.kind = #join) implies&#xA;((self.outgoing->size = 1) and (self.incoming->size >= 2))&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBT8RUEdq3a_CVKGVcKw" name="transitions_incoming" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBUMRUEdq3a_CVKGVcKw" annotatedElement="_xdcBT8RUEdq3a_CVKGVcKw">
+ <body>All transitions incoming a join vertex must originate in different regions of an orthogonal state.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBUcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.kind = #join) implies&#xA; self.incoming->forAll (t1, t2 | t1&lt;>t2 implies&#xA; (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBUsRUEdq3a_CVKGVcKw" name="fork_vertex" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBU8RUEdq3a_CVKGVcKw" annotatedElement="_xdcBUsRUEdq3a_CVKGVcKw">
+ <body>In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBVMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.kind = #fork) implies&#xA;((self.incoming->size = 1) and (self.outgoing->size >= 2))&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBVcRUEdq3a_CVKGVcKw" name="transitions_outgoing" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBVsRUEdq3a_CVKGVcKw" annotatedElement="_xdcBVcRUEdq3a_CVKGVcKw">
+ <body>All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBV8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.kind = #fork) implies&#xA; self.outgoing->forAll (t1, t2 | t1&lt;>t2 implies&#xA; (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBWMRUEdq3a_CVKGVcKw" name="junction_vertex" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBWcRUEdq3a_CVKGVcKw" annotatedElement="_xdcBWMRUEdq3a_CVKGVcKw">
+ <body>In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBWsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.kind = #junction) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBW8RUEdq3a_CVKGVcKw" name="choice_vertex" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBXMRUEdq3a_CVKGVcKw" annotatedElement="_xdcBW8RUEdq3a_CVKGVcKw">
+ <body>In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBXcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.kind = #choice) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBXsRUEdq3a_CVKGVcKw" name="outgoing_from_initial" constrainedElement="_xdcBRMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBX8RUEdq3a_CVKGVcKw" annotatedElement="_xdcBXsRUEdq3a_CVKGVcKw">
+ <body>The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBYMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>(self.kind = #initial) implies (self.outgoing.guard->isEmpty()&#xA; and self.outgoing.trigger->isEmpty())</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdcBYcRUEdq3a_CVKGVcKw" general="_xdcBMMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdcBYsRUEdq3a_CVKGVcKw" name="kind" type="_xdoOcMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBY8RUEdq3a_CVKGVcKw" annotatedElement="_xdcBYsRUEdq3a_CVKGVcKw">
+ <body>Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:InstanceValue" xmi:id="_xdcBZMRUEdq3a_CVKGVcKw" type="_xdoOcMRUEdq3a_CVKGVcKw" instance="_xdoOcsRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdcBZcRUEdq3a_CVKGVcKw" name="stateMachine" type="_xdJtUMRUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xduVJsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBZsRUEdq3a_CVKGVcKw" annotatedElement="_xdcBZcRUEdq3a_CVKGVcKw">
+ <body>The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdcBZ8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdcBaMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdcBacRUEdq3a_CVKGVcKw" name="state" type="_xdPz8MRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xd6iVcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBasRUEdq3a_CVKGVcKw" annotatedElement="_xdcBacRUEdq3a_CVKGVcKw">
+ <body>The State that owns this pseudostate and in which it appears.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdcBa8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdcBbMRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xdcBbcRUEdq3a_CVKGVcKw" name="FinalState">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBbsRUEdq3a_CVKGVcKw" annotatedElement="_xdcBbcRUEdq3a_CVKGVcKw">
+ <body>A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBb8RUEdq3a_CVKGVcKw" name="no_outgoing_transitions" constrainedElement="_xdcBbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBcMRUEdq3a_CVKGVcKw" annotatedElement="_xdcBb8RUEdq3a_CVKGVcKw">
+ <body>A final state cannot have any outgoing transitions.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBccRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.outgoing->size() = 0</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBcsRUEdq3a_CVKGVcKw" name="no_regions" constrainedElement="_xdcBbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBc8RUEdq3a_CVKGVcKw" annotatedElement="_xdcBcsRUEdq3a_CVKGVcKw">
+ <body>A final state cannot have regions.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBdMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.region->size() = 0</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBdcRUEdq3a_CVKGVcKw" name="cannot_reference_submachine" constrainedElement="_xdcBbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBdsRUEdq3a_CVKGVcKw" annotatedElement="_xdcBdcRUEdq3a_CVKGVcKw">
+ <body>A final state cannot reference a submachine.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBd8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.submachine->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBeMRUEdq3a_CVKGVcKw" name="no_entry_behavior" constrainedElement="_xdcBbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBecRUEdq3a_CVKGVcKw" annotatedElement="_xdcBeMRUEdq3a_CVKGVcKw">
+ <body>A final state has no entry behavior.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBesRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.entry->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBe8RUEdq3a_CVKGVcKw" name="no_exit_behavior" constrainedElement="_xdcBbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBfMRUEdq3a_CVKGVcKw" annotatedElement="_xdcBe8RUEdq3a_CVKGVcKw">
+ <body>A final state has no exit behavior.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBfcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.exit->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdcBfsRUEdq3a_CVKGVcKw" name="no_state_behavior" constrainedElement="_xdcBbcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdcBf8RUEdq3a_CVKGVcKw" annotatedElement="_xdcBfsRUEdq3a_CVKGVcKw">
+ <body>A final state has no state (doActivity) behavior.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdcBgMRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>self.doActivity->isEmpty()</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdcBgcRUEdq3a_CVKGVcKw" general="_xdPz8MRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xdiH0MRUEdq3a_CVKGVcKw" name="ConnectionPointReference">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdiH0cRUEdq3a_CVKGVcKw" annotatedElement="_xdiH0MRUEdq3a_CVKGVcKw">
+ <body>Connection point references of a submachine state can be used as sources/targets of transitions. They represent entries into or exits out of the submachine state machine referenced by the submachine state.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdiH0sRUEdq3a_CVKGVcKw" name="entry_pseudostates" constrainedElement="_xdiH0MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdiH08RUEdq3a_CVKGVcKw" annotatedElement="_xdiH0sRUEdq3a_CVKGVcKw">
+ <body>The entry Pseudostates must be Pseudostates with kind entryPoint.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdiH1MRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdiH1cRUEdq3a_CVKGVcKw" name="exit_pseudostates" constrainedElement="_xdiH0MRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdiH1sRUEdq3a_CVKGVcKw" annotatedElement="_xdiH1cRUEdq3a_CVKGVcKw">
+ <body>The exit Pseudostates must be Pseudostates with kind exitPoint.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdiH18RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdiH2MRUEdq3a_CVKGVcKw" general="_xdcBMMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdiH2cRUEdq3a_CVKGVcKw" name="entry" type="_xdcBRMRUEdq3a_CVKGVcKw" association="_xduVEMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdiH2sRUEdq3a_CVKGVcKw" annotatedElement="_xdiH2cRUEdq3a_CVKGVcKw">
+ <body>The entryPoint kind pseudo states corresponding to this connection point.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdiH28RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdiH3MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdiH3cRUEdq3a_CVKGVcKw" name="state" type="_xdPz8MRUEdq3a_CVKGVcKw" subsettedProperty="_xRfQC8RUEdq3a_CVKGVcKw" association="_xduVFMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdiH3sRUEdq3a_CVKGVcKw" annotatedElement="_xdiH3cRUEdq3a_CVKGVcKw">
+ <body>The State in which the connection point refreshens are defined.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdiH38RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdiH4MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xdiH4cRUEdq3a_CVKGVcKw" name="exit" type="_xdcBRMRUEdq3a_CVKGVcKw" association="_xduVIMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdiH4sRUEdq3a_CVKGVcKw" annotatedElement="_xdiH4cRUEdq3a_CVKGVcKw">
+ <body>The exitPoints kind pseudo states corresponding to this connection point.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xdiH48RUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xdiH5MRUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xZO2wcRUEdq3a_CVKGVcKw" name="TimeEvent">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2wsRUEdq3a_CVKGVcKw" annotatedElement="_xZO2wcRUEdq3a_CVKGVcKw">
+ <body>A time event specifies a point in time by an expression. The expression might be absolute or might be relative to some other point in time.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdiII8RUEdq3a_CVKGVcKw" annotatedElement="_xZO2wcRUEdq3a_CVKGVcKw">
+ <body>Extends TimeEvent to be defined relative to entering the current state of the executing state machine.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xc3ZcMRUEdq3a_CVKGVcKw" name="when_non_negative" constrainedElement="_xZO2wcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xc3ZccRUEdq3a_CVKGVcKw" annotatedElement="_xc3ZcMRUEdq3a_CVKGVcKw">
+ <body>The ValueSpecification when must return a non-negative Integer.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xc3ZcsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdiIJMRUEdq3a_CVKGVcKw" name="starting_time" constrainedElement="_xZO2wcRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdiIJcRUEdq3a_CVKGVcKw" annotatedElement="_xdiIJMRUEdq3a_CVKGVcKw">
+ <body>The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdiIJsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xZO2w8RUEdq3a_CVKGVcKw" general="_xZU9RMRUEdq3a_CVKGVcKw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZO2xMRUEdq3a_CVKGVcKw" name="isRelative" type="_UdivYGvsEdqG6fBIPwe-mw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2xcRUEdq3a_CVKGVcKw" annotatedElement="_xZO2xMRUEdq3a_CVKGVcKw">
+ <body>Specifies whether it is relative or absolute time.</body>
+ </ownedComment>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_xZO2xsRUEdq3a_CVKGVcKw" type="_UdivYGvsEdqG6fBIPwe-mw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xZO2x8RUEdq3a_CVKGVcKw" name="when" visibility="public" type="_xPxYp8RUEdq3a_CVKGVcKw" aggregation="composite" subsettedProperty="_xPY-U8RUEdq3a_CVKGVcKw" association="_xZbD5sRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xZO2yMRUEdq3a_CVKGVcKw" annotatedElement="_xZO2x8RUEdq3a_CVKGVcKw">
+ <body>Specifies the corresponding time deadline.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xc3Zc8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xc3ZdMRUEdq3a_CVKGVcKw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_xdoOcMRUEdq3a_CVKGVcKw" name="PseudostateKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOccRUEdq3a_CVKGVcKw" annotatedElement="_xdoOcMRUEdq3a_CVKGVcKw">
+ <body>PseudoStateKind is an enumeration of the following literal values:
+• initial
+• deepHistory
+• shallowHistory
+• join
+• fork
+• junction
+• choice
+• entryPoint
+• exitPoint
+• terminate
+</body>
+ </ownedComment>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOcsRUEdq3a_CVKGVcKw" name="initial">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOc8RUEdq3a_CVKGVcKw" annotatedElement="_xdoOcsRUEdq3a_CVKGVcKw">
+ <body>An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOdMRUEdq3a_CVKGVcKw" name="deepHistory">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOdcRUEdq3a_CVKGVcKw" annotatedElement="_xdoOdMRUEdq3a_CVKGVcKw">
+ <body>DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOdsRUEdq3a_CVKGVcKw" name="shallowHistory">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOd8RUEdq3a_CVKGVcKw" annotatedElement="_xdoOdsRUEdq3a_CVKGVcKw">
+ <body>ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOeMRUEdq3a_CVKGVcKw" name="join">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOecRUEdq3a_CVKGVcKw" annotatedElement="_xdoOeMRUEdq3a_CVKGVcKw">
+ <body>Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOesRUEdq3a_CVKGVcKw" name="fork">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOe8RUEdq3a_CVKGVcKw" annotatedElement="_xdoOesRUEdq3a_CVKGVcKw">
+ <body>Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices
+(i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOfMRUEdq3a_CVKGVcKw" name="junction">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOfcRUEdq3a_CVKGVcKw" annotatedElement="_xdoOfMRUEdq3a_CVKGVcKw">
+ <body>Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted “else” may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below).</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOfsRUEdq3a_CVKGVcKw" name="choice">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOf8RUEdq3a_CVKGVcKw" annotatedElement="_xdoOfsRUEdq3a_CVKGVcKw">
+ <body>Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above).</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOgMRUEdq3a_CVKGVcKw" name="entryPoint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOgcRUEdq3a_CVKGVcKw" annotatedElement="_xdoOgMRUEdq3a_CVKGVcKw">
+ <body>An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOgsRUEdq3a_CVKGVcKw" name="exitPoint">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOg8RUEdq3a_CVKGVcKw" annotatedElement="_xdoOgsRUEdq3a_CVKGVcKw">
+ <body>An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOhMRUEdq3a_CVKGVcKw" name="terminate">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOhcRUEdq3a_CVKGVcKw" annotatedElement="_xdoOhMRUEdq3a_CVKGVcKw">
+ <body>Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction.</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_xdoOhsRUEdq3a_CVKGVcKw" name="TransitionKind">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOh8RUEdq3a_CVKGVcKw" annotatedElement="_xdoOhsRUEdq3a_CVKGVcKw">
+ <body>TransitionKind is an enumeration of the following literal values:
+• external
+• internal
+• local
+</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdoOiMRUEdq3a_CVKGVcKw" name="state_is_local" constrainedElement="_xdoOhsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOicRUEdq3a_CVKGVcKw" annotatedElement="_xdoOiMRUEdq3a_CVKGVcKw">
+ <body>The source state of a transition with transition kind local must be a composite state.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdoOisRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>kind=#local implies owner.source.isComposite</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xdoOi8RUEdq3a_CVKGVcKw" name="state_is_external" constrainedElement="_xdoOhsRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOjMRUEdq3a_CVKGVcKw" annotatedElement="_xdoOi8RUEdq3a_CVKGVcKw">
+ <body>The source state of a transition with transition kind external must be a composite state.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xdoOjcRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>kind=#external implies owner.source.isComposite</body>
+ </specification>
+ </ownedRule>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOjsRUEdq3a_CVKGVcKw" name="internal">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOj8RUEdq3a_CVKGVcKw" annotatedElement="_xdoOjsRUEdq3a_CVKGVcKw">
+ <body>kind=internal implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOkMRUEdq3a_CVKGVcKw" name="local">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOkcRUEdq3a_CVKGVcKw" annotatedElement="_xdoOkMRUEdq3a_CVKGVcKw">
+ <body>kind=local implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered.</body>
+ </ownedComment>
+ </ownedLiteral>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_xdoOksRUEdq3a_CVKGVcKw" name="external">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xdoOk8RUEdq3a_CVKGVcKw" annotatedElement="_xdoOksRUEdq3a_CVKGVcKw">
+ <body>kind=external implies that the transition, if triggered, will exit the composite (source) state.</body>
+ </ownedComment>
+ </ownedLiteral>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xdoOlMRUEdq3a_CVKGVcKw" name="A_container_subvertex" memberEnd="_xdcBM8RUEdq3a_CVKGVcKw _xdiH9cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdoOlcRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xdoOlsRUEdq3a_CVKGVcKw" name="A_container_transition" memberEnd="_xdV6rMRUEdq3a_CVKGVcKw _xdiH-cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xdoOl8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xdoOmMRUEdq3a_CVKGVcKw" name="A_outgoing_source" memberEnd="_xdV6sMRUEdq3a_CVKGVcKw _xdcBN8RUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xdoOmcRUEdq3a_CVKGVcKw" name="A_incoming_target" memberEnd="_xdV6tMRUEdq3a_CVKGVcKw _xdcBO8RUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xdoOmsRUEdq3a_CVKGVcKw" name="A_submachineState_submachine" memberEnd="_xdJta8RUEdq3a_CVKGVcKw _xdP0EMRUEdq3a_CVKGVcKw"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVEMRUEdq3a_CVKGVcKw" name="A_entry_connectionPointReference" memberEnd="_xdiH2cRUEdq3a_CVKGVcKw _xduVEcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xduVEcRUEdq3a_CVKGVcKw" type="_xdiH0MRUEdq3a_CVKGVcKw" association="_xduVEMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xduVEsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xduVE8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVFMRUEdq3a_CVKGVcKw" name="A_state_connection" memberEnd="_xdP0FMRUEdq3a_CVKGVcKw _xdiH3cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xduVFcRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVFsRUEdq3a_CVKGVcKw" name="A_redefinedState_state" memberEnd="_xdP0GMRUEdq3a_CVKGVcKw _xduVGMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xduVF8RUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xduVGMRUEdq3a_CVKGVcKw" type="_xdPz8MRUEdq3a_CVKGVcKw" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xduVFsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xduVGcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xduVGsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVG8RUEdq3a_CVKGVcKw" name="A_redefinedTransition_transition" memberEnd="_xdV6uMRUEdq3a_CVKGVcKw _xduVHcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xduVHMRUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xduVHcRUEdq3a_CVKGVcKw" type="_xdV6kMRUEdq3a_CVKGVcKw" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xduVG8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xduVHsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xduVH8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVIMRUEdq3a_CVKGVcKw" name="A_exit_connectionPointReference" memberEnd="_xdiH4cRUEdq3a_CVKGVcKw _xduVIcRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xduVIcRUEdq3a_CVKGVcKw" type="_xdiH0MRUEdq3a_CVKGVcKw" association="_xduVIMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xduVIsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xduVI8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVJMRUEdq3a_CVKGVcKw" name="A_region_stateMachine" memberEnd="_xdJtX8RUEdq3a_CVKGVcKw _xdiH_cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xduVJcRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVJsRUEdq3a_CVKGVcKw" name="A_connectionPoint_stateMachine" memberEnd="_xdcBZcRUEdq3a_CVKGVcKw _xdJtY8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xduVJ8RUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVKMRUEdq3a_CVKGVcKw" name="A_region_state" memberEnd="_xdP0HMRUEdq3a_CVKGVcKw _xdiIAcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xduVKcRUEdq3a_CVKGVcKw" general="_xR9xAMRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVKsRUEdq3a_CVKGVcKw" name="A_region_extendedRegion" memberEnd="_xdiIBcRUEdq3a_CVKGVcKw _xduVLMRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xduVK8RUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xduVLMRUEdq3a_CVKGVcKw" type="_xdiH5cRUEdq3a_CVKGVcKw" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xduVKsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xduVLcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xduVLsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xduVL8RUEdq3a_CVKGVcKw" name="A_stateMachine_extendedStateMachine" memberEnd="_xdJtZ8RUEdq3a_CVKGVcKw _xduVMcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xduVMMRUEdq3a_CVKGVcKw" general="_xR3qg8RUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xduVMcRUEdq3a_CVKGVcKw" type="_xdJtUMRUEdq3a_CVKGVcKw" redefinedProperty="_xR3qhMRUEdq3a_CVKGVcKw" association="_xduVL8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xduVMsRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xduVM8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd0bsMRUEdq3a_CVKGVcKw" name="A_guard_transition" memberEnd="_xdV6vMRUEdq3a_CVKGVcKw _xd0bssRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd0bscRUEdq3a_CVKGVcKw" general="_xR9xJsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd0bssRUEdq3a_CVKGVcKw" type="_xdV6kMRUEdq3a_CVKGVcKw" association="_xd0bsMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd0bs8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd0btMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd0btcRUEdq3a_CVKGVcKw" name="A_redefinitionContext_region" memberEnd="_xdiICcRUEdq3a_CVKGVcKw _xd0bt8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd0btsRUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd0bt8RUEdq3a_CVKGVcKw" type="_xdiH5cRUEdq3a_CVKGVcKw" association="_xd0btcRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd0buMRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd0bucRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd0busRUEdq3a_CVKGVcKw" name="A_state_redefinitionContext" memberEnd="_xdP0IMRUEdq3a_CVKGVcKw _xd0bvMRUEdq3a_CVKGVcKw" isDerived="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd0bu8RUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd0bvMRUEdq3a_CVKGVcKw" type="_xdPz8MRUEdq3a_CVKGVcKw" association="_xd0busRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd0bvcRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd0bvsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd0bv8RUEdq3a_CVKGVcKw" name="A_transition_redefinitionContext" memberEnd="_xdV6wMRUEdq3a_CVKGVcKw _xd0bwcRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd0bwMRUEdq3a_CVKGVcKw" general="_xR3qgcRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd0bwcRUEdq3a_CVKGVcKw" type="_xdV6kMRUEdq3a_CVKGVcKw" association="_xd0bv8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd0bwsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd0bw8RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd0bxMRUEdq3a_CVKGVcKw" name="A_stateInvariant_owningState" memberEnd="_xdP0JMRUEdq3a_CVKGVcKw _xd0bxsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd0bxcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd0bxsRUEdq3a_CVKGVcKw" name="owningState" type="_xdPz8MRUEdq3a_CVKGVcKw" subsettedProperty="_xPY-V8RUEdq3a_CVKGVcKw" association="_xd0bxMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd0bx8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd0byMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd0bycRUEdq3a_CVKGVcKw" name="A_effect_transition" memberEnd="_xdV6xMRUEdq3a_CVKGVcKw _xd0by8RUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd0bysRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd0by8RUEdq3a_CVKGVcKw" type="_xdV6kMRUEdq3a_CVKGVcKw" association="_xd0bycRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd0bzMRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd0bzcRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd0bzsRUEdq3a_CVKGVcKw" name="A_entry_state" memberEnd="_xdP0KMRUEdq3a_CVKGVcKw _xd0b0MRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd0bz8RUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd0b0MRUEdq3a_CVKGVcKw" type="_xdPz8MRUEdq3a_CVKGVcKw" association="_xd0bzsRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd0b0cRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd0b0sRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd0b08RUEdq3a_CVKGVcKw" name="A_exit_state" memberEnd="_xdP0LMRUEdq3a_CVKGVcKw _xd0b1cRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd0b1MRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd0b1cRUEdq3a_CVKGVcKw" type="_xdPz8MRUEdq3a_CVKGVcKw" association="_xd0b08RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd0b1sRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd0b18RUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd6iUMRUEdq3a_CVKGVcKw" name="A_doActivity_state" memberEnd="_xdP0MMRUEdq3a_CVKGVcKw _xd6iUsRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd6iUcRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd6iUsRUEdq3a_CVKGVcKw" type="_xdPz8MRUEdq3a_CVKGVcKw" association="_xd6iUMRUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd6iU8RUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd6iVMRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd6iVcRUEdq3a_CVKGVcKw" name="A_connectionPoint_state" memberEnd="_xdP0NMRUEdq3a_CVKGVcKw _xdcBacRUEdq3a_CVKGVcKw">
+ <generalization xmi:type="uml:Generalization" xmi:id="_xd6iVsRUEdq3a_CVKGVcKw" general="_xR3qdsRUEdq3a_CVKGVcKw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd6iV8RUEdq3a_CVKGVcKw" name="A_trigger_transition" memberEnd="_xdV6yMRUEdq3a_CVKGVcKw _xd6iWMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd6iWMRUEdq3a_CVKGVcKw" type="_xdV6kMRUEdq3a_CVKGVcKw" association="_xd6iV8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd6iWcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd6iWsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_xd6iW8RUEdq3a_CVKGVcKw" name="A_deferrableTrigger_state" memberEnd="_xdP0OMRUEdq3a_CVKGVcKw _xd6iXMRUEdq3a_CVKGVcKw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_xd6iXMRUEdq3a_CVKGVcKw" type="_xdPz8MRUEdq3a_CVKGVcKw" association="_xd6iW8RUEdq3a_CVKGVcKw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xd6iXcRUEdq3a_CVKGVcKw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xd6iXsRUEdq3a_CVKGVcKw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_A7vDAGv0Edq7X4sGURiZYA" name="Stereotype">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xeBQAMRUEdq3a_CVKGVcKw" annotatedElement="_A7vDAGv0Edq7X4sGURiZYA">
+ <body>Stereotype is a kind of Class that extends Classes through Extensions. Just like a class, a stereotype may have properties, which may be referred to as tag definitions. When a stereotype is applied to a model element, the values of the properties may be referred to as tagged values. Also, stereotype names should not clash with keyword names for the extended model element.</body>
+ </ownedComment>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xeBQAcRUEdq3a_CVKGVcKw" name="name_not_clash" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xeBQAsRUEdq3a_CVKGVcKw" annotatedElement="_xeBQAcRUEdq3a_CVKGVcKw">
+ <body>Stereotype names should not clash with keyword names for the extended model element.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xeBQA8RUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_xeBQBMRUEdq3a_CVKGVcKw" name="generalize" constrainedElement="_A7vDAGv0Edq7X4sGURiZYA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xeBQBcRUEdq3a_CVKGVcKw" annotatedElement="_xeBQBMRUEdq3a_CVKGVcKw">
+ <body>A Stereotype may only generalize or specialize another Stereotype.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_xeBQBsRUEdq3a_CVKGVcKw">
+ <language>OCL</language>
+ <body>generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) </body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:type="uml:Generalization" xmi:id="_xeBQB8RUEdq3a_CVKGVcKw" general="_00owUGvdEdq4DLWZOhbdEA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xeBQCMRUEdq3a_CVKGVcKw" name="icon" type="_nDq0wJPzEdqpjIDDFZ2Hgw" aggregation="composite" association="_xeZqjMRUEdq3a_CVKGVcKw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xeBQCcRUEdq3a_CVKGVcKw" annotatedElement="_xeBQCMRUEdq3a_CVKGVcKw">
+ <body>Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements.</body>
+ </ownedComment>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xeBQCsRUEdq3a_CVKGVcKw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xeBQC8RUEdq3a_CVKGVcKw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FJce8GwHEdq7X4sGURiZYA" name="createExtension">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_IziyIGwHEdq7X4sGURiZYA" type="_skHGwGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_cQPbYGwHEdq7X4sGURiZYA" name="metaclass" type="_00owUGvdEdq4DLWZOhbdEA" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Jc0YoGwHEdq7X4sGURiZYA" name="isRequired" type="_UdivYGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_X7-EcGv0Edq7X4sGURiZYA" name="getProfile" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Z7OmcGv0Edq7X4sGURiZYA" type="__pew8GvzEdq7X4sGURiZYA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7gsMWwHEdq7X4sGURiZYA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7gsMGwHEdq7X4sGURiZYA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_im40YGwHEdq7X4sGURiZYA" name="getKeyword" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_lZHEYGwHEdq7X4sGURiZYA" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_n7YM0GwHEdq7X4sGURiZYA" name="getKeyword" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_n7YM0WwHEdq7X4sGURiZYA" type="_aAyVgGvsEdqG6fBIPwe-mw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rn3FoGwHEdq7X4sGURiZYA" name="localize" type="_UdivYGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_02jCwGwHEdq7X4sGURiZYA" name="getExtendedMetaclasses" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_25hnIGwHEdq7X4sGURiZYA" type="_00owUGvdEdq4DLWZOhbdEA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5lVtIWwHEdq7X4sGURiZYA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5lVtIGwHEdq7X4sGURiZYA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_7T5gsGwHEdq7X4sGURiZYA" name="getAllExtendedMetaclasses" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_7T5gsWwHEdq7X4sGURiZYA" type="_00owUGvdEdq4DLWZOhbdEA" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7T5gsmwHEdq7X4sGURiZYA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7T5gs2wHEdq7X4sGURiZYA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_wdNtsI0GEdqipMtlOpTiHA" name="getDefinition" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_wdNtsY0GEdqipMtlOpTiHA" direction="return">
+ <type xmi:type="uml:Class" href="Ecore.uml#_439EC3AE03B53903D5BF000A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wdNtso0GEdqipMtlOpTiHA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wdNts40GEdqipMtlOpTiHA"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_h2eXIJPzEdqpjIDDFZ2Hgw" name="createIcon">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tND04JPzEdqpjIDDFZ2Hgw" type="_nDq0wJPzEdqpjIDDFZ2Hgw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_vrdJ8JPzEdqpjIDDFZ2Hgw" name="location" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pK-tQJP4EdqpjIDDFZ2Hgw" name="createIcon">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ud-Q4JP4EdqpjIDDFZ2Hgw" type="_nDq0wJPzEdqpjIDDFZ2Hgw" direction="return"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_T7RY0JP5EdqpjIDDFZ2Hgw" name="format" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read"/>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RPUI4JP5EdqpjIDDFZ2Hgw" name="content" type="_aAyVgGvsEdqG6fBIPwe-mw" effect="read"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__pew8GvzEdq7X4sGURiZYA" name="Profile">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xeBQDMRUEdq3a_CVKGVcKw" annotatedElement="__pew8GvzEdq7X4sGURiZYA">
+ <body>A Profile is a kind of Package that extends a reference metamodel. The primary extension construct is the Stereotype, which are defined as part of Profiles.
+
+A profile introduces several constraints, or restrictions, on ordinary metamodeling through the use of the metaclasses defined in this package.
+
+A profile is a restricted form of