xmi 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +14 -0
  3. data/.github/workflows/release.yml +22 -0
  4. data/.rubocop.yml +6 -0
  5. data/README.adoc +87 -2
  6. data/lib/xmi/documentation.rb +6 -6
  7. data/lib/xmi/ea_root.rb +316 -0
  8. data/lib/xmi/extension.rb +5 -5
  9. data/lib/xmi/root.rb +43 -20
  10. data/lib/xmi/root13.rb +0 -1
  11. data/lib/xmi/sparx.rb +368 -154
  12. data/lib/xmi/uml.rb +422 -131
  13. data/lib/xmi/uml13/abstraction.rb +90 -88
  14. data/lib/xmi/uml13/action.rb +86 -84
  15. data/lib/xmi/uml13/action_sequence.rb +76 -74
  16. data/lib/xmi/uml13/action_sequenceaction.rb +23 -21
  17. data/lib/xmi/uml13/action_sequencestate.rb +7 -5
  18. data/lib/xmi/uml13/action_sequencestate2.rb +7 -5
  19. data/lib/xmi/uml13/action_sequencetransition.rb +7 -5
  20. data/lib/xmi/uml13/action_state.rb +89 -87
  21. data/lib/xmi/uml13/actionaction_sequence.rb +7 -5
  22. data/lib/xmi/uml13/actionactual_argument.rb +7 -5
  23. data/lib/xmi/uml13/actionis_asynchronous.rb +6 -4
  24. data/lib/xmi/uml13/actionmessage.rb +7 -5
  25. data/lib/xmi/uml13/actionrecurrence.rb +15 -13
  26. data/lib/xmi/uml13/actionrequest.rb +7 -5
  27. data/lib/xmi/uml13/actionscript.rb +7 -5
  28. data/lib/xmi/uml13/actiontarget.rb +7 -5
  29. data/lib/xmi/uml13/activity_model.rb +77 -75
  30. data/lib/xmi/uml13/activity_modelpartition.rb +7 -5
  31. data/lib/xmi/uml13/activity_state.rb +88 -86
  32. data/lib/xmi/uml13/actor.rb +113 -111
  33. data/lib/xmi/uml13/argument.rb +17 -15
  34. data/lib/xmi/uml13/argumentaction.rb +7 -5
  35. data/lib/xmi/uml13/argumentvalue.rb +15 -13
  36. data/lib/xmi/uml13/association.rb +90 -88
  37. data/lib/xmi/uml13/association_class.rb +120 -118
  38. data/lib/xmi/uml13/association_end.rb +100 -98
  39. data/lib/xmi/uml13/association_end_role.rb +106 -104
  40. data/lib/xmi/uml13/association_end_roleassociation_role.rb +7 -5
  41. data/lib/xmi/uml13/association_end_rolebase.rb +7 -5
  42. data/lib/xmi/uml13/association_endaggregation.rb +6 -4
  43. data/lib/xmi/uml13/association_endassociation.rb +7 -5
  44. data/lib/xmi/uml13/association_endassociation_end_role.rb +7 -5
  45. data/lib/xmi/uml13/association_endchangeable.rb +6 -4
  46. data/lib/xmi/uml13/association_endis_navigable.rb +6 -4
  47. data/lib/xmi/uml13/association_endis_ordered.rb +6 -4
  48. data/lib/xmi/uml13/association_endlink_end.rb +7 -5
  49. data/lib/xmi/uml13/association_endmultiplicity.rb +7 -5
  50. data/lib/xmi/uml13/association_endqualifier.rb +7 -5
  51. data/lib/xmi/uml13/association_endspecification.rb +7 -5
  52. data/lib/xmi/uml13/association_endtarget_scope.rb +6 -4
  53. data/lib/xmi/uml13/association_endtype.rb +7 -5
  54. data/lib/xmi/uml13/association_role.rb +95 -93
  55. data/lib/xmi/uml13/association_rolebase.rb +7 -5
  56. data/lib/xmi/uml13/association_rolemultiplicity.rb +7 -5
  57. data/lib/xmi/uml13/association_rolenamespace.rb +7 -5
  58. data/lib/xmi/uml13/associationassociation_end.rb +7 -5
  59. data/lib/xmi/uml13/associationconnection.rb +9 -7
  60. data/lib/xmi/uml13/associationlink.rb +7 -5
  61. data/lib/xmi/uml13/attribute.rb +94 -92
  62. data/lib/xmi/uml13/attribute_link.rb +74 -72
  63. data/lib/xmi/uml13/attribute_linkattribute.rb +7 -5
  64. data/lib/xmi/uml13/attribute_linkinstance.rb +7 -5
  65. data/lib/xmi/uml13/attribute_linkvalue.rb +7 -5
  66. data/lib/xmi/uml13/attributeassociation_end.rb +7 -5
  67. data/lib/xmi/uml13/attributeattribute_link.rb +7 -5
  68. data/lib/xmi/uml13/attributeinitial_value.rb +15 -13
  69. data/lib/xmi/uml13/auxiliary_elements.rb +28 -26
  70. data/lib/xmi/uml13/behavioral_elements.rb +18 -16
  71. data/lib/xmi/uml13/behavioral_feature.rb +82 -80
  72. data/lib/xmi/uml13/behavioral_featureis_query.rb +6 -4
  73. data/lib/xmi/uml13/behavioral_featureparameter.rb +7 -5
  74. data/lib/xmi/uml13/behavioral_featureraised_exception.rb +7 -5
  75. data/lib/xmi/uml13/binding.rb +81 -79
  76. data/lib/xmi/uml13/bindingargument.rb +175 -173
  77. data/lib/xmi/uml13/boolean_expression.rb +18 -16
  78. data/lib/xmi/uml13/call_action.rb +89 -87
  79. data/lib/xmi/uml13/call_actionmode.rb +6 -4
  80. data/lib/xmi/uml13/call_event.rb +74 -72
  81. data/lib/xmi/uml13/call_eventoperation.rb +7 -5
  82. data/lib/xmi/uml13/change_event.rb +73 -71
  83. data/lib/xmi/uml13/change_eventchange_expression.rb +7 -5
  84. data/lib/xmi/uml13/class.rb +116 -114
  85. data/lib/xmi/uml13/classifier.rb +113 -111
  86. data/lib/xmi/uml13/classifier_in_state.rb +122 -120
  87. data/lib/xmi/uml13/classifier_in_statein_state.rb +7 -5
  88. data/lib/xmi/uml13/classifier_in_stateobject_flow_state.rb +7 -5
  89. data/lib/xmi/uml13/classifier_in_statetype.rb +7 -5
  90. data/lib/xmi/uml13/classifier_role.rb +130 -128
  91. data/lib/xmi/uml13/classifier_roleassociation_end_role.rb +7 -5
  92. data/lib/xmi/uml13/classifier_roleavailable_feature.rb +7 -5
  93. data/lib/xmi/uml13/classifier_rolebase.rb +7 -5
  94. data/lib/xmi/uml13/classifier_rolemessage.rb +7 -5
  95. data/lib/xmi/uml13/classifier_rolemessage2.rb +7 -5
  96. data/lib/xmi/uml13/classifier_rolemultiplicity.rb +7 -5
  97. data/lib/xmi/uml13/classifier_rolenamespace.rb +7 -5
  98. data/lib/xmi/uml13/classifierassociation_end.rb +7 -5
  99. data/lib/xmi/uml13/classifierclassifier_in_state.rb +7 -5
  100. data/lib/xmi/uml13/classifierclassifier_role.rb +7 -5
  101. data/lib/xmi/uml13/classifiercollaboration.rb +7 -5
  102. data/lib/xmi/uml13/classifiercreate_action.rb +7 -5
  103. data/lib/xmi/uml13/classifierfeature.rb +19 -17
  104. data/lib/xmi/uml13/classifierinstance.rb +7 -5
  105. data/lib/xmi/uml13/classifierparameter.rb +7 -5
  106. data/lib/xmi/uml13/classifierparticipant.rb +7 -5
  107. data/lib/xmi/uml13/classifierrealization.rb +7 -5
  108. data/lib/xmi/uml13/classifierspecification.rb +7 -5
  109. data/lib/xmi/uml13/classifierstructural_feature.rb +7 -5
  110. data/lib/xmi/uml13/classis_active.rb +6 -4
  111. data/lib/xmi/uml13/collaboration.rb +78 -76
  112. data/lib/xmi/uml13/collaborationconstraining_element.rb +7 -5
  113. data/lib/xmi/uml13/collaborationinteraction.rb +7 -5
  114. data/lib/xmi/uml13/collaborationrepresented_classifier.rb +7 -5
  115. data/lib/xmi/uml13/collaborationrepresented_operation.rb +7 -5
  116. data/lib/xmi/uml13/collaborations.rb +22 -20
  117. data/lib/xmi/uml13/comment.rb +65 -63
  118. data/lib/xmi/uml13/common_behavior.rb +56 -54
  119. data/lib/xmi/uml13/component.rb +119 -117
  120. data/lib/xmi/uml13/componentdeployment.rb +7 -5
  121. data/lib/xmi/uml13/componentimplements.rb +7 -5
  122. data/lib/xmi/uml13/composite_state.rb +94 -92
  123. data/lib/xmi/uml13/composite_stateis_concurrent.rb +6 -4
  124. data/lib/xmi/uml13/composite_statesubstate.rb +23 -21
  125. data/lib/xmi/uml13/constraint.rb +73 -71
  126. data/lib/xmi/uml13/constraintbody.rb +7 -5
  127. data/lib/xmi/uml13/constraintconstrained_element.rb +7 -5
  128. data/lib/xmi/uml13/constraintconstrained_stereotype.rb +7 -5
  129. data/lib/xmi/uml13/core.rb +52 -50
  130. data/lib/xmi/uml13/create_action.rb +89 -87
  131. data/lib/xmi/uml13/create_actioninstantiation.rb +7 -5
  132. data/lib/xmi/uml13/data_type.rb +113 -111
  133. data/lib/xmi/uml13/data_types.rb +36 -34
  134. data/lib/xmi/uml13/data_value.rb +85 -83
  135. data/lib/xmi/uml13/dependency.rb +79 -77
  136. data/lib/xmi/uml13/dependencyclient.rb +7 -5
  137. data/lib/xmi/uml13/dependencydescription.rb +7 -5
  138. data/lib/xmi/uml13/dependencyowning_dependency.rb +7 -5
  139. data/lib/xmi/uml13/dependencysub_dependencies.rb +15 -13
  140. data/lib/xmi/uml13/dependencysupplier.rb +7 -5
  141. data/lib/xmi/uml13/destroy_action.rb +86 -84
  142. data/lib/xmi/uml13/diagram.rb +25 -23
  143. data/lib/xmi/uml13/diagram_compositions.rb +7 -5
  144. data/lib/xmi/uml13/diagram_element.rb +20 -18
  145. data/lib/xmi/uml13/diagram_element_properties.rb +9 -7
  146. data/lib/xmi/uml13/diagram_elementdiagram.rb +7 -5
  147. data/lib/xmi/uml13/diagram_elementgeometry.rb +7 -5
  148. data/lib/xmi/uml13/diagram_elementstyle.rb +7 -5
  149. data/lib/xmi/uml13/diagram_properties.rb +13 -11
  150. data/lib/xmi/uml13/diagramdiagram_type.rb +7 -5
  151. data/lib/xmi/uml13/diagramelement.rb +7 -5
  152. data/lib/xmi/uml13/diagramname.rb +7 -5
  153. data/lib/xmi/uml13/diagramowner.rb +157 -155
  154. data/lib/xmi/uml13/diagramstyle.rb +7 -5
  155. data/lib/xmi/uml13/diagramtool_name.rb +7 -5
  156. data/lib/xmi/uml13/element.rb +12 -10
  157. data/lib/xmi/uml13/element_reference.rb +24 -22
  158. data/lib/xmi/uml13/element_referencealias.rb +7 -5
  159. data/lib/xmi/uml13/element_referencepackage.rb +7 -5
  160. data/lib/xmi/uml13/element_referencereferenced_element.rb +7 -5
  161. data/lib/xmi/uml13/element_referencevisibility.rb +6 -4
  162. data/lib/xmi/uml13/enumeration.rb +115 -113
  163. data/lib/xmi/uml13/enumeration_literal.rb +18 -16
  164. data/lib/xmi/uml13/enumeration_literalenumeration.rb +7 -5
  165. data/lib/xmi/uml13/enumeration_literalname.rb +7 -5
  166. data/lib/xmi/uml13/enumerationliteral.rb +7 -5
  167. data/lib/xmi/uml13/event.rb +71 -69
  168. data/lib/xmi/uml13/eventstate.rb +7 -5
  169. data/lib/xmi/uml13/eventtransition.rb +7 -5
  170. data/lib/xmi/uml13/exception.rb +99 -97
  171. data/lib/xmi/uml13/exceptioncontext.rb +7 -5
  172. data/lib/xmi/uml13/expression.rb +18 -16
  173. data/lib/xmi/uml13/expressionbody.rb +7 -5
  174. data/lib/xmi/uml13/expressionlanguage.rb +7 -5
  175. data/lib/xmi/uml13/extension_mechanisms.rb +14 -12
  176. data/lib/xmi/uml13/feature.rb +74 -72
  177. data/lib/xmi/uml13/featureclassifier_role.rb +7 -5
  178. data/lib/xmi/uml13/featureowner.rb +7 -5
  179. data/lib/xmi/uml13/featureowner_scope.rb +6 -4
  180. data/lib/xmi/uml13/foundation.rb +18 -16
  181. data/lib/xmi/uml13/generalizable_element.rb +82 -80
  182. data/lib/xmi/uml13/generalizable_elementgeneralization.rb +7 -5
  183. data/lib/xmi/uml13/generalizable_elementis_abstract.rb +6 -4
  184. data/lib/xmi/uml13/generalizable_elementis_leaf.rb +6 -4
  185. data/lib/xmi/uml13/generalizable_elementis_root.rb +6 -4
  186. data/lib/xmi/uml13/generalizable_elementspecialization.rb +7 -5
  187. data/lib/xmi/uml13/generalization.rb +74 -72
  188. data/lib/xmi/uml13/generalizationdiscriminator.rb +7 -5
  189. data/lib/xmi/uml13/generalizationsubtype.rb +7 -5
  190. data/lib/xmi/uml13/generalizationsupertype.rb +7 -5
  191. data/lib/xmi/uml13/geometry.rb +15 -13
  192. data/lib/xmi/uml13/geometrybody.rb +7 -5
  193. data/lib/xmi/uml13/graphic_marker.rb +15 -13
  194. data/lib/xmi/uml13/graphic_markerbody.rb +7 -5
  195. data/lib/xmi/uml13/guard.rb +70 -68
  196. data/lib/xmi/uml13/guardexpression.rb +7 -5
  197. data/lib/xmi/uml13/guardtransition.rb +7 -5
  198. data/lib/xmi/uml13/instance.rb +85 -83
  199. data/lib/xmi/uml13/instanceattribute_link.rb +7 -5
  200. data/lib/xmi/uml13/instanceclassifier.rb +7 -5
  201. data/lib/xmi/uml13/instancelink_end.rb +7 -5
  202. data/lib/xmi/uml13/instancemessage_instance.rb +7 -5
  203. data/lib/xmi/uml13/instancemessage_instance2.rb +7 -5
  204. data/lib/xmi/uml13/instancemessage_instance3.rb +7 -5
  205. data/lib/xmi/uml13/instanceslot.rb +7 -5
  206. data/lib/xmi/uml13/interaction.rb +70 -68
  207. data/lib/xmi/uml13/interactioncontext.rb +7 -5
  208. data/lib/xmi/uml13/interactionmessage.rb +7 -5
  209. data/lib/xmi/uml13/interface.rb +113 -111
  210. data/lib/xmi/uml13/link.rb +70 -68
  211. data/lib/xmi/uml13/link_end.rb +74 -72
  212. data/lib/xmi/uml13/link_endassociation_end.rb +7 -5
  213. data/lib/xmi/uml13/link_endinstance.rb +7 -5
  214. data/lib/xmi/uml13/link_endlink.rb +7 -5
  215. data/lib/xmi/uml13/link_object.rb +90 -88
  216. data/lib/xmi/uml13/linkassociation.rb +7 -5
  217. data/lib/xmi/uml13/linklink_role.rb +7 -5
  218. data/lib/xmi/uml13/local_invocation.rb +86 -84
  219. data/lib/xmi/uml13/mapping.rb +15 -13
  220. data/lib/xmi/uml13/mappingbody.rb +7 -5
  221. data/lib/xmi/uml13/message.rb +89 -87
  222. data/lib/xmi/uml13/message_instance.rb +77 -75
  223. data/lib/xmi/uml13/message_instanceargument.rb +7 -5
  224. data/lib/xmi/uml13/message_instancereceiver.rb +7 -5
  225. data/lib/xmi/uml13/message_instancesender.rb +7 -5
  226. data/lib/xmi/uml13/message_instancespecification.rb +7 -5
  227. data/lib/xmi/uml13/messageaction.rb +7 -5
  228. data/lib/xmi/uml13/messageactivator.rb +7 -5
  229. data/lib/xmi/uml13/messageinteraction.rb +7 -5
  230. data/lib/xmi/uml13/messagemessage.rb +7 -5
  231. data/lib/xmi/uml13/messagemessage2.rb +7 -5
  232. data/lib/xmi/uml13/messagepredecessor.rb +7 -5
  233. data/lib/xmi/uml13/messagereceiver.rb +7 -5
  234. data/lib/xmi/uml13/messagesender.rb +7 -5
  235. data/lib/xmi/uml13/method.rb +87 -85
  236. data/lib/xmi/uml13/methodbody.rb +7 -5
  237. data/lib/xmi/uml13/methodspecification.rb +7 -5
  238. data/lib/xmi/uml13/model.rb +81 -79
  239. data/lib/xmi/uml13/model_element.rb +65 -63
  240. data/lib/xmi/uml13/model_element_owns_diagramowned_diagram.rb +7 -5
  241. data/lib/xmi/uml13/model_elementbehavior.rb +7 -5
  242. data/lib/xmi/uml13/model_elementbinding.rb +7 -5
  243. data/lib/xmi/uml13/model_elementcollaboration.rb +7 -5
  244. data/lib/xmi/uml13/model_elementconstraint.rb +7 -5
  245. data/lib/xmi/uml13/model_elementelement_reference.rb +7 -5
  246. data/lib/xmi/uml13/model_elementimplementation.rb +7 -5
  247. data/lib/xmi/uml13/model_elementname.rb +7 -5
  248. data/lib/xmi/uml13/model_elementnamespace.rb +7 -5
  249. data/lib/xmi/uml13/model_elementpartition.rb +7 -5
  250. data/lib/xmi/uml13/model_elementpresentation.rb +7 -5
  251. data/lib/xmi/uml13/model_elementprovision.rb +7 -5
  252. data/lib/xmi/uml13/model_elementrequirement.rb +7 -5
  253. data/lib/xmi/uml13/model_elementstereotype.rb +7 -5
  254. data/lib/xmi/uml13/model_elementtagged_value.rb +7 -5
  255. data/lib/xmi/uml13/model_elementtemplate.rb +7 -5
  256. data/lib/xmi/uml13/model_elementtemplate_parameter.rb +7 -5
  257. data/lib/xmi/uml13/model_elementview.rb +7 -5
  258. data/lib/xmi/uml13/model_elementvisibility.rb +6 -4
  259. data/lib/xmi/uml13/model_management.rb +18 -16
  260. data/lib/xmi/uml13/multiplicity_range.rb +18 -16
  261. data/lib/xmi/uml13/multiplicity_rangelower.rb +7 -5
  262. data/lib/xmi/uml13/multiplicity_rangeupper.rb +7 -5
  263. data/lib/xmi/uml13/namespace.rb +67 -65
  264. data/lib/xmi/uml13/namespaceowned_element.rb +175 -173
  265. data/lib/xmi/uml13/node.rb +116 -114
  266. data/lib/xmi/uml13/nodecomponent.rb +7 -5
  267. data/lib/xmi/uml13/object.rb +85 -83
  268. data/lib/xmi/uml13/object_flow_state.rb +92 -90
  269. data/lib/xmi/uml13/object_flow_statetype_state.rb +7 -5
  270. data/lib/xmi/uml13/object_set_expression.rb +18 -16
  271. data/lib/xmi/uml13/operation.rb +102 -100
  272. data/lib/xmi/uml13/operationcollaboration.rb +7 -5
  273. data/lib/xmi/uml13/operationconcurrency.rb +6 -4
  274. data/lib/xmi/uml13/operationis_polymorphic.rb +6 -4
  275. data/lib/xmi/uml13/operationmethod.rb +7 -5
  276. data/lib/xmi/uml13/operationoccurrence.rb +7 -5
  277. data/lib/xmi/uml13/operationspecification.rb +7 -5
  278. data/lib/xmi/uml13/package.rb +81 -79
  279. data/lib/xmi/uml13/packageelement_reference.rb +7 -5
  280. data/lib/xmi/uml13/parameter.rb +79 -77
  281. data/lib/xmi/uml13/parameterbehavioral_feature.rb +7 -5
  282. data/lib/xmi/uml13/parameterdefault_value.rb +15 -13
  283. data/lib/xmi/uml13/parameterkind.rb +6 -4
  284. data/lib/xmi/uml13/parametersignal.rb +7 -5
  285. data/lib/xmi/uml13/parametertype.rb +7 -5
  286. data/lib/xmi/uml13/partition.rb +71 -69
  287. data/lib/xmi/uml13/partitionactivity_model.rb +7 -5
  288. data/lib/xmi/uml13/partitioncontents.rb +7 -5
  289. data/lib/xmi/uml13/presentation.rb +22 -20
  290. data/lib/xmi/uml13/presentationgeometry.rb +7 -5
  291. data/lib/xmi/uml13/presentationmodel.rb +7 -5
  292. data/lib/xmi/uml13/presentationstyle.rb +7 -5
  293. data/lib/xmi/uml13/presentationview_element.rb +7 -5
  294. data/lib/xmi/uml13/primitive.rb +113 -111
  295. data/lib/xmi/uml13/procedure_expression.rb +18 -16
  296. data/lib/xmi/uml13/pseudo_state.rb +77 -75
  297. data/lib/xmi/uml13/pseudo_statekind.rb +6 -4
  298. data/lib/xmi/uml13/reception.rb +91 -89
  299. data/lib/xmi/uml13/receptionis_polymorphic.rb +6 -4
  300. data/lib/xmi/uml13/receptionsignal.rb +7 -5
  301. data/lib/xmi/uml13/receptionspecification.rb +7 -5
  302. data/lib/xmi/uml13/refinement.rb +81 -79
  303. data/lib/xmi/uml13/refinementmapping.rb +7 -5
  304. data/lib/xmi/uml13/request.rb +71 -69
  305. data/lib/xmi/uml13/requestaction.rb +7 -5
  306. data/lib/xmi/uml13/requestmessage_instance.rb +7 -5
  307. data/lib/xmi/uml13/return_action.rb +86 -84
  308. data/lib/xmi/uml13/send_action.rb +86 -84
  309. data/lib/xmi/uml13/signal.rb +96 -94
  310. data/lib/xmi/uml13/signal_event.rb +74 -72
  311. data/lib/xmi/uml13/signal_eventsignal.rb +7 -5
  312. data/lib/xmi/uml13/signaloccurrence.rb +7 -5
  313. data/lib/xmi/uml13/signalparameter.rb +7 -5
  314. data/lib/xmi/uml13/signalreception.rb +7 -5
  315. data/lib/xmi/uml13/simple_state.rb +89 -87
  316. data/lib/xmi/uml13/state.rb +89 -87
  317. data/lib/xmi/uml13/state_machine.rb +75 -73
  318. data/lib/xmi/uml13/state_machinecontext.rb +7 -5
  319. data/lib/xmi/uml13/state_machines.rb +50 -48
  320. data/lib/xmi/uml13/state_machinesubmachine_state.rb +7 -5
  321. data/lib/xmi/uml13/state_machinetop.rb +19 -17
  322. data/lib/xmi/uml13/state_machinetransitions.rb +7 -5
  323. data/lib/xmi/uml13/state_vertex.rb +74 -72
  324. data/lib/xmi/uml13/state_vertexincoming.rb +7 -5
  325. data/lib/xmi/uml13/state_vertexoutgoing.rb +7 -5
  326. data/lib/xmi/uml13/state_vertexparent.rb +7 -5
  327. data/lib/xmi/uml13/stateclassifier_in_state.rb +7 -5
  328. data/lib/xmi/uml13/statedeferred_event.rb +7 -5
  329. data/lib/xmi/uml13/stateentry.rb +7 -5
  330. data/lib/xmi/uml13/stateexit.rb +7 -5
  331. data/lib/xmi/uml13/stateinternal_transition.rb +7 -5
  332. data/lib/xmi/uml13/statestate_machine.rb +7 -5
  333. data/lib/xmi/uml13/stereotype.rb +95 -93
  334. data/lib/xmi/uml13/stereotypebase_class.rb +7 -5
  335. data/lib/xmi/uml13/stereotypeextended_element.rb +7 -5
  336. data/lib/xmi/uml13/stereotypeicon.rb +7 -5
  337. data/lib/xmi/uml13/stereotyperequired_tag.rb +7 -5
  338. data/lib/xmi/uml13/stereotypestereotype_constraint.rb +7 -5
  339. data/lib/xmi/uml13/structural_feature.rb +86 -84
  340. data/lib/xmi/uml13/structural_featurechangeable.rb +6 -4
  341. data/lib/xmi/uml13/structural_featuremultiplicity.rb +7 -5
  342. data/lib/xmi/uml13/structural_featuretarget_scope.rb +6 -4
  343. data/lib/xmi/uml13/structural_featuretype.rb +7 -5
  344. data/lib/xmi/uml13/structure.rb +113 -111
  345. data/lib/xmi/uml13/submachine_state.rb +88 -86
  346. data/lib/xmi/uml13/submachine_statestate_machine.rb +7 -5
  347. data/lib/xmi/uml13/subsystem.rb +115 -113
  348. data/lib/xmi/uml13/subsystemis_instantiable.rb +6 -4
  349. data/lib/xmi/uml13/tagged_value.rb +24 -22
  350. data/lib/xmi/uml13/tagged_valuemodel_element.rb +7 -5
  351. data/lib/xmi/uml13/tagged_valuestereotype.rb +7 -5
  352. data/lib/xmi/uml13/tagged_valuetag.rb +7 -5
  353. data/lib/xmi/uml13/tagged_valuevalue.rb +7 -5
  354. data/lib/xmi/uml13/terminate_action.rb +86 -84
  355. data/lib/xmi/uml13/time_event.rb +73 -71
  356. data/lib/xmi/uml13/time_eventduration.rb +7 -5
  357. data/lib/xmi/uml13/time_expression.rb +18 -16
  358. data/lib/xmi/uml13/trace.rb +79 -77
  359. data/lib/xmi/uml13/transition.rb +84 -82
  360. data/lib/xmi/uml13/transitioneffect.rb +7 -5
  361. data/lib/xmi/uml13/transitionguard.rb +7 -5
  362. data/lib/xmi/uml13/transitionsource.rb +7 -5
  363. data/lib/xmi/uml13/transitionstate.rb +7 -5
  364. data/lib/xmi/uml13/transitionstatemachine.rb +7 -5
  365. data/lib/xmi/uml13/transitiontarget.rb +7 -5
  366. data/lib/xmi/uml13/transitiontrigger.rb +7 -5
  367. data/lib/xmi/uml13/uninterpreted_action.rb +89 -87
  368. data/lib/xmi/uml13/uninterpreted_actionbody.rb +7 -5
  369. data/lib/xmi/uml13/usage.rb +79 -77
  370. data/lib/xmi/uml13/use_case.rb +116 -114
  371. data/lib/xmi/uml13/use_case_instance.rb +85 -83
  372. data/lib/xmi/uml13/use_caseextension_point.rb +7 -5
  373. data/lib/xmi/uml13/use_cases.rb +16 -14
  374. data/lib/xmi/uml13/view_element.rb +18 -16
  375. data/lib/xmi/uml13/view_elementmodel.rb +7 -5
  376. data/lib/xmi/uml13/view_elementpresentation.rb +7 -5
  377. data/lib/xmi/uml13/xm_iextension.rb +11 -9
  378. data/lib/xmi/uml13/xm_ireference.rb +6 -4
  379. data/lib/xmi/uml13.rb +2 -0
  380. data/lib/xmi/version.rb +1 -1
  381. data/lib/xmi.rb +10 -0
  382. data/xmi.gemspec +2 -2
  383. metadata +10 -22
  384. data/.github/workflows/main.yml +0 -27
