xmi 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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 +424 -133
  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
305
- attribute :packaged_element, PackagedElement, collection: true
306
- attribute :package_import, PackageImport, collection: true
607
+ include UmlModelAttributes
608
+ attribute :packaged_element, PackagedElement2013, collection: true
609
+ attribute :package_import, PackageImport2013, 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