lutaml 0.10.19 → 0.11.2

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 (662) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +8 -1
  3. data/CLAUDE.md +26 -19
  4. data/Gemfile +14 -10
  5. data/Rakefile +6 -4
  6. data/lib/lutaml/version.rb +1 -1
  7. data/lib/lutaml.rb +3 -9
  8. data/lutaml.gemspec +2 -18
  9. metadata +5 -892
  10. data/Makefile +0 -2
  11. data/config/diagram_styles.yml +0 -200
  12. data/config/model_transformations.yml +0 -266
  13. data/config/package_metadata.example.yml +0 -58
  14. data/config/qea_schema.yml +0 -1024
  15. data/config/static_site.yml +0 -166
  16. data/examples/UML_EA.DTD +0 -6856
  17. data/examples/lur/20251010_current_plateau_v5.1.lur +0 -0
  18. data/examples/lur/basic.lur +0 -0
  19. data/examples/lur/test-output.lur +0 -0
  20. data/examples/lur/test.lur +0 -0
  21. data/examples/lur_basic_usage.rb +0 -220
  22. data/examples/lur_cli_workflow.rb +0 -262
  23. data/examples/lur_statistics.rb +0 -325
  24. data/examples/qea/20251010_current_plateau_v5.1.qea +0 -0
  25. data/examples/qea/ArcGISWorkspace_template.qea +0 -0
  26. data/examples/qea/README_qea_parser.adoc +0 -230
  27. data/examples/qea/UmlModel_template.qea +0 -0
  28. data/examples/qea/basic.qea +0 -0
  29. data/examples/qea/simple.qea +0 -0
  30. data/examples/qea/simple_example.qea +0 -0
  31. data/examples/qea/test.qea +0 -0
  32. data/examples/xmi/20251010_current_plateau_v5.1.xmi +0 -118121
  33. data/examples/xmi/ArcGISWorkspace_template.xmi +0 -1467
  34. data/examples/xmi/Images/EAID_0016F797_D055_4717_AF1A_606413D0A166.svg +0 -158
  35. data/examples/xmi/Images/EAID_00C5C772_5A03_434f_BF30_AC37542A1AAC.svg +0 -659
  36. data/examples/xmi/Images/EAID_0114FD24_9E58_4664_98CD_71305B59AD11.svg +0 -411
  37. data/examples/xmi/Images/EAID_01661E1B_31B6_4167_BCCF_A00678FB4EA2.svg +0 -102
  38. data/examples/xmi/Images/EAID_039FE004_5408_4fc0_89AA_EB319E4F61C7.svg +0 -169
  39. data/examples/xmi/Images/EAID_04EE9625_17A0_4721_BC71_21756DB21D06.svg +0 -403
  40. data/examples/xmi/Images/EAID_05FF9417_1619_4170_B0C9_55AA6B988EF1.svg +0 -175
  41. data/examples/xmi/Images/EAID_09853FB2_AF8A_432f_94C5_6C47461BD937.svg +0 -360
  42. data/examples/xmi/Images/EAID_09927B7F_A657_4819_99E5_AC9DC99227D9.svg +0 -195
  43. data/examples/xmi/Images/EAID_09AF6B8A_557C_43bc_BBB0_47C1E9401EF3.svg +0 -218
  44. data/examples/xmi/Images/EAID_0BE81AC5_031B_4973_A9A0_223CCD92BAA1.svg +0 -471
  45. data/examples/xmi/Images/EAID_0EDEA6EF_4DC8_4979_BB80_28B1B9EBD1D4.svg +0 -56
  46. data/examples/xmi/Images/EAID_0F413534_6AD2_48bc_B4AF_8699D530D91D.svg +0 -262
  47. data/examples/xmi/Images/EAID_1321F39B_AD67_47b5_B5C3_3A42BBFCBDF9.svg +0 -286
  48. data/examples/xmi/Images/EAID_13E09C71_99E7_40b4_B72D_48AF6379BC2E.svg +0 -164
  49. data/examples/xmi/Images/EAID_144955D8_CB4E_4b59_BB0C_E549F7F84943.svg +0 -66
  50. data/examples/xmi/Images/EAID_14E9F5FD_F6CD_4f48_B1CD_F5A40C6D8E83.svg +0 -95
  51. data/examples/xmi/Images/EAID_157826AA_96A7_4278_89A6_94BD0F31409A.svg +0 -63
  52. data/examples/xmi/Images/EAID_159E9DA0_7A54_4817_B72A_401C750F675D.svg +0 -306
  53. data/examples/xmi/Images/EAID_17BC8309_8051_492b_BE87_61CCFE83DB16.svg +0 -45
  54. data/examples/xmi/Images/EAID_1A10EB6D_E2E5_42a6_A31E_B293D93FD07E.svg +0 -193
  55. data/examples/xmi/Images/EAID_1A290AFD_CE96_46a2_8351_A986D77CC727.svg +0 -444
  56. data/examples/xmi/Images/EAID_1B2D9309_C66B_492a_995C_95B2B02E0D7C.svg +0 -168
  57. data/examples/xmi/Images/EAID_1DE6B973_CE8A_416f_909B_54CEA1E5944E.svg +0 -10
  58. data/examples/xmi/Images/EAID_204F4ACC_2230_4c8d_9861_EF5A6844B712.svg +0 -60
  59. data/examples/xmi/Images/EAID_227300E2_4F4B_4955_83B9_FA626CE8680B.svg +0 -188
  60. data/examples/xmi/Images/EAID_22C24D4C_4894_480a_B113_0CB034CB59E9.svg +0 -426
  61. data/examples/xmi/Images/EAID_234BC4F5_8100_4969_BDCB_A24E0E641F23.svg +0 -169
  62. data/examples/xmi/Images/EAID_24446BFC_9FEB_4935_8970_65A4C562A93F.svg +0 -277
  63. data/examples/xmi/Images/EAID_24E8A45C_C99F_49b7_860A_9CF65FF76C76.svg +0 -575
  64. data/examples/xmi/Images/EAID_272F3181_4300_48b7_98A0_A8CFD12B1A72.svg +0 -255
  65. data/examples/xmi/Images/EAID_292E0D94_392C_4da6_A0B5_841501FAE50A.svg +0 -183
  66. data/examples/xmi/Images/EAID_29DD0967_ADAB_4abb_99C5_544821F5E7DA.svg +0 -10
  67. data/examples/xmi/Images/EAID_2A339928_E5EF_4ed2_9E5D_CC2CA5CF248B.svg +0 -310
  68. data/examples/xmi/Images/EAID_2A5E0832_06BE_4381_85D4_9B00E4F95575.svg +0 -155
  69. data/examples/xmi/Images/EAID_2AAB709F_EFCE_496f_8AFE_92809D66A0A9.svg +0 -81
  70. data/examples/xmi/Images/EAID_2C8DD882_8DEA_4065_89F8_DDA796AA0C85.svg +0 -520
  71. data/examples/xmi/Images/EAID_2E98EA19_37D8_4b70_BDCE_CFEE4FA800B0.svg +0 -173
  72. data/examples/xmi/Images/EAID_30D62231_110F_44e8_9C06_6FCDCBA53A09.svg +0 -722
  73. data/examples/xmi/Images/EAID_3206D3FD_1FC4_41c7_8D00_36DB908E9319.svg +0 -181
  74. data/examples/xmi/Images/EAID_3452CC53_9ACB_44eb_9C9D_B90CF862F284.svg +0 -92
  75. data/examples/xmi/Images/EAID_348EE46E_ABD9_40b0_82A1_0285E75BDC52.svg +0 -187
  76. data/examples/xmi/Images/EAID_34FF671B_CFDC_47ad_91DF_ECA6D8358180.svg +0 -217
  77. data/examples/xmi/Images/EAID_359DD694_0100_4bdf_AD5F_712D97E9C69B.svg +0 -157
  78. data/examples/xmi/Images/EAID_35DE714C_49A8_490e_913A_56F39EF317F9.svg +0 -180
  79. data/examples/xmi/Images/EAID_360C79F1_8EDF_41db_A069_DECDC55625BC.svg +0 -31
  80. data/examples/xmi/Images/EAID_36913C58_FF35_4ba2_A04B_9A4824E24609.svg +0 -166
  81. data/examples/xmi/Images/EAID_372F7F7B_57ED_469a_A640_70DB578B3C56.svg +0 -361
  82. data/examples/xmi/Images/EAID_37AC19B9_8433_4fee_A326_763170D54D06.svg +0 -32
  83. data/examples/xmi/Images/EAID_38170608_32B5_4a6f_A68D_A0D7C0C9D019.svg +0 -234
  84. data/examples/xmi/Images/EAID_3A77A5D0_4E1B_4116_8AAD_407FC422B47F.svg +0 -183
  85. data/examples/xmi/Images/EAID_3B8BD087_1683_46b1_8D0D_6F839C46C578.svg +0 -42
  86. data/examples/xmi/Images/EAID_3DC20801_AE8B_4e76_B08C_F574E8A90E13.svg +0 -192
  87. data/examples/xmi/Images/EAID_3DE28C70_C6D4_406c_B49F_EEF52148C8C1.svg +0 -124
  88. data/examples/xmi/Images/EAID_458E093C_BA2B_4292_BEC4_37511C163DDC.svg +0 -140
  89. data/examples/xmi/Images/EAID_45F9B1F7_E568_47c9_B229_953BC2E707E4.svg +0 -266
  90. data/examples/xmi/Images/EAID_46B3041A_8C23_46e6_8E14_ADE7012274C5.svg +0 -80
  91. data/examples/xmi/Images/EAID_47E4600F_CEC9_4245_9BF5_EE38007A9DDB.svg +0 -584
  92. data/examples/xmi/Images/EAID_4881CEEE_792C_4cb0_BEA7_54333B643D0A.svg +0 -155
  93. data/examples/xmi/Images/EAID_48D364F0_DCA4_41e8_B4D4_509B3023B969.svg +0 -17
  94. data/examples/xmi/Images/EAID_4DBDAB9E_4C1C_4cb1_A767_06BD743A50A7.svg +0 -78
  95. data/examples/xmi/Images/EAID_4EB75007_B31D_4f2c_8855_7E9D3A3B17F4.svg +0 -454
  96. data/examples/xmi/Images/EAID_4F421236_FCF3_4aae_B22A_C7E6A5EFBAC7.svg +0 -81
  97. data/examples/xmi/Images/EAID_4FC1D352_2102_4b73_BCB0_1410B29C6BD7.svg +0 -379
  98. data/examples/xmi/Images/EAID_4FE346EA_01E1_4b30_8BE6_BB32EA191E47.svg +0 -126
  99. data/examples/xmi/Images/EAID_5038EEE3_7DD0_4cca_9829_364E044D37E8.svg +0 -199
  100. data/examples/xmi/Images/EAID_508A37DC_9378_4f5a_BD96_48F4D24E03A5.svg +0 -162
  101. data/examples/xmi/Images/EAID_516DA1A2_F0EC_415c_9664_E4CA54E7F05C.svg +0 -136
  102. data/examples/xmi/Images/EAID_52A1DBD3_D3DA_4b6d_8F96_FC6F39F64242.svg +0 -161
  103. data/examples/xmi/Images/EAID_575E87BA_32E9_4a84_AA4E_0EFDFC5D4C07.svg +0 -71
  104. data/examples/xmi/Images/EAID_57E0F1A0_6C72_47ef_B922_B806F9A875E8.svg +0 -209
  105. data/examples/xmi/Images/EAID_5957C373_3FC1_482f_8F35_D809153A17F5.svg +0 -123
  106. data/examples/xmi/Images/EAID_59A66AE2_412C_48a6_BFC7_EA56CF11D269.svg +0 -218
  107. data/examples/xmi/Images/EAID_5A43833E_680B_4a90_8931_0C902304E029.svg +0 -236
  108. data/examples/xmi/Images/EAID_5D6DB5A0_5047_4bac_9E60_69904A60B56D.svg +0 -353
  109. data/examples/xmi/Images/EAID_5DA1E7A7_8E59_4803_A831_E9F3EC27328F.svg +0 -242
  110. data/examples/xmi/Images/EAID_5E2C1E2A_82A8_47f4_B2ED_1398D72BFCFD.svg +0 -246
  111. data/examples/xmi/Images/EAID_6052620C_4BD5_49f6_A21C_AD7E6DCA2795.svg +0 -290
  112. data/examples/xmi/Images/EAID_6481E2CC_35A6_43b0_88D4_10A667A2BC2D.svg +0 -60
  113. data/examples/xmi/Images/EAID_660C7D03_A26C_4977_A7BA_9D0A773DA811.svg +0 -318
  114. data/examples/xmi/Images/EAID_671F3C3D_35B6_4514_B5B6_DD7E84925493.svg +0 -24
  115. data/examples/xmi/Images/EAID_676B9C9A_D85F_4d2f_A46B_73F02090DC87.svg +0 -127
  116. data/examples/xmi/Images/EAID_6797FEFA_5801_48e4_8B9C_3C824C0E165D.svg +0 -412
  117. data/examples/xmi/Images/EAID_6807F4EE_18EF_4e7e_ACCF_D5BD323AFDE9.svg +0 -130
  118. data/examples/xmi/Images/EAID_69E81E34_CF28_4c7f_A48F_5941BA85CEE3.svg +0 -96
  119. data/examples/xmi/Images/EAID_6A3C55E8_3C3C_4f3a_8AAC_0299C5B23070.svg +0 -10
  120. data/examples/xmi/Images/EAID_6BAC333E_E2C2_42c7_8DDF_6B4FA0FFC03B.svg +0 -143
  121. data/examples/xmi/Images/EAID_6D0349D5_3F1B_4b28_82D2_910743DEB5E5.svg +0 -114
  122. data/examples/xmi/Images/EAID_6E95B74E_8A09_4698_9E9E_23BCFD2CE194.svg +0 -37
  123. data/examples/xmi/Images/EAID_70C77F92_5614_4b22_8C8E_67859F59D8FD.svg +0 -254
  124. data/examples/xmi/Images/EAID_71F9216B_E7A7_4083_B08E_6C71B57F3A1F.svg +0 -187
  125. data/examples/xmi/Images/EAID_73025C5A_08FC_47ff_AB2F_C7F79CF54B41.svg +0 -145
  126. data/examples/xmi/Images/EAID_74C974B6_6D07_425d_B7AC_C8899E3B4967.svg +0 -76
  127. data/examples/xmi/Images/EAID_7504FCD2_524C_4e7d_BAE4_4E58A8A8A12C.svg +0 -196
  128. data/examples/xmi/Images/EAID_78030266_3603_4747_9D75_03D16614BE7D.svg +0 -35
  129. data/examples/xmi/Images/EAID_785226C1_12B1_4104_A4C1_F19B70B9FB71.svg +0 -348
  130. data/examples/xmi/Images/EAID_7854470F_26B8_4d3c_AFDF_C05BCE6ED0CD.svg +0 -72
  131. data/examples/xmi/Images/EAID_794F4A8F_18CA_4e9f_8477_A6F0E5ED22D4.svg +0 -187
  132. data/examples/xmi/Images/EAID_7A24839E_C8AE_424d_B7D2_6DA16DC813E7.svg +0 -114
  133. data/examples/xmi/Images/EAID_7A3649FD_E960_4ae6_B9B1_A9001C066AE7.svg +0 -181
  134. data/examples/xmi/Images/EAID_7B2C6765_AB68_439a_87F3_DAC323CB2AF5.svg +0 -196
  135. data/examples/xmi/Images/EAID_7C44AC09_27C1_47b3_9A85_88EC71C081FF.svg +0 -55
  136. data/examples/xmi/Images/EAID_7CE102CA_97C1_4cac_BD3B_0500D3712D2A.svg +0 -195
  137. data/examples/xmi/Images/EAID_7D960BD8_65D8_4934_9C11_4EF860DD8FBA.svg +0 -90
  138. data/examples/xmi/Images/EAID_80939C98_A456_48c3_BCEA_4B72851F2DF6.svg +0 -174
  139. data/examples/xmi/Images/EAID_812FE862_76ED_44f0_B678_7A4601B395CF.svg +0 -142
  140. data/examples/xmi/Images/EAID_81B76F5B_9D64_4bbf_8AC8_34234FB87533.svg +0 -740
  141. data/examples/xmi/Images/EAID_84352F1A_195B_411b_9552_5BFC40BF90B5.svg +0 -105
  142. data/examples/xmi/Images/EAID_846DD800_139C_4d47_A1DF_3FB1AC5D130F.svg +0 -554
  143. data/examples/xmi/Images/EAID_84A9C65B_FD6D_4bb5_818F_E8C35FF5BCD1.svg +0 -228
  144. data/examples/xmi/Images/EAID_853674F5_7DC9_4aae_809B_5728098B5D5B.svg +0 -154
  145. data/examples/xmi/Images/EAID_860CBBFB_2F27_408f_9144_751F9D1F487F.svg +0 -273
  146. data/examples/xmi/Images/EAID_87476527_7B9B_4b92_967E_3D38365470CA.svg +0 -239
  147. data/examples/xmi/Images/EAID_87DAE930_5069_4c58_AC65_4B0B2C0F32C8.svg +0 -10
  148. data/examples/xmi/Images/EAID_88AF6BD7_BC34_406f_BB59_47CFAB4A7D5D.svg +0 -116
  149. data/examples/xmi/Images/EAID_88D0CB44_20D0_44fc_A6E3_B663332EF401.svg +0 -200
  150. data/examples/xmi/Images/EAID_8BB1CA0C_C003_4678_973B_A1C3308E021D.svg +0 -136
  151. data/examples/xmi/Images/EAID_8DAB169F_D189_4320_A0F5_4443E3297F0E.svg +0 -181
  152. data/examples/xmi/Images/EAID_8FD488EF_BAAB_40ec_A7ED_F7CC831D546E.svg +0 -324
  153. data/examples/xmi/Images/EAID_90BCA409_BB45_42c5_AFA5_45FE3D995904.svg +0 -342
  154. data/examples/xmi/Images/EAID_926AFE38_01FA_469e_B6AA_ED5F4D62B66F.svg +0 -105
  155. data/examples/xmi/Images/EAID_92AB0FD0_B0FB_4ceb_8EAE_66B6600D31D7.svg +0 -681
  156. data/examples/xmi/Images/EAID_92C43670_3057_47f1_A576_C60843FF3D26.svg +0 -136
  157. data/examples/xmi/Images/EAID_93F63576_BE01_4cd8_8A91_C674FF77FC3D.svg +0 -718
  158. data/examples/xmi/Images/EAID_9400D9BC_05A5_41fc_83F7_02E5C67F9718.svg +0 -487
  159. data/examples/xmi/Images/EAID_95246DCF_1C09_4a16_9512_98000F56B3D8.svg +0 -292
  160. data/examples/xmi/Images/EAID_9994BF62_51E2_42cd_BB35_16C537B6718A.svg +0 -715
  161. data/examples/xmi/Images/EAID_9AAD6C21_B1E7_4472_B64A_FB5E3569D970.svg +0 -116
  162. data/examples/xmi/Images/EAID_9BD7189A_877B_4ca9_B42C_817DEF144FB2.svg +0 -284
  163. data/examples/xmi/Images/EAID_9DA6C553_94FC_4204_83AD_ECC4B45A53EF.svg +0 -159
  164. data/examples/xmi/Images/EAID_9EE6A41B_5FAA_4c89_B98F_732059778630.svg +0 -10
  165. data/examples/xmi/Images/EAID_9F1A4B54_46F6_435c_9529_E43E54CF6050.svg +0 -172
  166. data/examples/xmi/Images/EAID_9FE1EA7B_4CEF_4976_A281_93A94315BD84.svg +0 -153
  167. data/examples/xmi/Images/EAID_A0695647_6172_4262_8C30_67441399609C.svg +0 -290
  168. data/examples/xmi/Images/EAID_A081C63E_D6F2_41a7_A99C_307836754AFA.svg +0 -149
  169. data/examples/xmi/Images/EAID_A24E2778_5AD9_44f2_AB8F_5CD3913477D6.svg +0 -194
  170. data/examples/xmi/Images/EAID_A264F089_F9B3_406c_A3A8_FF34903797D3.svg +0 -143
  171. data/examples/xmi/Images/EAID_A282E5D1_2A13_4e7f_BC76_5D086DD4A577.svg +0 -357
  172. data/examples/xmi/Images/EAID_A3BCE1D6_9DB5_4272_A020_4C0E194B99CC.svg +0 -171
  173. data/examples/xmi/Images/EAID_A56E3818_D1B8_4b63_B69E_FBAC4A8AF482.svg +0 -218
  174. data/examples/xmi/Images/EAID_A57215D5_75C5_4532_BCF4_264A77CD62F1.svg +0 -204
  175. data/examples/xmi/Images/EAID_A59065AF_9669_486c_9582_9693177CFC7F.svg +0 -263
  176. data/examples/xmi/Images/EAID_A759374D_589A_488c_99EF_537ACB9B1FF9.svg +0 -398
  177. data/examples/xmi/Images/EAID_A7B25F46_F18A_4373_B16D_8C6AC0B868B0.svg +0 -174
  178. data/examples/xmi/Images/EAID_A9FE9E6F_A5F4_47e5_A6BA_26E22C7346B6.svg +0 -310
  179. data/examples/xmi/Images/EAID_AA62CDEB_55EC_498d_B326_4AA2C9AF6A05.svg +0 -144
  180. data/examples/xmi/Images/EAID_AAF52AF6_F7F9_4005_AE46_8920847BEA03.svg +0 -144
  181. data/examples/xmi/Images/EAID_AB281AC1_7CB8_404a_8124_34343DDD84E2.svg +0 -198
  182. data/examples/xmi/Images/EAID_AB7F1FDF_A66B_42a1_B8A3_7F594BAAD508.svg +0 -143
  183. data/examples/xmi/Images/EAID_AC2191E3_76E3_40b2_9E21_0E0B9B5277D2.svg +0 -114
  184. data/examples/xmi/Images/EAID_AD451676_A7C8_4c6a_A925_A9B9CA344142.svg +0 -339
  185. data/examples/xmi/Images/EAID_ADBA40A1_9375_4c1b_9938_0990612EB615.svg +0 -429
  186. data/examples/xmi/Images/EAID_ADC8773C_1B27_48ac_BAC1_14C1C919FAF6.svg +0 -245
  187. data/examples/xmi/Images/EAID_AE0718DF_AF69_4ea1_A099_E20028FE40A1.svg +0 -173
  188. data/examples/xmi/Images/EAID_B0DDB85D_A00C_4a7f_8C06_CCA15E5E4FE5.svg +0 -31
  189. data/examples/xmi/Images/EAID_B27ED282_D5E5_4f33_8AC1_62802F9E0B35.svg +0 -256
  190. data/examples/xmi/Images/EAID_B3AFECCB_17DD_44d6_8A44_2C38D9A64C0B.svg +0 -95
  191. data/examples/xmi/Images/EAID_B3B6C5B1_278E_4714_8244_B6C28B66AB50.svg +0 -176
  192. data/examples/xmi/Images/EAID_B53E76CD_A0F2_4e2f_B3AB_796D85964EF2.svg +0 -179
  193. data/examples/xmi/Images/EAID_B55D6E67_0BDD_4163_B359_11A6FBA89C74.svg +0 -207
  194. data/examples/xmi/Images/EAID_B58D1A53_E860_41a3_8352_11C274093E83.svg +0 -189
  195. data/examples/xmi/Images/EAID_B62C02B3_69DB_49e9_8089_4EE398BDE666.svg +0 -165
  196. data/examples/xmi/Images/EAID_BC008774_B539_4150_8174_B675989053D0.svg +0 -22
  197. data/examples/xmi/Images/EAID_BC1F7E00_082D_4a26_922B_3967A8D66859.svg +0 -266
  198. data/examples/xmi/Images/EAID_BDA613D8_402A_475a_AA15_683D88FD3D23.svg +0 -183
  199. data/examples/xmi/Images/EAID_C028B286_4C85_47d8_B6D5_80B28F556E82.svg +0 -303
  200. data/examples/xmi/Images/EAID_C173A6F4_1D1B_400e_AD8C_64FFF7CD5BE5.svg +0 -178
  201. data/examples/xmi/Images/EAID_C1834072_CADC_4ce4_B0FC_8284AE5CF4A4.svg +0 -158
  202. data/examples/xmi/Images/EAID_C1EC985B_5CBD_4e91_8661_EB4EF23781D9.svg +0 -286
  203. data/examples/xmi/Images/EAID_C31C1314_B679_4413_B8FE_A2CD584FC128.svg +0 -305
  204. data/examples/xmi/Images/EAID_C37CFBD6_69BA_42fb_9AC7_2D329D931BCF.svg +0 -171
  205. data/examples/xmi/Images/EAID_C857C934_306F_463a_87D5_257CB225ECFE.svg +0 -174
  206. data/examples/xmi/Images/EAID_C96797DE_2238_42d3_896A_9F92500270ED.svg +0 -180
  207. data/examples/xmi/Images/EAID_C96CBC24_B20E_459a_8F9D_75B61CDCB89F.svg +0 -656
  208. data/examples/xmi/Images/EAID_CACB523D_56A5_4f05_B3C2_51BB18F380FD.svg +0 -158
  209. data/examples/xmi/Images/EAID_CB34B578_101B_48b4_9271_214FFEA6A83A.svg +0 -409
  210. data/examples/xmi/Images/EAID_CBBD6CF4_0A1E_4406_9930_89DE43527910.svg +0 -361
  211. data/examples/xmi/Images/EAID_CC06A828_3750_472f_8DB2_C2E0863FCE17.svg +0 -96
  212. data/examples/xmi/Images/EAID_CD5CF053_1772_4a0f_962D_B17054D8EEAA.svg +0 -173
  213. data/examples/xmi/Images/EAID_CE440B5A_9534_4c75_9BA5_50862BB396C2.svg +0 -97
  214. data/examples/xmi/Images/EAID_CE4734FC_7986_4b3a_807F_A5B2C7EDE9E4.svg +0 -193
  215. data/examples/xmi/Images/EAID_D14AA320_9D41_4366_8739_9C2C21F96AE1.svg +0 -32
  216. data/examples/xmi/Images/EAID_D2FA55D3_C733_4a4d_92D0_0BC7AC0BB5BC.svg +0 -108
  217. data/examples/xmi/Images/EAID_D351FC34_FB03_488d_ADA4_BDB93DA9CB02.svg +0 -49
  218. data/examples/xmi/Images/EAID_D368FDF3_BDC5_4718_A701_351C8587A376.svg +0 -592
  219. data/examples/xmi/Images/EAID_D4DA8C48_3998_450d_87C4_9D65C9FECDB4.svg +0 -42
  220. data/examples/xmi/Images/EAID_D5464ECF_290E_4b2b_A6C4_25BE80F886CB.svg +0 -76
  221. data/examples/xmi/Images/EAID_D55235B0_61E9_461a_8379_2B8BF2403BE2.svg +0 -147
  222. data/examples/xmi/Images/EAID_D555ED73_F010_45d7_8A53_45A33C64C249.svg +0 -318
  223. data/examples/xmi/Images/EAID_D7AAC526_267E_45a0_A853_3207F02363F8.svg +0 -45
  224. data/examples/xmi/Images/EAID_D998B20D_A875_4ef8_A9CE_996BE56602BD.svg +0 -158
  225. data/examples/xmi/Images/EAID_DBFA8B39_F5B7_4c0e_9552_19AEAE5BA64E.svg +0 -200
  226. data/examples/xmi/Images/EAID_DE47A47D_E7BE_4e6f_BA81_F789EE8CFE72.svg +0 -61
  227. data/examples/xmi/Images/EAID_DFBB1072_8EC5_4384_8241_7EDF4B6B888B.svg +0 -78
  228. data/examples/xmi/Images/EAID_E325B9D8_E955_4aed_8125_63167BD40320.svg +0 -67
  229. data/examples/xmi/Images/EAID_E32D9D02_CAE9_4a47_92A8_3290EDCD6E6D.svg +0 -79
  230. data/examples/xmi/Images/EAID_E3B28611_7857_458a_B0BC_736E777B88EC.svg +0 -194
  231. data/examples/xmi/Images/EAID_E43C37EC_1176_4d2e_8B98_B6F3DFF6A092.svg +0 -96
  232. data/examples/xmi/Images/EAID_E591C1CF_7F35_4160_8A72_DFA097AD5811.svg +0 -271
  233. data/examples/xmi/Images/EAID_E77C66A2_2E94_4196_BFC6_662FE5AEEB6F.svg +0 -332
  234. data/examples/xmi/Images/EAID_E7AABA98_2450_4986_9736_DCCAF0108C50.svg +0 -639
  235. data/examples/xmi/Images/EAID_E7D9A2C4_72D6_40b9_8EB8_6B35476246B3.svg +0 -134
  236. data/examples/xmi/Images/EAID_E9CDAD85_ECF1_43de_819F_30A0D01785E6.svg +0 -193
  237. data/examples/xmi/Images/EAID_EC8AF507_F441_4e8a_B8A7_C1690F3C7D0B.svg +0 -58
  238. data/examples/xmi/Images/EAID_ED501058_D540_47ac_8EBC_5921E8C0BF57.svg +0 -384
  239. data/examples/xmi/Images/EAID_EFBF5F0F_DF74_4944_8791_114F5637C335.svg +0 -590
  240. data/examples/xmi/Images/EAID_EFFFA027_2A1F_425c_8437_BF89AADC8893.svg +0 -365
  241. data/examples/xmi/Images/EAID_F07E7718_B2C2_4a65_B5DD_477CB73E971E.svg +0 -165
  242. data/examples/xmi/Images/EAID_F0F20BDF_C729_47f7_B6FC_25ED2C4609CA.svg +0 -61
  243. data/examples/xmi/Images/EAID_F32E5AFE_8605_4c77_AE69_D0D0A6E380AC.svg +0 -76
  244. data/examples/xmi/Images/EAID_F3F00F45_CD37_46fd_B521_D1040EB2FB16.svg +0 -123
  245. data/examples/xmi/Images/EAID_F46E8F19_D8F1_4a3d_B87B_B0BAB4F50F50.svg +0 -202
  246. data/examples/xmi/Images/EAID_F48E5F6E_2411_4635_9315_3EAA4CFA29F7.svg +0 -351
  247. data/examples/xmi/Images/EAID_F4C23F9E_DD74_4fed_B75D_AD3C6448BA24.svg +0 -189
  248. data/examples/xmi/Images/EAID_F853B3C4_B145_4ef0_B261_C3CC0475B6D2.svg +0 -215
  249. data/examples/xmi/Images/EAID_F8BE68CA_1F8F_47e5_9454_01A2EB7D388A.svg +0 -124
  250. data/examples/xmi/Images/EAID_F92A6A28_612E_468e_9E39_D7AE7D24E24D.svg +0 -208
  251. data/examples/xmi/Images/EAID_F995FA49_B86E_4c94_BE5E_C928FB6B87D0.svg +0 -302
  252. data/examples/xmi/Images/EAID_FEAE013A_A4E4_4283_A491_1FEB8D0EBA28.svg +0 -524
  253. data/examples/xmi/Images/EAID_FEBE5726_3751_470b_9023_8C569202E97E.svg +0 -730
  254. data/examples/xmi/UML_EA.DTD +0 -6856
  255. data/examples/xmi/UmlModel_template.xmi +0 -23
  256. data/examples/xmi/basic.xmi +0 -9086
  257. data/examples/xmi/simple.xmi +0 -655
  258. data/examples/xmi/simple_example.xmi +0 -23
  259. data/examples/xmi/test.xmi +0 -1703
  260. data/exe/lutaml +0 -11
  261. data/exe/lutaml-sysml +0 -22
  262. data/exe/lutaml-wsd2uml +0 -63
  263. data/exe/lutaml-yaml2uml +0 -146
  264. data/frontend/dist/app.iife.js +0 -24
  265. data/frontend/dist/style.css +0 -1
  266. data/frontend/index.html +0 -26
  267. data/frontend/package-lock.json +0 -2805
  268. data/frontend/package.json +0 -26
  269. data/frontend/src/App.vue +0 -59
  270. data/frontend/src/app.ts +0 -8
  271. data/frontend/src/components/AppHeader.vue +0 -127
  272. data/frontend/src/components/AppSidebar.vue +0 -119
  273. data/frontend/src/components/ClassDetails.vue +0 -247
  274. data/frontend/src/components/DiagramView.vue +0 -79
  275. data/frontend/src/components/PackageDetails.vue +0 -92
  276. data/frontend/src/components/PackageTreeNode.vue +0 -64
  277. data/frontend/src/components/SearchResults.vue +0 -48
  278. data/frontend/src/components/WelcomeView.vue +0 -66
  279. data/frontend/src/shims-vue.d.ts +0 -5
  280. data/frontend/src/stores/dataStore.ts +0 -79
  281. data/frontend/src/stores/uiStore.ts +0 -167
  282. data/frontend/src/styles/main.css +0 -1566
  283. data/frontend/src/types.ts +0 -221
  284. data/frontend/tests/e2e/__screenshots__/new-dark-mode.png +0 -0
  285. data/frontend/tests/e2e/__screenshots__/new-package-details.png +0 -0
  286. data/frontend/tests/e2e/__screenshots__/new-search-modal.png +0 -0
  287. data/frontend/tests/e2e/__screenshots__/new-sidebar-collapsed.png +0 -0
  288. data/frontend/tests/e2e/__screenshots__/new-welcome.png +0 -0
  289. data/frontend/tests/e2e/render.spec.ts +0 -188
  290. data/frontend/tsconfig.json +0 -20
  291. data/frontend/vite.config.ts +0 -26
  292. data/frontend/vitest.config.ts +0 -8
  293. data/lib/lutaml/cli/element_identifier.rb +0 -160
  294. data/lib/lutaml/cli/enhanced_formatter.rb +0 -494
  295. data/lib/lutaml/cli/interactive_shell/bookmark_commands.rb +0 -85
  296. data/lib/lutaml/cli/interactive_shell/command_base.rb +0 -32
  297. data/lib/lutaml/cli/interactive_shell/export_handler.rb +0 -73
  298. data/lib/lutaml/cli/interactive_shell/help_display.rb +0 -107
  299. data/lib/lutaml/cli/interactive_shell/navigation_commands.rb +0 -151
  300. data/lib/lutaml/cli/interactive_shell/query_commands.rb +0 -208
  301. data/lib/lutaml/cli/interactive_shell.rb +0 -254
  302. data/lib/lutaml/cli/lml_commands.rb +0 -205
  303. data/lib/lutaml/cli/output_formatter.rb +0 -348
  304. data/lib/lutaml/cli/resource_registry.rb +0 -127
  305. data/lib/lutaml/cli/tree_view_formatter.rb +0 -312
  306. data/lib/lutaml/cli/uml/build_command.rb +0 -487
  307. data/lib/lutaml/cli/uml/diagram_command.rb +0 -415
  308. data/lib/lutaml/cli/uml/export_command.rb +0 -77
  309. data/lib/lutaml/cli/uml/find_command.rb +0 -119
  310. data/lib/lutaml/cli/uml/info_command.rb +0 -103
  311. data/lib/lutaml/cli/uml/inspect_command.rb +0 -85
  312. data/lib/lutaml/cli/uml/ls_command.rb +0 -102
  313. data/lib/lutaml/cli/uml/repl_command.rb +0 -49
  314. data/lib/lutaml/cli/uml/search_command.rb +0 -85
  315. data/lib/lutaml/cli/uml/serve_command.rb +0 -58
  316. data/lib/lutaml/cli/uml/shared_helpers.rb +0 -49
  317. data/lib/lutaml/cli/uml/spa_command.rb +0 -223
  318. data/lib/lutaml/cli/uml/stats_command.rb +0 -57
  319. data/lib/lutaml/cli/uml/tree_command.rb +0 -82
  320. data/lib/lutaml/cli/uml/validate_command.rb +0 -190
  321. data/lib/lutaml/cli/uml/verify_command.rb +0 -103
  322. data/lib/lutaml/cli/uml.rb +0 -24
  323. data/lib/lutaml/cli/uml_commands.rb +0 -145
  324. data/lib/lutaml/cli.rb +0 -84
  325. data/lib/lutaml/converter/dsl_to_uml.rb +0 -237
  326. data/lib/lutaml/converter/xmi_to_uml.rb +0 -329
  327. data/lib/lutaml/converter/xmi_to_uml_generalization.rb +0 -193
  328. data/lib/lutaml/converter.rb +0 -10
  329. data/lib/lutaml/ea/diagram/configuration.rb +0 -379
  330. data/lib/lutaml/ea/diagram/element_renderers/base_renderer.rb +0 -81
  331. data/lib/lutaml/ea/diagram/element_renderers/class_renderer.rb +0 -328
  332. data/lib/lutaml/ea/diagram/element_renderers/connector_renderer.rb +0 -53
  333. data/lib/lutaml/ea/diagram/element_renderers/package_renderer.rb +0 -67
  334. data/lib/lutaml/ea/diagram/element_renderers.rb +0 -18
  335. data/lib/lutaml/ea/diagram/extractor.rb +0 -550
  336. data/lib/lutaml/ea/diagram/layout_engine.rb +0 -249
  337. data/lib/lutaml/ea/diagram/path_builder.rb +0 -256
  338. data/lib/lutaml/ea/diagram/style_parser.rb +0 -315
  339. data/lib/lutaml/ea/diagram/style_resolver.rb +0 -281
  340. data/lib/lutaml/ea/diagram/svg_renderer.rb +0 -279
  341. data/lib/lutaml/ea/diagram/util.rb +0 -69
  342. data/lib/lutaml/ea/diagram.rb +0 -62
  343. data/lib/lutaml/ea.rb +0 -7
  344. data/lib/lutaml/formatter/base.rb +0 -63
  345. data/lib/lutaml/formatter/graphviz.rb +0 -374
  346. data/lib/lutaml/formatter.rb +0 -20
  347. data/lib/lutaml/layout/engine.rb +0 -17
  348. data/lib/lutaml/layout/graph_viz_engine.rb +0 -19
  349. data/lib/lutaml/layout.rb +0 -8
  350. data/lib/lutaml/model_transformations/configuration.rb +0 -333
  351. data/lib/lutaml/model_transformations/format_registry.rb +0 -392
  352. data/lib/lutaml/model_transformations/parsers/base_parser.rb +0 -464
  353. data/lib/lutaml/model_transformations/parsers/qea_parser.rb +0 -450
  354. data/lib/lutaml/model_transformations/parsers/xmi_parser.rb +0 -289
  355. data/lib/lutaml/model_transformations/transformation_engine.rb +0 -405
  356. data/lib/lutaml/model_transformations.rb +0 -143
  357. data/lib/lutaml/qea/benchmark.rb +0 -210
  358. data/lib/lutaml/qea/database.rb +0 -270
  359. data/lib/lutaml/qea/factory/association_builder.rb +0 -203
  360. data/lib/lutaml/qea/factory/association_transformer.rb +0 -107
  361. data/lib/lutaml/qea/factory/attribute_tag_transformer.rb +0 -57
  362. data/lib/lutaml/qea/factory/attribute_transformer.rb +0 -93
  363. data/lib/lutaml/qea/factory/base_transformer.rb +0 -127
  364. data/lib/lutaml/qea/factory/class_transformer.rb +0 -164
  365. data/lib/lutaml/qea/factory/constraint_transformer.rb +0 -75
  366. data/lib/lutaml/qea/factory/data_type_transformer.rb +0 -133
  367. data/lib/lutaml/qea/factory/diagram_transformer.rb +0 -157
  368. data/lib/lutaml/qea/factory/document_builder.rb +0 -273
  369. data/lib/lutaml/qea/factory/ea_to_uml_factory.rb +0 -243
  370. data/lib/lutaml/qea/factory/enum_transformer.rb +0 -88
  371. data/lib/lutaml/qea/factory/generalization_builder.rb +0 -236
  372. data/lib/lutaml/qea/factory/generalization_transformer.rb +0 -98
  373. data/lib/lutaml/qea/factory/instance_transformer.rb +0 -84
  374. data/lib/lutaml/qea/factory/object_property_transformer.rb +0 -58
  375. data/lib/lutaml/qea/factory/operation_transformer.rb +0 -66
  376. data/lib/lutaml/qea/factory/package_transformer.rb +0 -208
  377. data/lib/lutaml/qea/factory/reference_resolver.rb +0 -99
  378. data/lib/lutaml/qea/factory/stereotype_loader.rb +0 -40
  379. data/lib/lutaml/qea/factory/tagged_value_transformer.rb +0 -38
  380. data/lib/lutaml/qea/factory/transformer_registry.rb +0 -77
  381. data/lib/lutaml/qea/factory.rb +0 -37
  382. data/lib/lutaml/qea/file_detector.rb +0 -178
  383. data/lib/lutaml/qea/infrastructure/database_connection.rb +0 -100
  384. data/lib/lutaml/qea/infrastructure/schema_reader.rb +0 -136
  385. data/lib/lutaml/qea/infrastructure/table_reader.rb +0 -224
  386. data/lib/lutaml/qea/infrastructure.rb +0 -12
  387. data/lib/lutaml/qea/models/base_model.rb +0 -48
  388. data/lib/lutaml/qea/models/ea_attribute.rb +0 -133
  389. data/lib/lutaml/qea/models/ea_attribute_tag.rb +0 -107
  390. data/lib/lutaml/qea/models/ea_complexity_type.rb +0 -79
  391. data/lib/lutaml/qea/models/ea_connector.rb +0 -160
  392. data/lib/lutaml/qea/models/ea_connector_type.rb +0 -60
  393. data/lib/lutaml/qea/models/ea_constraint_type.rb +0 -63
  394. data/lib/lutaml/qea/models/ea_datatype.rb +0 -104
  395. data/lib/lutaml/qea/models/ea_diagram.rb +0 -115
  396. data/lib/lutaml/qea/models/ea_diagram_link.rb +0 -78
  397. data/lib/lutaml/qea/models/ea_diagram_object.rb +0 -84
  398. data/lib/lutaml/qea/models/ea_diagram_type.rb +0 -56
  399. data/lib/lutaml/qea/models/ea_document.rb +0 -66
  400. data/lib/lutaml/qea/models/ea_object.rb +0 -206
  401. data/lib/lutaml/qea/models/ea_object_constraint.rb +0 -60
  402. data/lib/lutaml/qea/models/ea_object_property.rb +0 -94
  403. data/lib/lutaml/qea/models/ea_object_type.rb +0 -73
  404. data/lib/lutaml/qea/models/ea_operation.rb +0 -151
  405. data/lib/lutaml/qea/models/ea_operation_param.rb +0 -71
  406. data/lib/lutaml/qea/models/ea_package.rb +0 -73
  407. data/lib/lutaml/qea/models/ea_script.rb +0 -67
  408. data/lib/lutaml/qea/models/ea_status_type.rb +0 -66
  409. data/lib/lutaml/qea/models/ea_stereotype.rb +0 -57
  410. data/lib/lutaml/qea/models/ea_tagged_value.rb +0 -103
  411. data/lib/lutaml/qea/models/ea_xref.rb +0 -172
  412. data/lib/lutaml/qea/models.rb +0 -35
  413. data/lib/lutaml/qea/parser.rb +0 -57
  414. data/lib/lutaml/qea/repositories/base_repository.rb +0 -215
  415. data/lib/lutaml/qea/repositories/object_repository.rb +0 -219
  416. data/lib/lutaml/qea/repositories.rb +0 -10
  417. data/lib/lutaml/qea/services/configuration.rb +0 -211
  418. data/lib/lutaml/qea/services/database_loader.rb +0 -186
  419. data/lib/lutaml/qea/services.rb +0 -10
  420. data/lib/lutaml/qea/validation/association_validator.rb +0 -73
  421. data/lib/lutaml/qea/validation/attribute_validator.rb +0 -101
  422. data/lib/lutaml/qea/validation/base_validator.rb +0 -312
  423. data/lib/lutaml/qea/validation/class_validator.rb +0 -121
  424. data/lib/lutaml/qea/validation/database/circular_reference_validator.rb +0 -109
  425. data/lib/lutaml/qea/validation/database/orphan_validator.rb +0 -153
  426. data/lib/lutaml/qea/validation/database/referential_integrity_validator.rb +0 -128
  427. data/lib/lutaml/qea/validation/database.rb +0 -16
  428. data/lib/lutaml/qea/validation/diagram_validator.rb +0 -112
  429. data/lib/lutaml/qea/validation/formatters/json_formatter.rb +0 -137
  430. data/lib/lutaml/qea/validation/formatters/text_formatter.rb +0 -235
  431. data/lib/lutaml/qea/validation/operation_validator.rb +0 -79
  432. data/lib/lutaml/qea/validation/package_validator.rb +0 -111
  433. data/lib/lutaml/qea/validation/validation_engine.rb +0 -477
  434. data/lib/lutaml/qea/validation/validation_message.rb +0 -144
  435. data/lib/lutaml/qea/validation/validation_result.rb +0 -210
  436. data/lib/lutaml/qea/validation/validator_registry.rb +0 -134
  437. data/lib/lutaml/qea/validation.rb +0 -27
  438. data/lib/lutaml/qea/verification/comparison_result.rb +0 -264
  439. data/lib/lutaml/qea/verification/document_normalizer.rb +0 -169
  440. data/lib/lutaml/qea/verification/document_verifier.rb +0 -323
  441. data/lib/lutaml/qea/verification/element_comparator.rb +0 -277
  442. data/lib/lutaml/qea/verification/structure_matcher.rb +0 -287
  443. data/lib/lutaml/qea/verification.rb +0 -14
  444. data/lib/lutaml/qea.rb +0 -227
  445. data/lib/lutaml/uml/abstraction.rb +0 -12
  446. data/lib/lutaml/uml/action.rb +0 -17
  447. data/lib/lutaml/uml/activity.rb +0 -12
  448. data/lib/lutaml/uml/actor.rb +0 -12
  449. data/lib/lutaml/uml/association.rb +0 -37
  450. data/lib/lutaml/uml/association_generalization.rb +0 -20
  451. data/lib/lutaml/uml/behavior.rb +0 -12
  452. data/lib/lutaml/uml/cardinality.rb +0 -12
  453. data/lib/lutaml/uml/class.rb +0 -52
  454. data/lib/lutaml/uml/classifier.rb +0 -19
  455. data/lib/lutaml/uml/comment.rb +0 -15
  456. data/lib/lutaml/uml/connector.rb +0 -20
  457. data/lib/lutaml/uml/connector_end.rb +0 -22
  458. data/lib/lutaml/uml/constraint.rb +0 -24
  459. data/lib/lutaml/uml/data_type.rb +0 -56
  460. data/lib/lutaml/uml/dependency.rb +0 -20
  461. data/lib/lutaml/uml/diagram.rb +0 -25
  462. data/lib/lutaml/uml/diagram_link.rb +0 -28
  463. data/lib/lutaml/uml/diagram_object.rb +0 -32
  464. data/lib/lutaml/uml/document.rb +0 -64
  465. data/lib/lutaml/uml/enum.rb +0 -21
  466. data/lib/lutaml/uml/event.rb +0 -12
  467. data/lib/lutaml/uml/fidelity.rb +0 -12
  468. data/lib/lutaml/uml/final_state.rb +0 -12
  469. data/lib/lutaml/uml/fontname.rb +0 -15
  470. data/lib/lutaml/uml/general_attribute.rb +0 -24
  471. data/lib/lutaml/uml/generalization.rb +0 -37
  472. data/lib/lutaml/uml/group.rb +0 -21
  473. data/lib/lutaml/uml/has_attributes.rb +0 -14
  474. data/lib/lutaml/uml/has_members.rb +0 -30
  475. data/lib/lutaml/uml/inheritance_walker.rb +0 -96
  476. data/lib/lutaml/uml/instance.rb +0 -17
  477. data/lib/lutaml/uml/model.rb +0 -15
  478. data/lib/lutaml/uml/model_helpers.rb +0 -104
  479. data/lib/lutaml/uml/namespace.rb +0 -12
  480. data/lib/lutaml/uml/node/attribute.rb +0 -30
  481. data/lib/lutaml/uml/node/base.rb +0 -19
  482. data/lib/lutaml/uml/node/class_node.rb +0 -48
  483. data/lib/lutaml/uml/node/class_relationship.rb +0 -11
  484. data/lib/lutaml/uml/node/document.rb +0 -15
  485. data/lib/lutaml/uml/node/has_name.rb +0 -15
  486. data/lib/lutaml/uml/node/has_type.rb +0 -15
  487. data/lib/lutaml/uml/node/method_argument.rb +0 -12
  488. data/lib/lutaml/uml/node/operation.rb +0 -23
  489. data/lib/lutaml/uml/node/relationship.rb +0 -22
  490. data/lib/lutaml/uml/opaque_behavior.rb +0 -12
  491. data/lib/lutaml/uml/operation.rb +0 -23
  492. data/lib/lutaml/uml/operation_parameter.rb +0 -19
  493. data/lib/lutaml/uml/package.rb +0 -33
  494. data/lib/lutaml/uml/package_path.rb +0 -235
  495. data/lib/lutaml/uml/parsers/attribute.rb +0 -68
  496. data/lib/lutaml/uml/parsers/dsl.rb +0 -415
  497. data/lib/lutaml/uml/parsers/dsl_preprocessor.rb +0 -63
  498. data/lib/lutaml/uml/parsers/dsl_transform.rb +0 -27
  499. data/lib/lutaml/uml/parsers/yaml.rb +0 -22
  500. data/lib/lutaml/uml/port.rb +0 -9
  501. data/lib/lutaml/uml/primitive_type.rb +0 -15
  502. data/lib/lutaml/uml/property.rb +0 -27
  503. data/lib/lutaml/uml/pseudostate.rb +0 -12
  504. data/lib/lutaml/uml/qualified_name.rb +0 -175
  505. data/lib/lutaml/uml/realization.rb +0 -12
  506. data/lib/lutaml/uml/region.rb +0 -12
  507. data/lib/lutaml/uml/state.rb +0 -22
  508. data/lib/lutaml/uml/state_machine.rb +0 -12
  509. data/lib/lutaml/uml/tagged_value.rb +0 -23
  510. data/lib/lutaml/uml/top_element.rb +0 -85
  511. data/lib/lutaml/uml/top_element_attribute.rb +0 -64
  512. data/lib/lutaml/uml/transition.rb +0 -24
  513. data/lib/lutaml/uml/trigger.rb +0 -18
  514. data/lib/lutaml/uml/validation/document_structure_validator.rb +0 -387
  515. data/lib/lutaml/uml/value.rb +0 -37
  516. data/lib/lutaml/uml/vertex.rb +0 -12
  517. data/lib/lutaml/uml.rb +0 -113
  518. data/lib/lutaml/uml_repository/class_lookup_index.rb +0 -39
  519. data/lib/lutaml/uml_repository/error_handler.rb +0 -203
  520. data/lib/lutaml/uml_repository/exporters/base_exporter.rb +0 -61
  521. data/lib/lutaml/uml_repository/exporters/json_exporter.rb +0 -343
  522. data/lib/lutaml/uml_repository/exporters/markdown/class_page_builder.rb +0 -187
  523. data/lib/lutaml/uml_repository/exporters/markdown/formatting.rb +0 -34
  524. data/lib/lutaml/uml_repository/exporters/markdown/index_page_builder.rb +0 -81
  525. data/lib/lutaml/uml_repository/exporters/markdown/link_resolver.rb +0 -40
  526. data/lib/lutaml/uml_repository/exporters/markdown/package_page_builder.rb +0 -107
  527. data/lib/lutaml/uml_repository/exporters/markdown.rb +0 -20
  528. data/lib/lutaml/uml_repository/exporters/markdown_exporter.rb +0 -86
  529. data/lib/lutaml/uml_repository/index_builder.rb +0 -210
  530. data/lib/lutaml/uml_repository/index_builders/association_index.rb +0 -155
  531. data/lib/lutaml/uml_repository/index_builders/class_index.rb +0 -113
  532. data/lib/lutaml/uml_repository/index_builders/package_index.rb +0 -62
  533. data/lib/lutaml/uml_repository/index_builders.rb +0 -13
  534. data/lib/lutaml/uml_repository/lazy_repository.rb +0 -236
  535. data/lib/lutaml/uml_repository/package_exporter.rb +0 -334
  536. data/lib/lutaml/uml_repository/package_loader.rb +0 -240
  537. data/lib/lutaml/uml_repository/package_metadata.rb +0 -77
  538. data/lib/lutaml/uml_repository/presenters/association_presenter.rb +0 -79
  539. data/lib/lutaml/uml_repository/presenters/attribute_presenter.rb +0 -94
  540. data/lib/lutaml/uml_repository/presenters/class_presenter.rb +0 -72
  541. data/lib/lutaml/uml_repository/presenters/datatype_presenter.rb +0 -97
  542. data/lib/lutaml/uml_repository/presenters/diagram_presenter.rb +0 -469
  543. data/lib/lutaml/uml_repository/presenters/element_presenter.rb +0 -91
  544. data/lib/lutaml/uml_repository/presenters/enum_presenter.rb +0 -78
  545. data/lib/lutaml/uml_repository/presenters/package_presenter.rb +0 -48
  546. data/lib/lutaml/uml_repository/presenters/presenter_factory.rb +0 -74
  547. data/lib/lutaml/uml_repository/queries/association_query.rb +0 -184
  548. data/lib/lutaml/uml_repository/queries/base_query.rb +0 -45
  549. data/lib/lutaml/uml_repository/queries/class_query.rb +0 -178
  550. data/lib/lutaml/uml_repository/queries/diagram_query.rb +0 -108
  551. data/lib/lutaml/uml_repository/queries/inheritance_query.rb +0 -327
  552. data/lib/lutaml/uml_repository/queries/package_query.rb +0 -230
  553. data/lib/lutaml/uml_repository/queries/search_query.rb +0 -236
  554. data/lib/lutaml/uml_repository/query_dsl/conditions/base_condition.rb +0 -28
  555. data/lib/lutaml/uml_repository/query_dsl/conditions/block_condition.rb +0 -44
  556. data/lib/lutaml/uml_repository/query_dsl/conditions/hash_condition.rb +0 -82
  557. data/lib/lutaml/uml_repository/query_dsl/conditions/package_condition.rb +0 -89
  558. data/lib/lutaml/uml_repository/query_dsl/order.rb +0 -90
  559. data/lib/lutaml/uml_repository/query_dsl/query_builder.rb +0 -290
  560. data/lib/lutaml/uml_repository/repository/deprecated.rb +0 -39
  561. data/lib/lutaml/uml_repository/repository/loader.rb +0 -117
  562. data/lib/lutaml/uml_repository/repository.rb +0 -718
  563. data/lib/lutaml/uml_repository/repository_enhanced.rb +0 -431
  564. data/lib/lutaml/uml_repository/search_result.rb +0 -86
  565. data/lib/lutaml/uml_repository/static_site/configuration.rb +0 -377
  566. data/lib/lutaml/uml_repository/static_site/data_transformer.rb +0 -135
  567. data/lib/lutaml/uml_repository/static_site/generator.rb +0 -120
  568. data/lib/lutaml/uml_repository/static_site/id_generator.rb +0 -120
  569. data/lib/lutaml/uml_repository/static_site/models/spa_association.rb +0 -29
  570. data/lib/lutaml/uml_repository/static_site/models/spa_association_end.rb +0 -25
  571. data/lib/lutaml/uml_repository/static_site/models/spa_attribute.rb +0 -58
  572. data/lib/lutaml/uml_repository/static_site/models/spa_base.rb +0 -12
  573. data/lib/lutaml/uml_repository/static_site/models/spa_cardinality.rb +0 -28
  574. data/lib/lutaml/uml_repository/static_site/models/spa_class.rb +0 -60
  575. data/lib/lutaml/uml_repository/static_site/models/spa_diagram.rb +0 -31
  576. data/lib/lutaml/uml_repository/static_site/models/spa_document.rb +0 -31
  577. data/lib/lutaml/uml_repository/static_site/models/spa_inherited_association.rb +0 -25
  578. data/lib/lutaml/uml_repository/static_site/models/spa_inherited_attribute.rb +0 -25
  579. data/lib/lutaml/uml_repository/static_site/models/spa_literal.rb +0 -19
  580. data/lib/lutaml/uml_repository/static_site/models/spa_metadata.rb +0 -39
  581. data/lib/lutaml/uml_repository/static_site/models/spa_operation.rb +0 -34
  582. data/lib/lutaml/uml_repository/static_site/models/spa_package.rb +0 -37
  583. data/lib/lutaml/uml_repository/static_site/models/spa_package_tree_node.rb +0 -32
  584. data/lib/lutaml/uml_repository/static_site/models/spa_parameter.rb +0 -21
  585. data/lib/lutaml/uml_repository/static_site/models/spa_search_entry.rb +0 -34
  586. data/lib/lutaml/uml_repository/static_site/models/spa_search_index.rb +0 -29
  587. data/lib/lutaml/uml_repository/static_site/models/spa_statistics.rb +0 -25
  588. data/lib/lutaml/uml_repository/static_site/models/spa_tree_class_ref.rb +0 -22
  589. data/lib/lutaml/uml_repository/static_site/models.rb +0 -48
  590. data/lib/lutaml/uml_repository/static_site/output/multi_file_strategy.rb +0 -69
  591. data/lib/lutaml/uml_repository/static_site/output/strategy.rb +0 -36
  592. data/lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb +0 -113
  593. data/lib/lutaml/uml_repository/static_site/output.rb +0 -15
  594. data/lib/lutaml/uml_repository/static_site/search_index_builder.rb +0 -216
  595. data/lib/lutaml/uml_repository/static_site/serializers/association_serializer.rb +0 -70
  596. data/lib/lutaml/uml_repository/static_site/serializers/attribute_serializer.rb +0 -24
  597. data/lib/lutaml/uml_repository/static_site/serializers/base.rb +0 -66
  598. data/lib/lutaml/uml_repository/static_site/serializers/class_serializer.rb +0 -97
  599. data/lib/lutaml/uml_repository/static_site/serializers/diagram_serializer.rb +0 -59
  600. data/lib/lutaml/uml_repository/static_site/serializers/inheritance_resolver.rb +0 -151
  601. data/lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb +0 -102
  602. data/lib/lutaml/uml_repository/static_site/serializers/operation_serializer.rb +0 -52
  603. data/lib/lutaml/uml_repository/static_site/serializers/package_serializer.rb +0 -55
  604. data/lib/lutaml/uml_repository/static_site/serializers/package_tree_builder.rb +0 -77
  605. data/lib/lutaml/uml_repository/static_site/serializers.rb +0 -30
  606. data/lib/lutaml/uml_repository/static_site.rb +0 -92
  607. data/lib/lutaml/uml_repository/statistics_calculator.rb +0 -342
  608. data/lib/lutaml/uml_repository/validators/repository_validator.rb +0 -402
  609. data/lib/lutaml/uml_repository/web_ui/app.rb +0 -161
  610. data/lib/lutaml/uml_repository/web_ui/public/app.js +0 -452
  611. data/lib/lutaml/uml_repository/web_ui/public/styles.css +0 -381
  612. data/lib/lutaml/uml_repository/web_ui/views/index.erb +0 -40
  613. data/lib/lutaml/uml_repository.rb +0 -117
  614. data/lib/lutaml/xmi/liquid_drops/association_drop.rb +0 -56
  615. data/lib/lutaml/xmi/liquid_drops/attribute_drop.rb +0 -72
  616. data/lib/lutaml/xmi/liquid_drops/cardinality_drop.rb +0 -35
  617. data/lib/lutaml/xmi/liquid_drops/connector_drop.rb +0 -54
  618. data/lib/lutaml/xmi/liquid_drops/constraint_drop.rb +0 -29
  619. data/lib/lutaml/xmi/liquid_drops/data_type_drop.rb +0 -63
  620. data/lib/lutaml/xmi/liquid_drops/dependency_drop.rb +0 -36
  621. data/lib/lutaml/xmi/liquid_drops/diagram_drop.rb +0 -34
  622. data/lib/lutaml/xmi/liquid_drops/enum_drop.rb +0 -49
  623. data/lib/lutaml/xmi/liquid_drops/enum_owned_literal_drop.rb +0 -25
  624. data/lib/lutaml/xmi/liquid_drops/generalization_attribute_drop.rb +0 -87
  625. data/lib/lutaml/xmi/liquid_drops/generalization_drop.rb +0 -127
  626. data/lib/lutaml/xmi/liquid_drops/klass_drop.rb +0 -191
  627. data/lib/lutaml/xmi/liquid_drops/operation_drop.rb +0 -29
  628. data/lib/lutaml/xmi/liquid_drops/package_drop.rb +0 -108
  629. data/lib/lutaml/xmi/liquid_drops/root_drop.rb +0 -34
  630. data/lib/lutaml/xmi/liquid_drops/source_target_drop.rb +0 -43
  631. data/lib/lutaml/xmi/parsers/xmi_base.rb +0 -301
  632. data/lib/lutaml/xmi/parsers/xmi_class_members.rb +0 -45
  633. data/lib/lutaml/xmi/parsers/xmi_connector.rb +0 -263
  634. data/lib/lutaml/xmi/parsers/xml.rb +0 -62
  635. data/lib/lutaml/xmi/xmi_lookup_service.rb +0 -40
  636. data/lib/lutaml/xmi.rb +0 -47
  637. data/templates/static_site/assets/images/lutaml-full.svg +0 -1
  638. data/templates/static_site/assets/images/lutaml-icon.svg +0 -1
  639. data/templates/static_site/assets/scripts/app.js +0 -45
  640. data/templates/static_site/assets/scripts/core/state.js +0 -446
  641. data/templates/static_site/assets/scripts/core/utils.js +0 -133
  642. data/templates/static_site/assets/scripts/ui/details.js +0 -74
  643. data/templates/static_site/assets/scripts/ui/diagrams.js +0 -345
  644. data/templates/static_site/assets/scripts/ui/search.js +0 -187
  645. data/templates/static_site/assets/scripts/ui/sidebar.js +0 -123
  646. data/templates/static_site/assets/styles/00-variables.css +0 -144
  647. data/templates/static_site/assets/styles/01-reset.css +0 -69
  648. data/templates/static_site/assets/styles/02-base.css +0 -144
  649. data/templates/static_site/assets/styles/03-layout.css +0 -121
  650. data/templates/static_site/assets/styles/04-components.css +0 -905
  651. data/templates/static_site/assets/styles/05-utilities.css +0 -23
  652. data/templates/static_site/assets/styles/06-diagrams.css +0 -74
  653. data/templates/static_site/components/class_details.liquid +0 -328
  654. data/templates/static_site/components/content.liquid +0 -481
  655. data/templates/static_site/components/diagram_list.liquid +0 -52
  656. data/templates/static_site/components/diagram_viewer.liquid +0 -71
  657. data/templates/static_site/components/header.liquid +0 -114
  658. data/templates/static_site/components/package_details.liquid +0 -119
  659. data/templates/static_site/components/sidebar.liquid +0 -76
  660. data/templates/static_site/components/tree_node.liquid +0 -81
  661. data/templates/static_site/multi_file.liquid +0 -49
  662. data/templates/static_site/single_file.liquid +0 -57