data/lib/xmi/uml.rb CHANGED
@@ -4,8 +4,10 @@ module Xmi
4
4
  module Uml
5
5
  class AnnotatedElement < Shale::Mapper
6
6
  attribute :idref, Shale::Type::String
7
+
7
8
  xml do
8
9
  root "annotatedElement"
10
+
9
11
  map_attribute "idref", to: :idref, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
10
12
  end
11
13
  end
@@ -16,6 +18,7 @@ module Xmi
16
18
 
17
19
  xml do
18
20
  root "type"
21
+
19
22
  map_attribute "idref", to: :idref, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
20
23
  map_attribute "href", to: :href
21
24
  end
@@ -23,26 +26,36 @@ module Xmi
23
26
 
24
27
  class MemberEnd < Shale::Mapper
25
28
  attribute :idref, Shale::Type::String
29
+
26
30
  xml do
27
31
  root "memberEnd"
32
+
28
33
  map_attribute "idref", to: :idref, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
29
34
  end
30
35
  end
31
36
 
32
- # <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="extension_PhSVariable" name="extension_PhSVariable" type="PhSVariable" isComposite="true" lower="0" upper="1" memberEnd="extension_PhSVariable PhSVariable-base_Part"/>
37
+ module OwnedEndAttributes
38
+ def self.included(klass) # rubocop:disable Metrics/MethodLength
39
+ klass.class_eval do
40
+ attribute :type, Shale::Type::String
41
+ attribute :id, Shale::Type::String
42
+ attribute :association, Shale::Type::String
43
+ attribute :name, Shale::Type::String
44
+ attribute :uml_type, Uml::Type
45
+ attribute :member_end, MemberEnd
46
+ attribute :lower, Shale::Type::Integer
47
+ attribute :upper, Shale::Type::Integer
48
+ attribute :is_composite, Shale::Type::Boolean
49
+ end
50
+ end
51
+ end
52
+
33
53
  class OwnedEnd < Shale::Mapper
34
- attribute :type, Shale::Type::String
35
- attribute :id, Shale::Type::String
36
- attribute :association, Shale::Type::String
37
- attribute :name, Shale::Type::String
38
- attribute :uml_type, Uml::Type
39
- attribute :member_end, MemberEnd
40
- attribute :lower, Shale::Type::Integer
41
- attribute :upper, Shale::Type::Integer
42
- attribute :is_composite, Shale::Type::Boolean
54
+ include OwnedEndAttributes
43
55
 
44
56
  xml do
45
57
  root "ownedEnd"
58
+
46
59
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
47
60
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
48
61
  map_attribute "association", to: :association
@@ -55,21 +68,52 @@ module Xmi
55
68
  end
56
69
  end
57
70
 
58
- class UpperValue < Shale::Mapper
71
+ class OwnedEnd2013 < Shale::Mapper
72
+ include OwnedEndAttributes
73
+
74
+ xml do
75
+ root "ownedEnd"
76
+
77
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
78
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
79
+ map_attribute "association", to: :association
80
+ map_attribute "name", to: :name
81
+ map_attribute "memberEnd", to: :member_end
82
+ map_attribute "type", to: :uml_type
83
+ map_attribute "lower", to: :lower
84
+ map_attribute "upper", to: :upper
85
+ map_attribute "isComposite", to: :is_composite
86
+ end
87
+ end
88
+
89
+ class DefaultValue < Shale::Mapper
59
90
  attribute :type, Shale::Type::String