@@ -1,329 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Lutaml
4
- module Converter
5
- module XmiToUml
6
- include XmiToUmlGeneralization
7
-
8
- def create_uml_document(xmi_model)
9
- ::Lutaml::Uml::Document.new.tap do |doc|
10
- doc.name = xmi_model.model.name
11
- doc.packages = create_uml_packages(xmi_model.model)
12
- end
13
- end
14
-
15
- def create_uml_packages(model)
16
- return [] if model.packaged_element.nil?
17
-
18
- packages = model.packaged_element.select do |e|
19
- e.type?("uml:Package")
20
- end
21
-
22
- packages.map do |package|
23
- create_uml_package(package)
24
- end
25
- end
26
-
27
- def create_uml_package(package) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
28
- pkg = ::Lutaml::Uml::Package.new
29
- pkg.xmi_id = package.id
30
- pkg.name = get_package_name(package)
31
- pkg.definition = doc_node_attribute_value(package.id, "documentation")
32
- st = doc_node_attribute_value(package.id, "stereotype")
33
- pkg.stereotype = [st] if st
34
-
35
- pkg.packages = create_uml_packages(package)
36
- pkg.classes = create_uml_classes(package)
37
- pkg.enums = create_uml_enums(package)
38
- pkg.data_types = create_uml_data_types(package)
39
- pkg.diagrams = create_uml_diagrams(package.id)
40
-
41
- pkg
42
- end
43
-
44
- def create_uml_classes(package)
45
- return [] if package.packaged_element.nil?
46
-
47
- klasses = package.packaged_element.select do |e|
48
- e.type?("uml:Class") || e.type?("uml:AssociationClass") ||
49
- e.type?("uml:Interface")
50
- end
51
-
52
- klasses.map do |klass|
53
- create_uml_class(klass)
54
- end
55
- end
56
-
57
- def create_uml_class(klass) # rubocop:disable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
58
- ::Lutaml::Uml::Class.new.tap do |k| # rubocop:disable Metrics/BlockLength
59
- k.xmi_id = klass.id
60
- k.name = klass.name
61
- k.type = klass.type.split(":").last
62
- k.is_abstract = doc_node_attribute_value(klass.id, "isAbstract")
63
- k.definition = doc_node_attribute_value(klass.id, "documentation")
64
- k_st = doc_node_attribute_value(klass.id, "stereotype")
65
- k.stereotype = [k_st] if k_st
66
-
67
- k.attributes = create_uml_class_attributes(klass)
68
- k.associations = create_uml_associations(klass.id)
69
- k.operations = create_uml_operations(klass)
70
- k.constraints = create_uml_constraints(klass.id)
71
- k.association_generalization = create_uml_assoc_generalizations(klass)
72
-
73
- if klass.type?("uml:Class")
74
- k.generalization = create_uml_generalization(klass)
75
- end
76
- end
77
- end
78
-
79
- def create_uml_enums(package) # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
80
- return [] if package.packaged_element.nil?
81
-
82
- enums = package.packaged_element.select do |e|
83
- e.type?("uml:Enumeration")
84
- end
85
-
86
- enums.map do |enum|
87
- ::Lutaml::Uml::Enum.new.tap do |en|
88
- en.xmi_id = enum.id
89
- en.name = enum.name
90
- en.values = create_uml_values(enum)
91
- en.definition = doc_node_attribute_value(enum.id, "documentation")
92
- en_st = doc_node_attribute_value(enum.id, "stereotype")
93
- en.stereotype = [en_st] if en_st
94
- end
95
- end
96
- end
97
-
98
- def create_uml_data_types(package) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
99
- return [] if package.packaged_element.nil?
100
-
101
- data_types = package.packaged_element.select do |e|
102
- e.type?("uml:DataType")
103
- end
104
-
105
- data_types.map do |dt|
106
- ::Lutaml::Uml::DataType.new.tap do |data_type|
107
- data_type.xmi_id = dt.id
108
- data_type.name = dt.name
109
- data_type.is_abstract = doc_node_attribute_value(
110
- dt.id, "isAbstract"
111
- )
112
- data_type.definition = doc_node_attribute_value(
113
- dt.id, "documentation"
114
- )
115
- dt_st = doc_node_attribute_value(
116
- dt.id, "stereotype"
117
- )
118
- data_type.stereotype = [dt_st] if dt_st
119
-
120
- data_type.attributes = create_uml_class_attributes(dt)
121
- data_type.operations = create_uml_operations(dt)
122
- data_type.associations = create_uml_associations(dt.id)
123
- data_type.constraints = create_uml_constraints(dt.id)
124
- end
125
- end
126
- end
127
-
128
- def create_uml_diagrams(node_id) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
129
- return [] if @xmi_root_model.extension&.diagrams&.diagram.nil?
130
-
131
- diagrams = diagram_lookup[node_id]
132
-
133
- diagrams.map do |diagram|
134
- ::Lutaml::Uml::Diagram.new.tap do |dia|
135
- dia.xmi_id = diagram.id
136
- dia.name = diagram&.properties&.name
137
- dia.definition = diagram&.properties&.documentation
138
-
139
- package_id = diagram&.model&.package
140
- if package_id
141
- dia.package_id = package_id
142
- dia.package_name = find_packaged_element_by_id(package_id)&.name
143
- end
144
- end
145
- end
146
- end
147
-
148
- # Lazy-built hash index for O(1) diagram lookups by package
149
- # @return [Hash] Mapping of package_id => [diagrams]
150
- def diagram_lookup
151
- @diagram_lookup ||= build_diagram_index
152
- end
153
-
154
- def build_diagram_index
155
- idx = Hash.new { |h, k| h[k] = [] }
156
- xmi_diagrams.each { |d| idx[d.model.package] << d if d.model&.package }
157
- idx
158
- end
159
-
160
- def xmi_diagrams
161
- @xmi_root_model.extension&.diagrams&.diagram || []
162
- end
163
-
164
- def create_uml_class_attributes(klass) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength
165
- return [] if klass.owned_attribute.nil?
166
-
167
- all_props = klass.owned_attribute.select do |attr|
168
- attr.type?("uml:Property")
169
- end
170
-
171
- all_props.filter_map do |oa|
172
- create_uml_attribute(oa)
173
- end
174
- end
175
-
176
- def create_uml_attribute(owned_attr) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
177
- uml_type = owned_attr.uml_type
178
- uml_type_idref = uml_type.idref if uml_type
179
-
180
- ::Lutaml::Uml::TopElementAttribute.new.tap do |attr|
181
- attr.id = owned_attr.id
182
- attr.name = owned_attr.name
183
- attr.type = lookup_entity_name(uml_type_idref) || uml_type_idref
184
- attr.xmi_id = uml_type_idref
185
- attr.is_derived = !!owned_attr.is_derived
186
- attr.cardinality = ::Lutaml::Uml::Cardinality.new.tap do |car|
187
- car.min = owned_attr.lower_value&.value
188
- car.max = owned_attr.upper_value&.value
189
- end
190
- attr.definition = lookup_attribute_documentation(owned_attr.id)
191
-
192
- if owned_attr.association
193
- attr.association = owned_attr.association
194
- attr.definition = loopup_assoc_def(owned_attr.association)
195
- attr.type_ns = get_ns_by_xmi_id(attr.xmi_id)
196
- end
197
- end
198
- end
199
-
200
- def create_uml_cardinality(hash)
201
- return nil unless hash
202
-
203
- ::Lutaml::Uml::Cardinality.new.tap do |cardinality|
204
- cardinality.min = hash[:min]
205
- cardinality.max = hash[:max]
206
- end
207
- end
208
-
209
- def create_uml_associations(xmi_id) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
210
- matched_element = xmi_index&.find_element(xmi_id)
211
-
212
- return if !matched_element || !matched_element.links
213
-
214
- links = []
215
- matched_element.links.each do |link|
216
- links << link.association if link.association.any?
217
- end
218
-
219
- links.flatten.compact.filter_map do |assoc| # rubocop:disable Metrics/BlockLength
220
- link_member = assoc.start == xmi_id ? "end" : "start"
221
- link_owner = link_member == "start" ? "end" : "start"
222
-
223
- member_end, member_end_type, member_end_cardinality,
224
- member_end_attribute_name, member_end_xmi_id =
225
- serialize_member_type(xmi_id, assoc, link_member)
226
-
227
- owner_end = serialize_owned_type(xmi_id, assoc, link_owner)
228
- doc_node = link_member == "start" ? "source" : "target"
229
- definition = fetch_definition_node_value(assoc.id, doc_node)
230
-
231
- # Get owner_end_attribute_name from the ownedAttribute that
232
- # references this association
233
- owner_end_attribute_name = find_owner_attribute_name(xmi_id, assoc.id)
234
-
235
- if member_end &&
236
- (
237
- (member_end_type != "aggregation") ||
238
- (member_end_type == "aggregation" && member_end_attribute_name)
239
- )
240
-
241
- ::Lutaml::Uml::Association.new.tap do |association|
242
- association.xmi_id = assoc.id
243
- association.member_end = member_end
244
- association.member_end_type = member_end_type
245
- association.member_end_cardinality = create_uml_cardinality(
246
- member_end_cardinality,
247
- )
248
- association.member_end_attribute_name = member_end_attribute_name
249
- association.member_end_xmi_id = member_end_xmi_id
250
- association.owner_end = owner_end
251
- association.owner_end_xmi_id = xmi_id
252
- association.owner_end_attribute_name = owner_end_attribute_name
253
- association.definition = definition
254
- end
255
- end
256
- end
257
- end
258
-
259
- # Find the ownedAttribute name that references this association
260
- # This gives us the role name from the owner's perspective
261
- def find_owner_attribute_name(owner_xmi_id, assoc_id)
262
- owner_node = find_packaged_element_by_id(owner_xmi_id)
263
- return nil unless owner_node&.owned_attribute
264
-
265
- owned_attr = owner_node.owned_attribute.find do |oa|
266
- oa.association == assoc_id
267
- end
268
-
269
- owned_attr&.name
270
- end
271
-
272
- def create_uml_operations(klass) # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
273
- return [] if klass.owned_operation.nil?
274
-
275
- klass.owned_operation.filter_map do |operation|
276
- uml_type = operation.uml_type.first
277
- uml_type_idref = uml_type.idref if uml_type
278
-
279
- if !operation.class.attributes.key?(:association) || operation.association.nil?
280
- ::Lutaml::Uml::Operation.new.tap do |op|
281
- op.id = operation.id
282
- op.xmi_id = uml_type_idref
283
- op.name = operation.name
284
- op.definition = lookup_attribute_documentation(operation.id)
285
- end
286
- end
287
- end
288
- end
289
-
290
- def create_uml_constraints(klass_id) # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
291
- connector_node = fetch_connector(klass_id)
292
- return [] if connector_node.nil?
293
-
294
- # In ea-xmi-2.5.1, constraints are moved to source/target under
295
- # connectors
296
- constraints = %i[source target].map do |st|
297
- connector_node.public_send(st).constraints.constraint
298
- end.flatten
299
-
300
- constraints.map do |constraint|
301
- ::Lutaml::Uml::Constraint.new.tap do |con|
302
- con.name = HTMLEntities.new.decode(constraint.name)
303
- con.type = constraint.type
304
- con.weight = constraint.weight
305
- con.status = constraint.status
306
- end
307
- end
308
- end
309
-
310
- def create_uml_values(enum) # rubocop:disable Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/AbcSize
311
- return [] if enum.owned_literal.nil?
312
-
313
- owned_literals = enum.owned_literal.select do |owned_literal|
314
- owned_literal.type?("uml:EnumerationLiteral")
315
- end
316
-
317
- owned_literals.map do |owned_literal|
318
- uml_type_id = owned_literal&.uml_type&.idref
319
-
320
- ::Lutaml::Uml::Value.new.tap do |value|
321
- value.name = owned_literal.name
322
- value.type = lookup_entity_name(uml_type_id) || uml_type_id
323
- value.definition = lookup_attribute_documentation(owned_literal.id)
324
- end
325
- end
326
- end
327
- end
328
- end
329
- end
@@ -1,193 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Lutaml
4
- module Converter
5
- module XmiToUmlGeneralization
6
- # Generalization-related conversion methods for XMI → UML
7
- #
8
- # These methods handle the recursive generalization hierarchy:
9
- # creating UML generalization objects, walking the chain of
10
- # parent classes, and collecting inherited properties.
11
-
12
- def create_uml_attributes(uml_general_obj) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
13
- upper_klass = uml_general_obj.general_upper_klass
14
- gen_attrs = uml_general_obj.general_attributes
15
- gen_name = uml_general_obj.general_name
16
-
17
- gen_attrs&.each do |i|
18
- name_ns = case i.type_ns
19
- when "core", "gml"
20
- upper_klass
21
- else
22
- i.type_ns
23
- end
24
- name_ns = upper_klass if name_ns.nil?
25
-
26
- i.name_ns = name_ns
27
- i.gen_name = gen_name
28
- i.name = "" if i.name.nil?
29
- end
30
-
31
- gen_attrs
32
- end
33
-
34
- def create_uml_generalization(klass) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
35
- uml_general_obj, next_general_node_id = get_uml_general(klass.id)
36
- return uml_general_obj unless next_general_node_id
37
-
38
- if uml_general_obj.general
39
- inherited_props = []
40
- inherited_assoc_props = []
41
- level = 0
42
-
43
- loop_general_item(
44
- uml_general_obj.general,
45
- level,
46
- inherited_props,
47
- inherited_assoc_props,
48
- )
49
- uml_general_obj.inherited_props = inherited_props.reverse
50
- uml_general_obj.inherited_assoc_props = inherited_assoc_props.reverse
51
- end
52
-
53
- uml_general_obj
54
- end
55
-
56
- def get_next_general_node_id(general_node)
57
- general_node.generalization.first&.general
58
- end
59
-
60
- def get_uml_general(general_id) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
61
- general_node = find_packaged_element_by_id(general_id)
62
- return [] unless general_node
63
-
64
- general_node_attrs = get_uml_general_attributes(general_node)
65
- general_upper_klass = find_upper_level_packaged_element(general_id)
66
- next_general_node_id = get_next_general_node_id(general_node)
67
-
68
- uml_general = build_uml_general_node(
69
- general_id, general_node, general_node_attrs,
70
- general_upper_klass, next_general_node_id
71
- )
72
-
73
- assign_general_properties(uml_general)
74
-
75
- [uml_general, next_general_node_id]
76
- end
77
-
78
- def build_uml_general_node(general_id, general_node, attrs, upper_klass,
79
- next_id)
80
- gen = ::Lutaml::Uml::Generalization.new
81
- assign_general_basic_props(gen, general_id, general_node, attrs,
82
- upper_klass)
83
- assign_stereotype(gen, general_id)
84
- assign_parent_generalization(gen, general_node, next_id)
85
- gen
86
- end
87
-
88
- def assign_general_basic_props(gen, general_id, general_node, attrs,
89
- upper_klass)
90
- gen.general_id = general_id
91
- gen.general_name = general_node.name
92
- gen.general_attributes = attrs
93
- gen.general_upper_klass = upper_klass ? get_package_name(upper_klass) : nil
94
- gen.name = general_node.name
95
- gen.type = general_node.type
96
- gen.definition = lookup_element_prop_documentation(general_id)
97
- end
98
-
99
- def assign_stereotype(gen, general_id)
100
- gen_st = doc_node_attribute_value(general_id, "stereotype")
101
- gen.stereotype = [gen_st] if gen_st
102
- end
103
-
104
- def assign_parent_generalization(gen, general_node, next_id)
105
- return unless next_id
106
-
107
- gen.general = set_uml_generalization(next_id)
108
- gen.has_general = true
109
- gen.general_id = general_node.id
110
- gen.general_name = general_node.name
111
- end
112
-
113
- def assign_general_properties(uml_general)
114
- uml_general.attributes = create_uml_attributes(uml_general)
115
- uml_general.owned_props = uml_general.attributes.select do |attr|
116
- attr.association.nil?
117
- end
118
- uml_general.assoc_props = uml_general.attributes.select(&:association)
119
- end
120
-
121
- def get_uml_general_attributes(general_node) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
122
- attrs = create_uml_class_attributes(general_node)
123
-
124
- attrs.map do |attr|
125
- ::Lutaml::Uml::GeneralAttribute.new.tap do |gen_attr|
126
- gen_attr.id = attr.id
127
- gen_attr.name = attr.name
128
- gen_attr.type = attr.type
129
- gen_attr.xmi_id = attr.xmi_id
130
- gen_attr.is_derived = !!attr.is_derived
131
- gen_attr.cardinality = attr.cardinality
132
- gen_attr.definition = attr.definition&.strip
133
- gen_attr.association = attr.association
134
- gen_attr.has_association = !!attr.association
135
- gen_attr.type_ns = attr.type_ns
136
- end
137
- end
138
- end
139
-
140
- def set_uml_generalization(general_id)
141
- uml_general_obj, next_general_node_id = get_uml_general(general_id)
142
-
143
- if next_general_node_id
144
- uml_general_obj.general = set_uml_generalization(
145
- next_general_node_id,
146
- )
147
- uml_general_obj.has_general = true
148
- end
149
-
150
- uml_general_obj
151
- end
152
-
153
- def loop_general_item( # rubocop:disable Metrics/MethodLength,Metrics/AbcSize,Metrics/PerceivedComplexity,Metrics/CyclomaticComplexity
154
- general_item, level, inherited_props, inherited_assoc_props
155
- )
156
- gen_upper_klass = general_item.general_upper_klass
157
- gen_name = general_item.general_name
158
-
159
- # reverse the order to show super class first
160
- general_item.attributes.reverse_each do |attr|
161
- attr.upper_klass = gen_upper_klass
162
- attr.gen_name = gen_name
163
- attr.level = level
164
-
165
- if attr.association
166
- inherited_assoc_props << attr
167
- else
168
- inherited_props << attr
169
- end
170
- end
171
-
172
- if general_item&.has_general && general_item.general
173
- level += 1
174
- loop_general_item(
175
- general_item.general, level, inherited_props, inherited_assoc_props
176
- )
177
- end
178
- end
179
-
180
- def create_uml_assoc_generalizations(klass) # rubocop:disable Metrics/AbcSize
181
- return [] if klass.generalization.nil? || klass.generalization.empty?
182
-
183
- klass.generalization.map do |gen|
184
- ::Lutaml::Uml::AssociationGeneralization.new.tap do |assoc_gen|
185
- assoc_gen.id = gen.id
186
- assoc_gen.type = gen.type
187
- assoc_gen.general = gen.general
188
- end
189
- end
190
- end
191
- end
192
- end
193
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Lutaml
4
- module Converter
5
- autoload :DslToUml, "lutaml/converter/dsl_to_uml"
6
- autoload :XmiToUmlGeneralization,
7
- "lutaml/converter/xmi_to_uml_generalization"
8
- autoload :XmiToUml, "lutaml/converter/xmi_to_uml"
9
- end
10
- end