60
91
  attribute :id, Shale::Type::String
61
92
  attribute :value, Shale::Type::String
93
+
94
+ xml do
95
+ root "defaultValue"
96
+
97
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
98
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
99
+ map_attribute "value", to: :value
100
+ end
101
+ end
102
+
103
+ class UpperValue < DefaultValue
62
104
  xml do
63
105
  root "upperValue"
106
+
64
107
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
65
108
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
66
109
  map_attribute "value", to: :value
67
110
  end
68
111
  end
69
112
 
70
- class LowerValue < UpperValue
113
+ class LowerValue < DefaultValue
71
114
  xml do
72
115
  root "lowerValue"
116
+
73
117
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
74
118
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
75
119
  map_attribute "value", to: :value
@@ -83,27 +127,39 @@ module Xmi
83
127
 
84
128
  xml do
85
129
  root "ownedLiteral"
86
- map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
87
- map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
130
+
131
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
132
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
88
133
  map_attribute "name", to: :value
89
134
  end
90
135
  end
91
136
 
137
+ module OwnedAttributeAttributes
138
+ def self.included(klass)
139
+ klass.class_eval do
140
+ attribute :type, Shale::Type::String
141
+ attribute :id, Shale::Type::String
142
+ attribute :association, Shale::Type::String
143
+ attribute :name, Shale::Type::String
144
+ attribute :is_derived, Shale::Type::String
145
+ attribute :uml_type, Uml::Type
146
+ attribute :upper_value, UpperValue
147
+ attribute :lower_value, LowerValue
148
+ end
149
+ end
150
+ end
151
+
92
152
  class OwnedAttribute < Shale::Mapper
93
- attribute :type, Shale::Type::String
94
- attribute :id, Shale::Type::String
95
- attribute :association, Shale::Type::String
96
- attribute :name, Shale::Type::String
97
- attribute :uml_type, Uml::Type, collection: true
98
- attribute :upperValue, UpperValue
99
- attribute :lowerValue, LowerValue
153
+ include OwnedAttributeAttributes
100
154
 
101
155
  xml do
102
156
  root "ownedAttribute"
157
+
103
158
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
104
159
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
105
160
  map_attribute "association", to: :association
106
161
  map_attribute "name", to: :name
162
+ map_attribute "isDerived", to: :is_derived
107
163
 
108
164
  map_element "type", to: :uml_type
109
165
  map_element "upperValue", to: :upper_value
@@ -111,55 +167,205 @@ module Xmi
111
167
  end
112
168
  end
113
169
 
114
- class OwnedComment < Shale::Mapper
170
+ class OwnedAttribute2013 < Shale::Mapper
171
+ include OwnedAttributeAttributes
172
+
173
+ xml do
174
+ root "ownedAttribute"
175
+
176
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
177
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
178
+ map_attribute "association", to: :association
179
+ map_attribute "name", to: :name
180
+ map_attribute "isDerived", to: :is_derived
181
+
182
+ map_element "type", to: :uml_type
183
+ map_element "upperValue", to: :upper_value
184
+ map_element "lowerValue", to: :lower_value
185
+ end
186
+ end
187
+
188
+ class OwnedParameter < Shale::Mapper
189
+ attribute :id, Shale::Type::String
190
+ attribute :name, Shale::Type::String
115
191
  attribute :type, Shale::Type::String
192
+ attribute :direction, Shale::Type::String
193
+ attribute :upper_value, UpperValue
194
+ attribute :lower_value, LowerValue
195
+ attribute :default_value, DefaultValue
196
+
197
+ xml do
198
+ root "ownedParameter"
199
+
200
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
201
+ map_attribute "name", to: :name
202
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
203
+ map_attribute "direction", to: :direction
204
+
205
+ map_element "upperValue", to: :upper_value
206
+ map_element "lowerValue", to: :lower_value
207
+ map_element "defaultValue", to: :default_value
208
+ end
209
+ end
210
+
211
+ class Specification < Shale::Mapper
212
+ attribute :id, Shale::Type::String
213
+ attribute :type, Shale::Type::String
214
+ attribute :language, Shale::Type::String
215
+
216
+ xml do
217
+ root "specification"
218
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
219
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
220
+ map_attribute "language", to: :language
221
+ end
222
+ end
223
+
224
+ class Precondition < Shale::Mapper
116
225
  attribute :id, Shale::Type::String
117
- attribute :body, Shale::Type::String
118
- attribute :annotated_element, AnnotatedElement
226
+ attribute :name, Shale::Type::String
227
+ attribute :type, Shale::Type::String
228
+ attribute :specification, Specification
229
+
230
+ xml do
231
+ root "precondition"
232
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
233
+ map_attribute "name", to: :name
234
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
235
+ map_element "specification", to: :specification
236
+ end
237
+ end
238
+
239
+ class OwnedOperation < Shale::Mapper
240
+ attribute :id, Shale::Type::String
241
+ attribute :name, Shale::Type::String
242
+ attribute :owned_parameter, OwnedParameter, collection: true
243
+ attribute :precondition, Precondition
244
+ attribute :uml_type, Uml::Type, collection: true
245
+
246
+ xml do
247
+ root "ownedOperation"
248
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
249
+ map_attribute "name", to: :name
250
+ map_element "ownedParameter", to: :owned_parameter
251
+ map_element "precondition", to: :precondition
252
+ map_element "type", to: :uml_type
253
+ end
254
+ end
255
+
256
+ module OwnedCommentAttributes
257
+ def self.included(klass)
258
+ klass.class_eval do
259
+ attribute :type, Shale::Type::String
260
+ attribute :id, Shale::Type::String
261
+ attribute :body_element, Shale::Type::String
262
+ attribute :body_attribute, Shale::Type::String
263
+ attribute :annotated_attribute, Shale::Type::String
264
+ attribute :annotated_element, AnnotatedElement
265
+ end
266
+ end
267
+ end
268
+
269
+ class OwnedComment < Shale::Mapper
270
+ include OwnedCommentAttributes
119
271
 
120
272
  xml do
121
273
  root "ownedComment"
274
+
275
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
122
276
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
277
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
123
278
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
124
279
  map_attribute "name", to: :name
125
- map_attribute "annotatedElement", to: :annotated_element
280
+ map_attribute "body", to: :body_attribute
281
+ map_attribute "annotatedElement", to: :annotated_attribute
126
282
 
127
- map_element "body", to: :body
283
+ map_element "annotatedElement", to: :annotated_element, prefix: nil, namespace: nil
284
+ map_element "body", to: :body_element
128
285
  end
129
286
  end
130
287
 
288
+ class OwnedComment2013 < Shale::Mapper
289
+ include OwnedCommentAttributes
290
+
291
+ xml do
292
+ root "ownedComment"
293
+
294
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
295
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
296
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
297
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
298
+ map_attribute "name", to: :name
299
+ map_attribute "body", to: :body_attribute
300
+ map_attribute "annotatedElement", to: :annotated_attribute
301
+
302
+ map_element "annotatedElement", to: :annotated_element, prefix: nil, namespace: nil
303
+ map_element "body", to: :body_element
304
+ end
305
+ end
306
+
307
+ module AssociationGeneralizationAttributes
308
+ def self.included(klass)
309
+ klass.class_eval do
310
+ attribute :type, Shale::Type::String
311
+ attribute :id, Shale::Type::String
312
+ attribute :general, Shale::Type::String
313
+ end
314
+ end
315
+ end
131
316
 
132
- # <generalization xmi:type="uml:Generalization" xmi:id="ModelicaParameter_PhSConstant_generalization" general="PhSConstant"/>
133
317
  class AssociationGeneralization < Shale::Mapper
134
- attribute :type, Shale::Type::String
135
- attribute :id, Shale::Type::String
136
- attribute :general, Shale::Type::String
318
+ include AssociationGeneralizationAttributes
319
+
137
320
  xml do
138
321
  root "generalization"
322
+
139
323
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
140
324
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
141
325
  map_attribute "general", to: :general
142
326
  end
143
327
  end
144
328
 
329
+ class AssociationGeneralization2013 < Shale::Mapper
330
+ include AssociationGeneralizationAttributes
331
+
332
+ xml do
333
+ root "generalization"
334
+
335
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
336
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
337
+ map_attribute "general", to: :general
338
+ end
339
+ end
340
+
341
+ module PackagedElementAttributes
342
+ def self.included(klass)
343
+ klass.class_eval do
344
+ attribute :type, Shale::Type::String
345
+ attribute :id, Shale::Type::String
346
+ attribute :name, Shale::Type::String
347
+ attribute :member_end, MemberEnd
348
+ attribute :owned_literal, OwnedLiteral, collection: true
349
+ attribute :owned_operation, OwnedOperation, collection: true
350
+
351
+ # EA specific
352
+ attribute :supplier, Shale::Type::String
353
+ attribute :client, Shale::Type::String
354
+ end
355
+ end
356
+ end
357
+
145
358
  class PackagedElement < Shale::Mapper
146
- attribute :type, Shale::Type::String
147
- attribute :id, Shale::Type::String
148
- attribute :name, Shale::Type::String
149
- attribute :member_end, MemberEnd
150
- attribute :owned_comment, OwnedComment, collection: true
151
- attribute :owned_literal, OwnedLiteral, collection: true
359
+ include PackagedElementAttributes
360
+ attribute :packaged_element, PackagedElement, collection: true
152
361
  attribute :owned_end, OwnedEnd, collection: true
153
362
  attribute :owned_attribute, OwnedAttribute, collection: true
154
- attribute :packaged_element, PackagedElement, collection: true
363
+ attribute :owned_comment, OwnedComment, collection: true
155
364
  attribute :generalization, AssociationGeneralization, collection: true
156
365
 
157
- # EA specific
158
- attribute :supplier, Shale::Type::String
159
- attribute :client, Shale::Type::String
160
-
161
366
  xml do
162
367
  root "packagedElement"
368
+
163
369
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
164
370
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
165
371
  map_attribute "name", to: :name
@@ -174,6 +380,37 @@ module Xmi
174
380
  map_element "ownedEnd", to: :owned_end
175
381
  map_element "ownedLiteral", to: :owned_literal
176
382
  map_element "ownedAttribute", to: :owned_attribute
383
+ map_element "ownedOperation", to: :owned_operation
384
+ map_element "packagedElement", to: :packaged_element
385
+ end
386
+ end
387
+
388
+ class PackagedElement2013 < Shale::Mapper
389
+ include PackagedElementAttributes
390
+ attribute :packaged_element, PackagedElement2013, collection: true
391
+ attribute :owned_end, OwnedEnd2013, collection: true
392
+ attribute :owned_attribute, OwnedAttribute2013, collection: true
393
+ attribute :owned_comment, OwnedComment2013, collection: true
394
+ attribute :generalization, AssociationGeneralization2013, collection: true
395
+
396
+ xml do
397
+ root "packagedElement"
398
+
399
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
400
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
401
+ map_attribute "name", to: :name
402
+ map_attribute "memberEnd", to: :member_end
403
+
404
+ # EA specific
405
+ map_attribute "supplier", to: :supplier
406
+ map_attribute "client", to: :client
407
+
408
+ map_element "generalization", to: :generalization
409
+ map_element "ownedComment", to: :owned_comment
410
+ map_element "ownedEnd", to: :owned_end
411
+ map_element "ownedLiteral", to: :owned_literal
412
+ map_element "ownedAttribute", to: :owned_attribute
413
+ map_element "ownedOperation", to: :owned_operation
177
414
  map_element "packagedElement", to: :packaged_element
178
415
  end
179
416
  end
@@ -188,6 +425,7 @@ module Xmi
188
425
 
189
426
  xml do
190
427
  root "bounds"
428
+
191
429
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
192
430
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
193
431
  map_attribute "x", to: :x
@@ -205,6 +443,7 @@ module Xmi
205
443
 
206
444
  xml do
207
445
  root "waypoint"
446
+
208
447
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
209
448
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
210
449
  map_attribute "x", to: :x
@@ -212,7 +451,6 @@ module Xmi
212
451
  end
213
452
  end
214
453
 
215
- # <ownedElement xmi:type="umldi:UMLShape" xmi:id="EAID_C4D531A8_EF26_4b23_BE60_58B1C55534CE" modelElement="EAID_FB86C623_9125_4d6d_BE60_58B1C55534CE">
216
454
  class OwnedElement < Shale::Mapper
217
455
  attribute :type, Shale::Type::String
218
456
  attribute :id, Shale::Type::String
@@ -239,12 +477,20 @@ module Xmi
239
477
  end
240
478
  end
241
479
 
480
+ module DiagramAttributes
481
+ def self.included(klass)
482
+ klass.class_eval do
483
+ attribute :type, Shale::Type::String
484
+ attribute :id, Shale::Type::String
485
+ attribute :is_frame, Shale::Type::Boolean
486
+ attribute :model_element, Shale::Type::String
487
+ attribute :owned_element, OwnedElement, collection: true
488
+ end
489
+ end
490
+ end
491
+
242
492
  class Diagram < Shale::Mapper
243
- attribute :type, Shale::Type::String
244
- attribute :id, Shale::Type::String
245
- attribute :is_frame, Shale::Type::Boolean
246
- attribute :model_element, Shale::Type::String
247
- attribute :owned_element, OwnedElement, collection: true
493
+ include DiagramAttributes
248
494
 
249
495
  xml do
250
496
  root "Diagram"
@@ -255,13 +501,30 @@ module Xmi
255
501
  map_attribute "isFrame", to: :is_frame
256
502
  map_attribute "modelElement", to: :model_element
257
503
 
258
- map_element "ownedElement", to: :owned_element
504
+ map_element "ownedElement", to: :owned_element, namespace: nil, prefix: nil
505
+ end
506
+ end
507
+
508
+ class Diagram2013 < Shale::Mapper
509
+ include DiagramAttributes
510
+
511
+ xml do
512
+ root "Diagram"
513
+ namespace "http://www.omg.org/spec/UML/20131001/UMLDI", "umldi"
514
+
515
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
516
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
517
+ map_attribute "isFrame", to: :is_frame
518
+ map_attribute "modelElement", to: :model_element
519
+
520
+ map_element "ownedElement", to: :owned_element, namespace: nil, prefix: nil
259
521
  end
260
522
  end
261
523
 
262
524
  class ProfileApplicationAppliedProfile < Shale::Mapper
263
525
  attribute :type, Shale::Type::String
264
526
  attribute :href, Shale::Type::String
527
+
265
528
  xml do
266
529
  root "appliedProfile"
267
530
 
@@ -270,13 +533,11 @@ module Xmi
270
533
  end
271
534
  end
272
535
 
273
- # <profileApplication xmi:type="uml:ProfileApplication" xmi:id="profileap_thecustomprofile">
274
- # <appliedProfile xmi:type="uml:Profile" href="http://www.sparxsystems.com/profiles/thecustomprofile/1.0#thecustomprofile"/>
275
- # </profileApplication>
276
536
  class ProfileApplication < Shale::Mapper
277
537
  attribute :type, Shale::Type::String
278
538
  attribute :id, Shale::Type::String
279
539
  attribute :applied_profile, ProfileApplicationAppliedProfile
540
+
280
541
  xml do
281
542
  root "profileApplication"
282
543
 
@@ -287,120 +548,150 @@ module Xmi
287
548
  end
288
549
  end
289
550
 
551
+ class ImportedPackage < Shale::Mapper
552
+ attribute :href, Shale::Type::String
553
+
554
+ xml do
555
+ root "importedPackage"
556
+
557
+ map_attribute "href", to: :href, namespace: nil, prefix: nil
558
+ end
559
+ end
560
+
561
+ module PackageImportAttributes
562
+ def self.included(klass)
563
+ klass.class_eval do
564
+ attribute :id, Shale::Type::String
565
+ attribute :imported_package, ImportedPackage
566
+ end
567
+ end
568
+ end
569
+
290
570
  class PackageImport < Shale::Mapper
291
- attribute :id, Shale::Type::String
292
- attribute :imported_package, Shale::Type::String
571
+ include PackageImportAttributes
293
572
 
294
573
  xml do
295
574
  root "packageImport"
575
+
576
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
296
577
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
297
- map_element "importedPackage", to: :imported_package
578
+
579
+ map_element "importedPackage", to: :imported_package, namespace: nil, prefix: nil
298
580
  end
581
+ end
582
+
583
+ class PackageImport2013 < Shale::Mapper
584
+ include PackageImportAttributes
585
+
586
+ xml do
587
+ root "packageImport"
299
588
 
589
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
590
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
591
+
592
+ map_element "importedPackage", to: :imported_package, namespace: nil, prefix: nil
593
+ end
594
+ end
595
+
596
+ module UmlModelAttributes
597
+ def self.included(klass)
598
+ klass.class_eval do
599
+ attribute :type, Shale::Type::String
600
+ attribute :name, Shale::Type::String
601
+ attribute :profile_application, ProfileApplication, collection: true
602
+ end
603
+ end
300
604
  end
301
605
 
302
606
  class UmlModel < Shale::Mapper
303
- attribute :type, Shale::Type::String
304
- attribute :name, Shale::Type::String
607
+ include UmlModelAttributes
305
608
  attribute :packaged_element, PackagedElement, collection: true
306
609
  attribute :package_import, PackageImport, collection: true
307
610
  attribute :diagram, Diagram
308
- attribute :profile_application, ProfileApplication, collection: true
309
611
 
310
612
  xml do
311
613
  root "Model"
312
- # namespace "http://www.omg.org/spec/UML/20161101", "uml"
614
+ namespace "http://www.omg.org/spec/UML/20161101", "uml"
313
615
 
314
616
  map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
315
617
  map_attribute "name", to: :name
316
618
 
317
- map_element "packageImport", to: :package_import
318
- map_element "packagedElement", to: :packaged_element
319
- map_element "Diagram", to: :diagram, namespace: "http://www.omg.org/spec/UML/20161101/UMLDI",
320
- prefix: "umldi"
321
- map_element "profileApplication", to: :profile_application
322
-
323
- end
324
- end
325
-
326
- # <uml:Profile xmlns:uml="http://www.omg.org/spec/UML/20161101" xmlns:xmi="http://www.omg.org/spec/XMI/20161101" xmi:id="thecustomprofile" nsPrefix="thecustomprofile" name="thecustomprofile" metamodelReference="mmref01">
327
- # <ownedComment xmi:type="uml:Comment" xmi:id="comment01" annotatedElement="thecustomprofile">
328
- # <body> Version:1.0</body>
329
- # </ownedComment>
330
- # <packageImport xmi:id="mmref01">
331
- # <importedPackage href="http://www.omg.org/spec/UML/20161101"/>
332
- # </packageImport>
333
- # <packagedElement xmi:type="uml:Stereotype" xmi:id="edition" name="edition">
334
- # <ownedAttribute xmi:type="uml:Property" xmi:id="edition-base_Package" name="base_Package" association="Package_edition">
335
- # <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Package"/>
336
- # </ownedAttribute>
337
- # <ownedAttribute xmi:type="uml:Property" xmi:id="edition-edition" name="edition">
338
- # <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#String"/>
339
- # </ownedAttribute>
340
- # </packagedElement>
341
- # <packagedElement xmi:type="uml:Extension" xmi:id="Package_edition" name="A_Package_edition" memberEnd="extension_edition edition-base_Package">
342
- # <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="extension_edition" name="extension_edition" type="edition" isComposite="true" lower="0" upper="1" memberEnd="extension_edition edition-base_Package"/>
343
- # </packagedElement>
344
- # <packagedElement xmi:type="uml:Stereotype" xmi:id="number" name="number">
345
- # <ownedAttribute xmi:type="uml:Property" xmi:id="number-base_Package" name="base_Package" association="Package_number">
346
- # <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Package"/>
347
- # </ownedAttribute>
348
- # <ownedAttribute xmi:type="uml:Property" xmi:id="number-number" name="number">
349
- # <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#String"/>
350
- # </ownedAttribute>
351
- # </packagedElement>
352
- # <packagedElement xmi:type="uml:Extension" xmi:id="Package_number" name="A_Package_number" memberEnd="extension_number number-base_Package">
353
- # <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="extension_number" name="extension_number" type="number" isComposite="true" lower="0" upper="1" memberEnd="extension_number number-base_Package"/>
354
- # </packagedElement>
355
- # <packagedElement xmi:type="uml:Stereotype" xmi:id="yearVersion" name="yearVersion">
356
- # <ownedAttribute xmi:type="uml:Property" xmi:id="yearVersion-base_Package" name="base_Package" association="Package_yearVersion">
357
- # <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Package"/>
358
- # </ownedAttribute>
359
- # <ownedAttribute xmi:type="uml:Property" xmi:id="yearVersion-yearVersion" name="yearVersion">
360
- # <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#String"/>
361
- # </ownedAttribute>
362
- # </packagedElement>
363
- # <packagedElement xmi:type="uml:Extension" xmi:id="Package_yearVersion" name="A_Package_yearVersion" memberEnd="extension_yearVersion yearVersion-base_Package">
364
- # <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="extension_yearVersion" name="extension_yearVersion" type="yearVersion" isComposite="true" lower="0" upper="1" memberEnd="extension_yearVersion yearVersion-base_Package"/>
365
- # </packagedElement>
366
- # <packagedElement xmi:type="uml:Stereotype" xmi:id="publicationDate" name="publicationDate">
367
- # <ownedAttribute xmi:type="uml:Property" xmi:id="publicationDate-base_Package" name="base_Package" association="Package_publicationDate">
368
- # <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Package"/>
369
- # </ownedAttribute>
370
- # <ownedAttribute xmi:type="uml:Property" xmi:id="publicationDate-publicationDate" name="publicationDate">
371
- # <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#String"/>
372
- # </ownedAttribute>
373
- # </packagedElement>
374
- # <packagedElement xmi:type="uml:Extension" xmi:id="Package_publicationDate" name="A_Package_publicationDate" memberEnd="extension_publicationDate publicationDate-base_Package">
375
- # <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="extension_publicationDate" name="extension_publicationDate" type="publicationDate" isComposite="true" lower="0" upper="1" memberEnd="extension_publicationDate publicationDate-base_Package"/>
376
- # </packagedElement>
377
- # </uml:Profile>
619
+ map_element "packageImport", to: :package_import, namespace: nil, prefix: nil
620
+ map_element "packagedElement", to: :packaged_element, namespace: nil, prefix: nil
621
+ map_element "Diagram", to: :diagram, namespace: "http://www.omg.org/spec/UML/20161101/UMLDI", prefix: "umldi"
622
+ map_element "profileApplication", to: :profile_application, namespace: nil, prefix: nil
623
+ end
624
+ end
625
+
626
+ class UmlModel2013 < Shale::Mapper
627
+ include UmlModelAttributes
628
+ attribute :packaged_element, PackagedElement2013, collection: true
629
+ attribute :package_import, PackageImport2013, collection: true
630
+ attribute :diagram, Diagram2013
631
+
632
+ xml do
633
+ root "Model"
634
+ namespace "http://www.omg.org/spec/UML/20161101", "uml"
635
+
636
+ map_attribute "type", to: :type, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
637
+ map_attribute "name", to: :name
638
+
639
+ map_element "packageImport", to: :package_import, namespace: nil, prefix: nil
640
+ map_element "packagedElement", to: :packaged_element, namespace: nil, prefix: nil
641
+ map_element "Diagram", to: :diagram, namespace: "http://www.omg.org/spec/UML/20161101/UMLDI", prefix: "umldi"
642
+ map_element "profileApplication", to: :profile_application, namespace: nil, prefix: nil
643
+ end
644
+ end
645
+
646
+ module ProfileAttributes
647
+ def self.included(klass)
648
+ klass.class_eval do
649
+ attribute :packaged_element, PackagedElement, collection: true
650
+ attribute :package_import, PackageImport, collection: true
651
+ attribute :id, Shale::Type::String
652
+ attribute :name, Shale::Type::String
653
+ attribute :ns_prefix, Shale::Type::String
654
+
655
+ # Is this an EA thing?
656
+ attribute :metamodel_reference, Shale::Type::String
657
+ end
658
+ end
659
+ end
378
660
 
379
661
  class Profile < Shale::Mapper
662
+ include ProfileAttributes
380
663
  attribute :owned_comment, OwnedComment, collection: true
381
- attribute :packaged_element, PackagedElement, collection: true
382
- attribute :package_import, PackageImport, collection: true
383
- attribute :id, Shale::Type::String
384
- attribute :name, Shale::Type::String
385
- attribute :ns_prefix, Shale::Type::String
386
-
387
- # Is this an EA thing?
388
- attribute :metamodel_reference, Shale::Type::String
389
664
 
390
665
  xml do
391
666
  root "Profile"
392
- # namespace "http://www.omg.org/spec/UML/20161101", "uml"
393
667
 
394
668
  map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20161101", prefix: "xmi"
395
669
  map_attribute "name", to: :name
396
670
  map_attribute "metamodelReference", to: :metamodel_reference
397
671
  map_attribute "nsPrefix", to: :ns_prefix
398
672
 
399
- map_element 'ownedComment', to: :owned_comment
400
- map_element 'packagedElement', to: :packaged_element
401
- map_element "packageImport", to: :package_import
673
+ map_element "ownedComment", to: :owned_comment
674
+ map_element "packageImport", to: :package_import, namespace: nil, prefix: nil
675
+ map_element "packagedElement", to: :packaged_element
402
676
  end
403
677
  end
404
678
 
679
+ class Profile2013 < Shale::Mapper
680
+ include ProfileAttributes
681
+ attribute :owned_comment, OwnedComment2013, collection: true
682
+
683
+ xml do
684
+ root "Profile"
685
+
686
+ map_attribute "id", to: :id, namespace: "http://www.omg.org/spec/XMI/20131001", prefix: "xmi"
687
+ map_attribute "name", to: :name
688
+ map_attribute "metamodelReference", to: :metamodel_reference
689
+ map_attribute "nsPrefix", to: :ns_prefix
690
+
691
+ map_element "ownedComment", to: :owned_comment
692
+ map_element "packageImport", to: :package_import, namespace: nil, prefix: nil
693
+ map_element "packagedElement", to: :packaged_element
694
+ end
695
+ end
405
696
  end
406
697
  end