lutaml 0.9.43 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (583) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +63 -0
  3. data/.github/workflows/links.yml +99 -0
  4. data/.github/workflows/rake.yml +13 -2
  5. data/.github/workflows/release.yml +12 -6
  6. data/.gitignore +3 -0
  7. data/.rubocop.yml +11 -3
  8. data/.rubocop_todo.yml +336 -0
  9. data/Gemfile +18 -7
  10. data/README.adoc +1854 -21
  11. data/Rakefile +7 -1
  12. data/bin/plantuml2lutaml +3 -3
  13. data/bin/yaml2lutaml +2 -2
  14. data/config/diagram_styles.yml +200 -0
  15. data/config/model_transformations.yml +266 -0
  16. data/config/package_metadata.example.yml +58 -0
  17. data/config/qea_schema.yml +1024 -0
  18. data/config/static_site.yml +166 -0
  19. data/docs/.github/workflows/docs.yml +66 -0
  20. data/docs/.github/workflows/links.yml +78 -0
  21. data/docs/CONTINUATION_PLAN.md +168 -0
  22. data/docs/Gemfile +13 -0
  23. data/docs/MIGRATION_GUIDE.md +202 -0
  24. data/docs/README.md +252 -0
  25. data/docs/REFACTOR_PLAN.md +214 -0
  26. data/docs/_config.yml +144 -0
  27. data/docs/_guides/diagram-generation.adoc +316 -0
  28. data/docs/_guides/index.adoc +135 -0
  29. data/docs/{lutaml-express.adoc → _guides/parsing/express-parsing.adoc} +7 -0
  30. data/docs/_guides/parsing/index.adoc +77 -0
  31. data/docs/{lutaml-xmi.adoc → _guides/parsing/xmi-parsing.adoc} +7 -0
  32. data/docs/_guides/sysml-modeling.adoc +37 -0
  33. data/docs/{lutaml-uml.adoc → _guides/uml-modeling.adoc} +8 -2
  34. data/docs/_pages/concepts/diagram-generation.adoc +337 -0
  35. data/docs/_pages/concepts/lur-format.adoc +711 -0
  36. data/docs/_pages/concepts/qea-parsing.adoc +418 -0
  37. data/docs/_pages/core/architecture.adoc +329 -0
  38. data/docs/_pages/core/installation.adoc +321 -0
  39. data/docs/_pages/core/overview.adoc +197 -0
  40. data/docs/_pages/index.adoc +48 -0
  41. data/docs/_pages/uml-syntax.adoc +995 -0
  42. data/docs/_references/configuration/diagram-styles.adoc +716 -0
  43. data/docs/_references/configuration/index.adoc +52 -0
  44. data/docs/_references/configuration/package-metadata.adoc +416 -0
  45. data/docs/_references/formats/index.adoc +42 -0
  46. data/docs/{lutaml_syntax.adoc → _references/formats/lutaml-syntax.adoc} +7 -0
  47. data/docs/_references/formats/qea-structure.adoc +1364 -0
  48. data/docs/_references/index.adoc +197 -0
  49. data/docs/_tutorials/index.adoc +109 -0
  50. data/docs/index.adoc +64 -0
  51. data/docs/lychee.toml +83 -0
  52. data/examples/UML_EA.DTD +6856 -0
  53. data/examples/lur/20251010_current_plateau_v5.1.lur +0 -0
  54. data/examples/lur/basic.lur +0 -0
  55. data/examples/lur/test-output.lur +0 -0
  56. data/examples/lur/test.lur +0 -0
  57. data/examples/lur_basic_usage.rb +220 -0
  58. data/examples/lur_cli_workflow.rb +262 -0
  59. data/examples/lur_statistics.rb +325 -0
  60. data/examples/qea/20251010_current_plateau_v5.1.qea +0 -0
  61. data/examples/qea/ArcGISWorkspace_template.qea +0 -0
  62. data/examples/qea/README_qea_parser.adoc +230 -0
  63. data/examples/qea/UmlModel_template.qea +0 -0
  64. data/examples/qea/basic.qea +0 -0
  65. data/examples/qea/simple.qea +0 -0
  66. data/examples/qea/simple_example.qea +0 -0
  67. data/examples/qea/test.qea +0 -0
  68. data/examples/xmi/20251010_current_plateau_v5.1.xmi +118121 -0
  69. data/examples/xmi/ArcGISWorkspace_template.xmi +1467 -0
  70. data/examples/xmi/Images/EAID_0016F797_D055_4717_AF1A_606413D0A166.svg +158 -0
  71. data/examples/xmi/Images/EAID_00C5C772_5A03_434f_BF30_AC37542A1AAC.svg +659 -0
  72. data/examples/xmi/Images/EAID_0114FD24_9E58_4664_98CD_71305B59AD11.svg +411 -0
  73. data/examples/xmi/Images/EAID_01661E1B_31B6_4167_BCCF_A00678FB4EA2.svg +102 -0
  74. data/examples/xmi/Images/EAID_039FE004_5408_4fc0_89AA_EB319E4F61C7.svg +169 -0
  75. data/examples/xmi/Images/EAID_04EE9625_17A0_4721_BC71_21756DB21D06.svg +403 -0
  76. data/examples/xmi/Images/EAID_05FF9417_1619_4170_B0C9_55AA6B988EF1.svg +175 -0
  77. data/examples/xmi/Images/EAID_09853FB2_AF8A_432f_94C5_6C47461BD937.svg +360 -0
  78. data/examples/xmi/Images/EAID_09927B7F_A657_4819_99E5_AC9DC99227D9.svg +195 -0
  79. data/examples/xmi/Images/EAID_09AF6B8A_557C_43bc_BBB0_47C1E9401EF3.svg +218 -0
  80. data/examples/xmi/Images/EAID_0BE81AC5_031B_4973_A9A0_223CCD92BAA1.svg +471 -0
  81. data/examples/xmi/Images/EAID_0EDEA6EF_4DC8_4979_BB80_28B1B9EBD1D4.svg +56 -0
  82. data/examples/xmi/Images/EAID_0F413534_6AD2_48bc_B4AF_8699D530D91D.svg +262 -0
  83. data/examples/xmi/Images/EAID_1321F39B_AD67_47b5_B5C3_3A42BBFCBDF9.svg +286 -0
  84. data/examples/xmi/Images/EAID_13E09C71_99E7_40b4_B72D_48AF6379BC2E.svg +164 -0
  85. data/examples/xmi/Images/EAID_144955D8_CB4E_4b59_BB0C_E549F7F84943.svg +66 -0
  86. data/examples/xmi/Images/EAID_14E9F5FD_F6CD_4f48_B1CD_F5A40C6D8E83.svg +95 -0
  87. data/examples/xmi/Images/EAID_157826AA_96A7_4278_89A6_94BD0F31409A.svg +63 -0
  88. data/examples/xmi/Images/EAID_159E9DA0_7A54_4817_B72A_401C750F675D.svg +306 -0
  89. data/examples/xmi/Images/EAID_17BC8309_8051_492b_BE87_61CCFE83DB16.svg +45 -0
  90. data/examples/xmi/Images/EAID_1A10EB6D_E2E5_42a6_A31E_B293D93FD07E.svg +193 -0
  91. data/examples/xmi/Images/EAID_1A290AFD_CE96_46a2_8351_A986D77CC727.svg +444 -0
  92. data/examples/xmi/Images/EAID_1B2D9309_C66B_492a_995C_95B2B02E0D7C.svg +168 -0
  93. data/examples/xmi/Images/EAID_1DE6B973_CE8A_416f_909B_54CEA1E5944E.svg +10 -0
  94. data/examples/xmi/Images/EAID_204F4ACC_2230_4c8d_9861_EF5A6844B712.svg +60 -0
  95. data/examples/xmi/Images/EAID_227300E2_4F4B_4955_83B9_FA626CE8680B.svg +188 -0
  96. data/examples/xmi/Images/EAID_22C24D4C_4894_480a_B113_0CB034CB59E9.svg +426 -0
  97. data/examples/xmi/Images/EAID_234BC4F5_8100_4969_BDCB_A24E0E641F23.svg +169 -0
  98. data/examples/xmi/Images/EAID_24446BFC_9FEB_4935_8970_65A4C562A93F.svg +277 -0
  99. data/examples/xmi/Images/EAID_24E8A45C_C99F_49b7_860A_9CF65FF76C76.svg +575 -0
  100. data/examples/xmi/Images/EAID_272F3181_4300_48b7_98A0_A8CFD12B1A72.svg +255 -0
  101. data/examples/xmi/Images/EAID_292E0D94_392C_4da6_A0B5_841501FAE50A.svg +183 -0
  102. data/examples/xmi/Images/EAID_29DD0967_ADAB_4abb_99C5_544821F5E7DA.svg +10 -0
  103. data/examples/xmi/Images/EAID_2A339928_E5EF_4ed2_9E5D_CC2CA5CF248B.svg +310 -0
  104. data/examples/xmi/Images/EAID_2A5E0832_06BE_4381_85D4_9B00E4F95575.svg +155 -0
  105. data/examples/xmi/Images/EAID_2AAB709F_EFCE_496f_8AFE_92809D66A0A9.svg +81 -0
  106. data/examples/xmi/Images/EAID_2C8DD882_8DEA_4065_89F8_DDA796AA0C85.svg +520 -0
  107. data/examples/xmi/Images/EAID_2E98EA19_37D8_4b70_BDCE_CFEE4FA800B0.svg +173 -0
  108. data/examples/xmi/Images/EAID_30D62231_110F_44e8_9C06_6FCDCBA53A09.svg +722 -0
  109. data/examples/xmi/Images/EAID_3206D3FD_1FC4_41c7_8D00_36DB908E9319.svg +181 -0
  110. data/examples/xmi/Images/EAID_3452CC53_9ACB_44eb_9C9D_B90CF862F284.svg +92 -0
  111. data/examples/xmi/Images/EAID_348EE46E_ABD9_40b0_82A1_0285E75BDC52.svg +187 -0
  112. data/examples/xmi/Images/EAID_34FF671B_CFDC_47ad_91DF_ECA6D8358180.svg +217 -0
  113. data/examples/xmi/Images/EAID_359DD694_0100_4bdf_AD5F_712D97E9C69B.svg +157 -0
  114. data/examples/xmi/Images/EAID_35DE714C_49A8_490e_913A_56F39EF317F9.svg +180 -0
  115. data/examples/xmi/Images/EAID_360C79F1_8EDF_41db_A069_DECDC55625BC.svg +31 -0
  116. data/examples/xmi/Images/EAID_36913C58_FF35_4ba2_A04B_9A4824E24609.svg +166 -0
  117. data/examples/xmi/Images/EAID_372F7F7B_57ED_469a_A640_70DB578B3C56.svg +361 -0
  118. data/examples/xmi/Images/EAID_37AC19B9_8433_4fee_A326_763170D54D06.svg +32 -0
  119. data/examples/xmi/Images/EAID_38170608_32B5_4a6f_A68D_A0D7C0C9D019.svg +234 -0
  120. data/examples/xmi/Images/EAID_3A77A5D0_4E1B_4116_8AAD_407FC422B47F.svg +183 -0
  121. data/examples/xmi/Images/EAID_3B8BD087_1683_46b1_8D0D_6F839C46C578.svg +42 -0
  122. data/examples/xmi/Images/EAID_3DC20801_AE8B_4e76_B08C_F574E8A90E13.svg +192 -0
  123. data/examples/xmi/Images/EAID_3DE28C70_C6D4_406c_B49F_EEF52148C8C1.svg +124 -0
  124. data/examples/xmi/Images/EAID_458E093C_BA2B_4292_BEC4_37511C163DDC.svg +140 -0
  125. data/examples/xmi/Images/EAID_45F9B1F7_E568_47c9_B229_953BC2E707E4.svg +266 -0
  126. data/examples/xmi/Images/EAID_46B3041A_8C23_46e6_8E14_ADE7012274C5.svg +80 -0
  127. data/examples/xmi/Images/EAID_47E4600F_CEC9_4245_9BF5_EE38007A9DDB.svg +584 -0
  128. data/examples/xmi/Images/EAID_4881CEEE_792C_4cb0_BEA7_54333B643D0A.svg +155 -0
  129. data/examples/xmi/Images/EAID_48D364F0_DCA4_41e8_B4D4_509B3023B969.svg +17 -0
  130. data/examples/xmi/Images/EAID_4DBDAB9E_4C1C_4cb1_A767_06BD743A50A7.svg +78 -0
  131. data/examples/xmi/Images/EAID_4EB75007_B31D_4f2c_8855_7E9D3A3B17F4.svg +454 -0
  132. data/examples/xmi/Images/EAID_4F421236_FCF3_4aae_B22A_C7E6A5EFBAC7.svg +81 -0
  133. data/examples/xmi/Images/EAID_4FC1D352_2102_4b73_BCB0_1410B29C6BD7.svg +379 -0
  134. data/examples/xmi/Images/EAID_4FE346EA_01E1_4b30_8BE6_BB32EA191E47.svg +126 -0
  135. data/examples/xmi/Images/EAID_5038EEE3_7DD0_4cca_9829_364E044D37E8.svg +199 -0
  136. data/examples/xmi/Images/EAID_508A37DC_9378_4f5a_BD96_48F4D24E03A5.svg +162 -0
  137. data/examples/xmi/Images/EAID_516DA1A2_F0EC_415c_9664_E4CA54E7F05C.svg +136 -0
  138. data/examples/xmi/Images/EAID_52A1DBD3_D3DA_4b6d_8F96_FC6F39F64242.svg +161 -0
  139. data/examples/xmi/Images/EAID_575E87BA_32E9_4a84_AA4E_0EFDFC5D4C07.svg +71 -0
  140. data/examples/xmi/Images/EAID_57E0F1A0_6C72_47ef_B922_B806F9A875E8.svg +209 -0
  141. data/examples/xmi/Images/EAID_5957C373_3FC1_482f_8F35_D809153A17F5.svg +123 -0
  142. data/examples/xmi/Images/EAID_59A66AE2_412C_48a6_BFC7_EA56CF11D269.svg +218 -0
  143. data/examples/xmi/Images/EAID_5A43833E_680B_4a90_8931_0C902304E029.svg +236 -0
  144. data/examples/xmi/Images/EAID_5D6DB5A0_5047_4bac_9E60_69904A60B56D.svg +353 -0
  145. data/examples/xmi/Images/EAID_5DA1E7A7_8E59_4803_A831_E9F3EC27328F.svg +242 -0
  146. data/examples/xmi/Images/EAID_5E2C1E2A_82A8_47f4_B2ED_1398D72BFCFD.svg +246 -0
  147. data/examples/xmi/Images/EAID_6052620C_4BD5_49f6_A21C_AD7E6DCA2795.svg +290 -0
  148. data/examples/xmi/Images/EAID_6481E2CC_35A6_43b0_88D4_10A667A2BC2D.svg +60 -0
  149. data/examples/xmi/Images/EAID_660C7D03_A26C_4977_A7BA_9D0A773DA811.svg +318 -0
  150. data/examples/xmi/Images/EAID_671F3C3D_35B6_4514_B5B6_DD7E84925493.svg +24 -0
  151. data/examples/xmi/Images/EAID_676B9C9A_D85F_4d2f_A46B_73F02090DC87.svg +127 -0
  152. data/examples/xmi/Images/EAID_6797FEFA_5801_48e4_8B9C_3C824C0E165D.svg +412 -0
  153. data/examples/xmi/Images/EAID_6807F4EE_18EF_4e7e_ACCF_D5BD323AFDE9.svg +130 -0
  154. data/examples/xmi/Images/EAID_69E81E34_CF28_4c7f_A48F_5941BA85CEE3.svg +96 -0
  155. data/examples/xmi/Images/EAID_6A3C55E8_3C3C_4f3a_8AAC_0299C5B23070.svg +10 -0
  156. data/examples/xmi/Images/EAID_6BAC333E_E2C2_42c7_8DDF_6B4FA0FFC03B.svg +143 -0
  157. data/examples/xmi/Images/EAID_6D0349D5_3F1B_4b28_82D2_910743DEB5E5.svg +114 -0
  158. data/examples/xmi/Images/EAID_6E95B74E_8A09_4698_9E9E_23BCFD2CE194.svg +37 -0
  159. data/examples/xmi/Images/EAID_70C77F92_5614_4b22_8C8E_67859F59D8FD.svg +254 -0
  160. data/examples/xmi/Images/EAID_71F9216B_E7A7_4083_B08E_6C71B57F3A1F.svg +187 -0
  161. data/examples/xmi/Images/EAID_73025C5A_08FC_47ff_AB2F_C7F79CF54B41.svg +145 -0
  162. data/examples/xmi/Images/EAID_74C974B6_6D07_425d_B7AC_C8899E3B4967.svg +76 -0
  163. data/examples/xmi/Images/EAID_7504FCD2_524C_4e7d_BAE4_4E58A8A8A12C.svg +196 -0
  164. data/examples/xmi/Images/EAID_78030266_3603_4747_9D75_03D16614BE7D.svg +35 -0
  165. data/examples/xmi/Images/EAID_785226C1_12B1_4104_A4C1_F19B70B9FB71.svg +348 -0
  166. data/examples/xmi/Images/EAID_7854470F_26B8_4d3c_AFDF_C05BCE6ED0CD.svg +72 -0
  167. data/examples/xmi/Images/EAID_794F4A8F_18CA_4e9f_8477_A6F0E5ED22D4.svg +187 -0
  168. data/examples/xmi/Images/EAID_7A24839E_C8AE_424d_B7D2_6DA16DC813E7.svg +114 -0
  169. data/examples/xmi/Images/EAID_7A3649FD_E960_4ae6_B9B1_A9001C066AE7.svg +181 -0
  170. data/examples/xmi/Images/EAID_7B2C6765_AB68_439a_87F3_DAC323CB2AF5.svg +196 -0
  171. data/examples/xmi/Images/EAID_7C44AC09_27C1_47b3_9A85_88EC71C081FF.svg +55 -0
  172. data/examples/xmi/Images/EAID_7CE102CA_97C1_4cac_BD3B_0500D3712D2A.svg +195 -0
  173. data/examples/xmi/Images/EAID_7D960BD8_65D8_4934_9C11_4EF860DD8FBA.svg +90 -0
  174. data/examples/xmi/Images/EAID_80939C98_A456_48c3_BCEA_4B72851F2DF6.svg +174 -0
  175. data/examples/xmi/Images/EAID_812FE862_76ED_44f0_B678_7A4601B395CF.svg +142 -0
  176. data/examples/xmi/Images/EAID_81B76F5B_9D64_4bbf_8AC8_34234FB87533.svg +740 -0
  177. data/examples/xmi/Images/EAID_84352F1A_195B_411b_9552_5BFC40BF90B5.svg +105 -0
  178. data/examples/xmi/Images/EAID_846DD800_139C_4d47_A1DF_3FB1AC5D130F.svg +554 -0
  179. data/examples/xmi/Images/EAID_84A9C65B_FD6D_4bb5_818F_E8C35FF5BCD1.svg +228 -0
  180. data/examples/xmi/Images/EAID_853674F5_7DC9_4aae_809B_5728098B5D5B.svg +154 -0
  181. data/examples/xmi/Images/EAID_860CBBFB_2F27_408f_9144_751F9D1F487F.svg +273 -0
  182. data/examples/xmi/Images/EAID_87476527_7B9B_4b92_967E_3D38365470CA.svg +239 -0
  183. data/examples/xmi/Images/EAID_87DAE930_5069_4c58_AC65_4B0B2C0F32C8.svg +10 -0
  184. data/examples/xmi/Images/EAID_88AF6BD7_BC34_406f_BB59_47CFAB4A7D5D.svg +116 -0
  185. data/examples/xmi/Images/EAID_88D0CB44_20D0_44fc_A6E3_B663332EF401.svg +200 -0
  186. data/examples/xmi/Images/EAID_8BB1CA0C_C003_4678_973B_A1C3308E021D.svg +136 -0
  187. data/examples/xmi/Images/EAID_8DAB169F_D189_4320_A0F5_4443E3297F0E.svg +181 -0
  188. data/examples/xmi/Images/EAID_8FD488EF_BAAB_40ec_A7ED_F7CC831D546E.svg +324 -0
  189. data/examples/xmi/Images/EAID_90BCA409_BB45_42c5_AFA5_45FE3D995904.svg +342 -0
  190. data/examples/xmi/Images/EAID_926AFE38_01FA_469e_B6AA_ED5F4D62B66F.svg +105 -0
  191. data/examples/xmi/Images/EAID_92AB0FD0_B0FB_4ceb_8EAE_66B6600D31D7.svg +681 -0
  192. data/examples/xmi/Images/EAID_92C43670_3057_47f1_A576_C60843FF3D26.svg +136 -0
  193. data/examples/xmi/Images/EAID_93F63576_BE01_4cd8_8A91_C674FF77FC3D.svg +718 -0
  194. data/examples/xmi/Images/EAID_9400D9BC_05A5_41fc_83F7_02E5C67F9718.svg +487 -0
  195. data/examples/xmi/Images/EAID_95246DCF_1C09_4a16_9512_98000F56B3D8.svg +292 -0
  196. data/examples/xmi/Images/EAID_9994BF62_51E2_42cd_BB35_16C537B6718A.svg +715 -0
  197. data/examples/xmi/Images/EAID_9AAD6C21_B1E7_4472_B64A_FB5E3569D970.svg +116 -0
  198. data/examples/xmi/Images/EAID_9BD7189A_877B_4ca9_B42C_817DEF144FB2.svg +284 -0
  199. data/examples/xmi/Images/EAID_9DA6C553_94FC_4204_83AD_ECC4B45A53EF.svg +159 -0
  200. data/examples/xmi/Images/EAID_9EE6A41B_5FAA_4c89_B98F_732059778630.svg +10 -0
  201. data/examples/xmi/Images/EAID_9F1A4B54_46F6_435c_9529_E43E54CF6050.svg +172 -0
  202. data/examples/xmi/Images/EAID_9FE1EA7B_4CEF_4976_A281_93A94315BD84.svg +153 -0
  203. data/examples/xmi/Images/EAID_A0695647_6172_4262_8C30_67441399609C.svg +290 -0
  204. data/examples/xmi/Images/EAID_A081C63E_D6F2_41a7_A99C_307836754AFA.svg +149 -0
  205. data/examples/xmi/Images/EAID_A24E2778_5AD9_44f2_AB8F_5CD3913477D6.svg +194 -0
  206. data/examples/xmi/Images/EAID_A264F089_F9B3_406c_A3A8_FF34903797D3.svg +143 -0
  207. data/examples/xmi/Images/EAID_A282E5D1_2A13_4e7f_BC76_5D086DD4A577.svg +357 -0
  208. data/examples/xmi/Images/EAID_A3BCE1D6_9DB5_4272_A020_4C0E194B99CC.svg +171 -0
  209. data/examples/xmi/Images/EAID_A56E3818_D1B8_4b63_B69E_FBAC4A8AF482.svg +218 -0
  210. data/examples/xmi/Images/EAID_A57215D5_75C5_4532_BCF4_264A77CD62F1.svg +204 -0
  211. data/examples/xmi/Images/EAID_A59065AF_9669_486c_9582_9693177CFC7F.svg +263 -0
  212. data/examples/xmi/Images/EAID_A759374D_589A_488c_99EF_537ACB9B1FF9.svg +398 -0
  213. data/examples/xmi/Images/EAID_A7B25F46_F18A_4373_B16D_8C6AC0B868B0.svg +174 -0
  214. data/examples/xmi/Images/EAID_A9FE9E6F_A5F4_47e5_A6BA_26E22C7346B6.svg +310 -0
  215. data/examples/xmi/Images/EAID_AA62CDEB_55EC_498d_B326_4AA2C9AF6A05.svg +144 -0
  216. data/examples/xmi/Images/EAID_AAF52AF6_F7F9_4005_AE46_8920847BEA03.svg +144 -0
  217. data/examples/xmi/Images/EAID_AB281AC1_7CB8_404a_8124_34343DDD84E2.svg +198 -0
  218. data/examples/xmi/Images/EAID_AB7F1FDF_A66B_42a1_B8A3_7F594BAAD508.svg +143 -0
  219. data/examples/xmi/Images/EAID_AC2191E3_76E3_40b2_9E21_0E0B9B5277D2.svg +114 -0
  220. data/examples/xmi/Images/EAID_AD451676_A7C8_4c6a_A925_A9B9CA344142.svg +339 -0
  221. data/examples/xmi/Images/EAID_ADBA40A1_9375_4c1b_9938_0990612EB615.svg +429 -0
  222. data/examples/xmi/Images/EAID_ADC8773C_1B27_48ac_BAC1_14C1C919FAF6.svg +245 -0
  223. data/examples/xmi/Images/EAID_AE0718DF_AF69_4ea1_A099_E20028FE40A1.svg +173 -0
  224. data/examples/xmi/Images/EAID_B0DDB85D_A00C_4a7f_8C06_CCA15E5E4FE5.svg +31 -0
  225. data/examples/xmi/Images/EAID_B27ED282_D5E5_4f33_8AC1_62802F9E0B35.svg +256 -0
  226. data/examples/xmi/Images/EAID_B3AFECCB_17DD_44d6_8A44_2C38D9A64C0B.svg +95 -0
  227. data/examples/xmi/Images/EAID_B3B6C5B1_278E_4714_8244_B6C28B66AB50.svg +176 -0
  228. data/examples/xmi/Images/EAID_B53E76CD_A0F2_4e2f_B3AB_796D85964EF2.svg +179 -0
  229. data/examples/xmi/Images/EAID_B55D6E67_0BDD_4163_B359_11A6FBA89C74.svg +207 -0
  230. data/examples/xmi/Images/EAID_B58D1A53_E860_41a3_8352_11C274093E83.svg +189 -0
  231. data/examples/xmi/Images/EAID_B62C02B3_69DB_49e9_8089_4EE398BDE666.svg +165 -0
  232. data/examples/xmi/Images/EAID_BC008774_B539_4150_8174_B675989053D0.svg +22 -0
  233. data/examples/xmi/Images/EAID_BC1F7E00_082D_4a26_922B_3967A8D66859.svg +266 -0
  234. data/examples/xmi/Images/EAID_BDA613D8_402A_475a_AA15_683D88FD3D23.svg +183 -0
  235. data/examples/xmi/Images/EAID_C028B286_4C85_47d8_B6D5_80B28F556E82.svg +303 -0
  236. data/examples/xmi/Images/EAID_C173A6F4_1D1B_400e_AD8C_64FFF7CD5BE5.svg +178 -0
  237. data/examples/xmi/Images/EAID_C1834072_CADC_4ce4_B0FC_8284AE5CF4A4.svg +158 -0
  238. data/examples/xmi/Images/EAID_C1EC985B_5CBD_4e91_8661_EB4EF23781D9.svg +286 -0
  239. data/examples/xmi/Images/EAID_C31C1314_B679_4413_B8FE_A2CD584FC128.svg +305 -0
  240. data/examples/xmi/Images/EAID_C37CFBD6_69BA_42fb_9AC7_2D329D931BCF.svg +171 -0
  241. data/examples/xmi/Images/EAID_C857C934_306F_463a_87D5_257CB225ECFE.svg +174 -0
  242. data/examples/xmi/Images/EAID_C96797DE_2238_42d3_896A_9F92500270ED.svg +180 -0
  243. data/examples/xmi/Images/EAID_C96CBC24_B20E_459a_8F9D_75B61CDCB89F.svg +656 -0
  244. data/examples/xmi/Images/EAID_CACB523D_56A5_4f05_B3C2_51BB18F380FD.svg +158 -0
  245. data/examples/xmi/Images/EAID_CB34B578_101B_48b4_9271_214FFEA6A83A.svg +409 -0
  246. data/examples/xmi/Images/EAID_CBBD6CF4_0A1E_4406_9930_89DE43527910.svg +361 -0
  247. data/examples/xmi/Images/EAID_CC06A828_3750_472f_8DB2_C2E0863FCE17.svg +96 -0
  248. data/examples/xmi/Images/EAID_CD5CF053_1772_4a0f_962D_B17054D8EEAA.svg +173 -0
  249. data/examples/xmi/Images/EAID_CE440B5A_9534_4c75_9BA5_50862BB396C2.svg +97 -0
  250. data/examples/xmi/Images/EAID_CE4734FC_7986_4b3a_807F_A5B2C7EDE9E4.svg +193 -0
  251. data/examples/xmi/Images/EAID_D14AA320_9D41_4366_8739_9C2C21F96AE1.svg +32 -0
  252. data/examples/xmi/Images/EAID_D2FA55D3_C733_4a4d_92D0_0BC7AC0BB5BC.svg +108 -0
  253. data/examples/xmi/Images/EAID_D351FC34_FB03_488d_ADA4_BDB93DA9CB02.svg +49 -0
  254. data/examples/xmi/Images/EAID_D368FDF3_BDC5_4718_A701_351C8587A376.svg +592 -0
  255. data/examples/xmi/Images/EAID_D4DA8C48_3998_450d_87C4_9D65C9FECDB4.svg +42 -0
  256. data/examples/xmi/Images/EAID_D5464ECF_290E_4b2b_A6C4_25BE80F886CB.svg +76 -0
  257. data/examples/xmi/Images/EAID_D55235B0_61E9_461a_8379_2B8BF2403BE2.svg +147 -0
  258. data/examples/xmi/Images/EAID_D555ED73_F010_45d7_8A53_45A33C64C249.svg +318 -0
  259. data/examples/xmi/Images/EAID_D7AAC526_267E_45a0_A853_3207F02363F8.svg +45 -0
  260. data/examples/xmi/Images/EAID_D998B20D_A875_4ef8_A9CE_996BE56602BD.svg +158 -0
  261. data/examples/xmi/Images/EAID_DBFA8B39_F5B7_4c0e_9552_19AEAE5BA64E.svg +200 -0
  262. data/examples/xmi/Images/EAID_DE47A47D_E7BE_4e6f_BA81_F789EE8CFE72.svg +61 -0
  263. data/examples/xmi/Images/EAID_DFBB1072_8EC5_4384_8241_7EDF4B6B888B.svg +78 -0
  264. data/examples/xmi/Images/EAID_E325B9D8_E955_4aed_8125_63167BD40320.svg +67 -0
  265. data/examples/xmi/Images/EAID_E32D9D02_CAE9_4a47_92A8_3290EDCD6E6D.svg +79 -0
  266. data/examples/xmi/Images/EAID_E3B28611_7857_458a_B0BC_736E777B88EC.svg +194 -0
  267. data/examples/xmi/Images/EAID_E43C37EC_1176_4d2e_8B98_B6F3DFF6A092.svg +96 -0
  268. data/examples/xmi/Images/EAID_E591C1CF_7F35_4160_8A72_DFA097AD5811.svg +271 -0
  269. data/examples/xmi/Images/EAID_E77C66A2_2E94_4196_BFC6_662FE5AEEB6F.svg +332 -0
  270. data/examples/xmi/Images/EAID_E7AABA98_2450_4986_9736_DCCAF0108C50.svg +639 -0
  271. data/examples/xmi/Images/EAID_E7D9A2C4_72D6_40b9_8EB8_6B35476246B3.svg +134 -0
  272. data/examples/xmi/Images/EAID_E9CDAD85_ECF1_43de_819F_30A0D01785E6.svg +193 -0
  273. data/examples/xmi/Images/EAID_EC8AF507_F441_4e8a_B8A7_C1690F3C7D0B.svg +58 -0
  274. data/examples/xmi/Images/EAID_ED501058_D540_47ac_8EBC_5921E8C0BF57.svg +384 -0
  275. data/examples/xmi/Images/EAID_EFBF5F0F_DF74_4944_8791_114F5637C335.svg +590 -0
  276. data/examples/xmi/Images/EAID_EFFFA027_2A1F_425c_8437_BF89AADC8893.svg +365 -0
  277. data/examples/xmi/Images/EAID_F07E7718_B2C2_4a65_B5DD_477CB73E971E.svg +165 -0
  278. data/examples/xmi/Images/EAID_F0F20BDF_C729_47f7_B6FC_25ED2C4609CA.svg +61 -0
  279. data/examples/xmi/Images/EAID_F32E5AFE_8605_4c77_AE69_D0D0A6E380AC.svg +76 -0
  280. data/examples/xmi/Images/EAID_F3F00F45_CD37_46fd_B521_D1040EB2FB16.svg +123 -0
  281. data/examples/xmi/Images/EAID_F46E8F19_D8F1_4a3d_B87B_B0BAB4F50F50.svg +202 -0
  282. data/examples/xmi/Images/EAID_F48E5F6E_2411_4635_9315_3EAA4CFA29F7.svg +351 -0
  283. data/examples/xmi/Images/EAID_F4C23F9E_DD74_4fed_B75D_AD3C6448BA24.svg +189 -0
  284. data/examples/xmi/Images/EAID_F853B3C4_B145_4ef0_B261_C3CC0475B6D2.svg +215 -0
  285. data/examples/xmi/Images/EAID_F8BE68CA_1F8F_47e5_9454_01A2EB7D388A.svg +124 -0
  286. data/examples/xmi/Images/EAID_F92A6A28_612E_468e_9E39_D7AE7D24E24D.svg +208 -0
  287. data/examples/xmi/Images/EAID_F995FA49_B86E_4c94_BE5E_C928FB6B87D0.svg +302 -0
  288. data/examples/xmi/Images/EAID_FEAE013A_A4E4_4283_A491_1FEB8D0EBA28.svg +524 -0
  289. data/examples/xmi/Images/EAID_FEBE5726_3751_470b_9023_8C569202E97E.svg +730 -0
  290. data/examples/xmi/UML_EA.DTD +6856 -0
  291. data/examples/xmi/UmlModel_template.xmi +23 -0
  292. data/examples/xmi/basic.xmi +9086 -0
  293. data/examples/xmi/simple.xmi +655 -0
  294. data/examples/xmi/simple_example.xmi +23 -0
  295. data/examples/xmi/test.xmi +1703 -0
  296. data/exe/lutaml +2 -16
  297. data/exe/lutaml-wsd2uml +3 -3
  298. data/exe/lutaml-yaml2uml +2 -2
  299. data/lib/lutaml/cli/commands/base_command.rb +118 -0
  300. data/lib/lutaml/cli/element_identifier.rb +165 -0
  301. data/lib/lutaml/cli/enhanced_formatter.rb +502 -0
  302. data/lib/lutaml/cli/interactive_shell.rb +911 -0
  303. data/lib/lutaml/cli/lml_commands.rb +201 -0
  304. data/lib/lutaml/cli/output_formatter.rb +348 -0
  305. data/lib/lutaml/cli/resource_registry.rb +127 -0
  306. data/lib/lutaml/cli/tree_view_formatter.rb +308 -0
  307. data/lib/lutaml/cli/uml/build_command.rb +538 -0
  308. data/lib/lutaml/cli/uml/diagram_command.rb +421 -0
  309. data/lib/lutaml/cli/uml/export_command.rb +78 -0
  310. data/lib/lutaml/cli/uml/find_command.rb +122 -0
  311. data/lib/lutaml/cli/uml/info_command.rb +104 -0
  312. data/lib/lutaml/cli/uml/inspect_command.rb +88 -0
  313. data/lib/lutaml/cli/uml/ls_command.rb +105 -0
  314. data/lib/lutaml/cli/uml/repl_command.rb +50 -0
  315. data/lib/lutaml/cli/uml/search_command.rb +88 -0
  316. data/lib/lutaml/cli/uml/serve_command.rb +59 -0
  317. data/lib/lutaml/cli/uml/shared_helpers.rb +51 -0
  318. data/lib/lutaml/cli/uml/spa_command.rb +209 -0
  319. data/lib/lutaml/cli/uml/stats_command.rb +60 -0
  320. data/lib/lutaml/cli/uml/tree_command.rb +85 -0
  321. data/lib/lutaml/cli/uml/validate_command.rb +195 -0
  322. data/lib/lutaml/cli/uml/verify_command.rb +107 -0
  323. data/lib/lutaml/cli/uml_commands.rb +163 -0
  324. data/lib/lutaml/cli.rb +72 -0
  325. data/lib/lutaml/command_line.rb +8 -6
  326. data/lib/lutaml/converter/dsl_to_uml.rb +2 -0
  327. data/lib/lutaml/converter/xmi_to_uml.rb +40 -19
  328. data/lib/lutaml/ea/diagram/configuration.rb +379 -0
  329. data/lib/lutaml/ea/diagram/element_renderers/base_renderer.rb +81 -0
  330. data/lib/lutaml/ea/diagram/element_renderers/class_renderer.rb +330 -0
  331. data/lib/lutaml/ea/diagram/element_renderers/connector_renderer.rb +55 -0
  332. data/lib/lutaml/ea/diagram/element_renderers/package_renderer.rb +69 -0
  333. data/lib/lutaml/ea/diagram/extractor.rb +559 -0
  334. data/lib/lutaml/ea/diagram/layout_engine.rb +251 -0
  335. data/lib/lutaml/ea/diagram/path_builder.rb +258 -0
  336. data/lib/lutaml/ea/diagram/style_parser.rb +315 -0
  337. data/lib/lutaml/ea/diagram/style_resolver.rb +291 -0
  338. data/lib/lutaml/ea/diagram/svg_renderer.rb +285 -0
  339. data/lib/lutaml/ea/diagram/util.rb +69 -0
  340. data/lib/lutaml/ea/diagram.rb +77 -0
  341. data/lib/lutaml/express/parsers/exp.rb +1 -1
  342. data/lib/lutaml/express.rb +4 -2
  343. data/lib/lutaml/formatter/base.rb +6 -6
  344. data/lib/lutaml/formatter/graphviz.rb +10 -8
  345. data/lib/lutaml/formatter.rb +3 -0
  346. data/lib/lutaml/layout/engine.rb +9 -7
  347. data/lib/lutaml/layout/graph_viz_engine.rb +2 -1
  348. data/lib/lutaml/layout.rb +8 -0
  349. data/lib/lutaml/model_transformations/configuration.rb +333 -0
  350. data/lib/lutaml/model_transformations/format_registry.rb +394 -0
  351. data/lib/lutaml/model_transformations/parsers/base_parser.rb +389 -0
  352. data/lib/lutaml/model_transformations/parsers/qea_parser.rb +455 -0
  353. data/lib/lutaml/model_transformations/parsers/xmi_parser.rb +301 -0
  354. data/lib/lutaml/model_transformations/transformation_engine.rb +409 -0
  355. data/lib/lutaml/model_transformations.rb +143 -0
  356. data/lib/lutaml/parser.rb +15 -7
  357. data/lib/lutaml/qea/benchmark.rb +212 -0
  358. data/lib/lutaml/qea/database.rb +324 -0
  359. data/lib/lutaml/qea/factory/association_transformer.rb +115 -0
  360. data/lib/lutaml/qea/factory/attribute_tag_transformer.rb +60 -0
  361. data/lib/lutaml/qea/factory/attribute_transformer.rb +103 -0
  362. data/lib/lutaml/qea/factory/base_transformer.rb +132 -0
  363. data/lib/lutaml/qea/factory/class_transformer.rb +734 -0
  364. data/lib/lutaml/qea/factory/constraint_transformer.rb +78 -0
  365. data/lib/lutaml/qea/factory/data_type_transformer.rb +162 -0
  366. data/lib/lutaml/qea/factory/diagram_transformer.rb +182 -0
  367. data/lib/lutaml/qea/factory/document_builder.rb +275 -0
  368. data/lib/lutaml/qea/factory/ea_to_uml_factory.rb +260 -0
  369. data/lib/lutaml/qea/factory/enum_transformer.rb +87 -0
  370. data/lib/lutaml/qea/factory/generalization_transformer.rb +106 -0
  371. data/lib/lutaml/qea/factory/instance_transformer.rb +96 -0
  372. data/lib/lutaml/qea/factory/object_property_transformer.rb +61 -0
  373. data/lib/lutaml/qea/factory/operation_transformer.rb +75 -0
  374. data/lib/lutaml/qea/factory/package_transformer.rb +199 -0
  375. data/lib/lutaml/qea/factory/reference_resolver.rb +99 -0
  376. data/lib/lutaml/qea/factory/tagged_value_transformer.rb +41 -0
  377. data/lib/lutaml/qea/factory/transformer_registry.rb +85 -0
  378. data/lib/lutaml/qea/file_detector.rb +178 -0
  379. data/lib/lutaml/qea/infrastructure/database_connection.rb +100 -0
  380. data/lib/lutaml/qea/infrastructure/schema_reader.rb +136 -0
  381. data/lib/lutaml/qea/infrastructure/table_reader.rb +224 -0
  382. data/lib/lutaml/qea/models/base_model.rb +48 -0
  383. data/lib/lutaml/qea/models/ea_attribute.rb +135 -0
  384. data/lib/lutaml/qea/models/ea_attribute_tag.rb +109 -0
  385. data/lib/lutaml/qea/models/ea_complexity_type.rb +81 -0
  386. data/lib/lutaml/qea/models/ea_connector.rb +162 -0
  387. data/lib/lutaml/qea/models/ea_connector_type.rb +62 -0
  388. data/lib/lutaml/qea/models/ea_constraint_type.rb +65 -0
  389. data/lib/lutaml/qea/models/ea_datatype.rb +108 -0
  390. data/lib/lutaml/qea/models/ea_diagram.rb +117 -0
  391. data/lib/lutaml/qea/models/ea_diagram_link.rb +80 -0
  392. data/lib/lutaml/qea/models/ea_diagram_object.rb +86 -0
  393. data/lib/lutaml/qea/models/ea_diagram_type.rb +58 -0
  394. data/lib/lutaml/qea/models/ea_document.rb +68 -0
  395. data/lib/lutaml/qea/models/ea_object.rb +208 -0
  396. data/lib/lutaml/qea/models/ea_object_constraint.rb +62 -0
  397. data/lib/lutaml/qea/models/ea_object_property.rb +96 -0
  398. data/lib/lutaml/qea/models/ea_object_type.rb +75 -0
  399. data/lib/lutaml/qea/models/ea_operation.rb +153 -0
  400. data/lib/lutaml/qea/models/ea_operation_param.rb +73 -0
  401. data/lib/lutaml/qea/models/ea_package.rb +75 -0
  402. data/lib/lutaml/qea/models/ea_script.rb +69 -0
  403. data/lib/lutaml/qea/models/ea_status_type.rb +68 -0
  404. data/lib/lutaml/qea/models/ea_stereotype.rb +59 -0
  405. data/lib/lutaml/qea/models/ea_tagged_value.rb +105 -0
  406. data/lib/lutaml/qea/models/ea_xref.rb +174 -0
  407. data/lib/lutaml/qea/parser.rb +61 -0
  408. data/lib/lutaml/qea/repositories/base_repository.rb +215 -0
  409. data/lib/lutaml/qea/repositories/object_repository.rb +221 -0
  410. data/lib/lutaml/qea/services/configuration.rb +211 -0
  411. data/lib/lutaml/qea/services/database_loader.rb +215 -0
  412. data/lib/lutaml/qea/validation/association_validator.rb +75 -0
  413. data/lib/lutaml/qea/validation/attribute_validator.rb +103 -0
  414. data/lib/lutaml/qea/validation/base_validator.rb +305 -0
  415. data/lib/lutaml/qea/validation/class_validator.rb +123 -0
  416. data/lib/lutaml/qea/validation/database/circular_reference_validator.rb +111 -0
  417. data/lib/lutaml/qea/validation/database/orphan_validator.rb +155 -0
  418. data/lib/lutaml/qea/validation/database/referential_integrity_validator.rb +130 -0
  419. data/lib/lutaml/qea/validation/diagram_validator.rb +114 -0
  420. data/lib/lutaml/qea/validation/formatters/json_formatter.rb +137 -0
  421. data/lib/lutaml/qea/validation/formatters/text_formatter.rb +235 -0
  422. data/lib/lutaml/qea/validation/operation_validator.rb +81 -0
  423. data/lib/lutaml/qea/validation/package_validator.rb +113 -0
  424. data/lib/lutaml/qea/validation/validation_engine.rb +497 -0
  425. data/lib/lutaml/qea/validation/validation_message.rb +144 -0
  426. data/lib/lutaml/qea/validation/validation_result.rb +212 -0
  427. data/lib/lutaml/qea/validation/validator_registry.rb +134 -0
  428. data/lib/lutaml/qea/verification/comparison_result.rb +264 -0
  429. data/lib/lutaml/qea/verification/document_normalizer.rb +177 -0
  430. data/lib/lutaml/qea/verification/document_verifier.rb +320 -0
  431. data/lib/lutaml/qea/verification/element_comparator.rb +306 -0
  432. data/lib/lutaml/qea/verification/structure_matcher.rb +287 -0
  433. data/lib/lutaml/qea.rb +226 -0
  434. data/lib/lutaml/sysml/allocate.rb +2 -0
  435. data/lib/lutaml/sysml/allocated.rb +2 -0
  436. data/lib/lutaml/sysml/binding_connector.rb +2 -0
  437. data/lib/lutaml/sysml/block.rb +2 -0
  438. data/lib/lutaml/sysml/constraint_block.rb +2 -0
  439. data/lib/lutaml/sysml/copy.rb +2 -0
  440. data/lib/lutaml/sysml/derive_requirement.rb +2 -0
  441. data/lib/lutaml/sysml/nested_connector_end.rb +2 -0
  442. data/lib/lutaml/sysml/refine.rb +2 -0
  443. data/lib/lutaml/sysml/requirement.rb +2 -0
  444. data/lib/lutaml/sysml/requirement_related.rb +2 -0
  445. data/lib/lutaml/sysml/satisfy.rb +2 -0
  446. data/lib/lutaml/sysml/test_case.rb +2 -0
  447. data/lib/lutaml/sysml/trace.rb +2 -0
  448. data/lib/lutaml/sysml/verify.rb +2 -0
  449. data/lib/lutaml/sysml/xmi_file.rb +2 -0
  450. data/lib/lutaml/sysml.rb +3 -1
  451. data/lib/lutaml/uml/association.rb +4 -0
  452. data/lib/lutaml/uml/class.rb +11 -9
  453. data/lib/lutaml/uml/classifier.rb +3 -0
  454. data/lib/lutaml/uml/comment.rb +13 -0
  455. data/lib/lutaml/uml/data_type.rb +7 -6
  456. data/lib/lutaml/uml/diagram.rb +12 -0
  457. data/lib/lutaml/uml/diagram_link.rb +26 -0
  458. data/lib/lutaml/uml/diagram_object.rb +30 -0
  459. data/lib/lutaml/uml/document.rb +18 -0
  460. data/lib/lutaml/uml/enum.rb +4 -3
  461. data/lib/lutaml/uml/fontname.rb +13 -0
  462. data/lib/lutaml/uml/generalization.rb +2 -0
  463. data/lib/lutaml/uml/group.rb +2 -0
  464. data/lib/lutaml/uml/namespace.rb +2 -2
  465. data/lib/lutaml/uml/node/{field.rb → attribute.rb} +4 -4
  466. data/lib/lutaml/uml/node/base.rb +1 -1
  467. data/lib/lutaml/uml/node/class_node.rb +12 -12
  468. data/lib/lutaml/uml/node/class_relationship.rb +2 -2
  469. data/lib/lutaml/uml/node/document.rb +2 -2
  470. data/lib/lutaml/uml/node/method_argument.rb +3 -3
  471. data/lib/lutaml/uml/node/{method.rb → operation.rb} +4 -4
  472. data/lib/lutaml/uml/node/relationship.rb +3 -3
  473. data/lib/lutaml/uml/package.rb +7 -4
  474. data/lib/lutaml/uml/package_path.rb +235 -0
  475. data/lib/lutaml/uml/parsers/attribute.rb +2 -2
  476. data/lib/lutaml/uml/parsers/dsl.rb +3 -4
  477. data/lib/lutaml/uml/parsers/yaml.rb +1 -1
  478. data/lib/lutaml/uml/qualified_name.rb +178 -0
  479. data/lib/lutaml/uml/tagged_value.rb +21 -0
  480. data/lib/lutaml/uml/top_element.rb +7 -1
  481. data/lib/lutaml/uml/top_element_attribute.rb +4 -0
  482. data/lib/lutaml/uml/validation/document_structure_validator.rb +389 -0
  483. data/lib/lutaml/uml.rb +89 -45
  484. data/lib/lutaml/uml_repository/error_handler.rb +203 -0
  485. data/lib/lutaml/uml_repository/exporters/base_exporter.rb +61 -0
  486. data/lib/lutaml/uml_repository/exporters/json_exporter.rb +344 -0
  487. data/lib/lutaml/uml_repository/exporters/markdown_exporter.rb +598 -0
  488. data/lib/lutaml/uml_repository/index_builder.rb +460 -0
  489. data/lib/lutaml/uml_repository/lazy_repository.rb +238 -0
  490. data/lib/lutaml/uml_repository/package_exporter.rb +336 -0
  491. data/lib/lutaml/uml_repository/package_loader.rb +220 -0
  492. data/lib/lutaml/uml_repository/package_metadata.rb +77 -0
  493. data/lib/lutaml/uml_repository/presenters/association_presenter.rb +86 -0
  494. data/lib/lutaml/uml_repository/presenters/attribute_presenter.rb +101 -0
  495. data/lib/lutaml/uml_repository/presenters/class_presenter.rb +75 -0
  496. data/lib/lutaml/uml_repository/presenters/datatype_presenter.rb +108 -0
  497. data/lib/lutaml/uml_repository/presenters/diagram_presenter.rb +508 -0
  498. data/lib/lutaml/uml_repository/presenters/element_presenter.rb +92 -0
  499. data/lib/lutaml/uml_repository/presenters/enum_presenter.rb +83 -0
  500. data/lib/lutaml/uml_repository/presenters/package_presenter.rb +48 -0
  501. data/lib/lutaml/uml_repository/presenters/presenter_factory.rb +76 -0
  502. data/lib/lutaml/uml_repository/queries/association_query.rb +187 -0
  503. data/lib/lutaml/uml_repository/queries/base_query.rb +45 -0
  504. data/lib/lutaml/uml_repository/queries/class_query.rb +117 -0
  505. data/lib/lutaml/uml_repository/queries/diagram_query.rb +111 -0
  506. data/lib/lutaml/uml_repository/queries/inheritance_query.rb +259 -0
  507. data/lib/lutaml/uml_repository/queries/package_query.rb +239 -0
  508. data/lib/lutaml/uml_repository/queries/search_query.rb +357 -0
  509. data/lib/lutaml/uml_repository/query_dsl/conditions/base_condition.rb +28 -0
  510. data/lib/lutaml/uml_repository/query_dsl/conditions/block_condition.rb +46 -0
  511. data/lib/lutaml/uml_repository/query_dsl/conditions/hash_condition.rb +84 -0
  512. data/lib/lutaml/uml_repository/query_dsl/conditions/package_condition.rb +84 -0
  513. data/lib/lutaml/uml_repository/query_dsl/order.rb +90 -0
  514. data/lib/lutaml/uml_repository/query_dsl/query_builder.rb +296 -0
  515. data/lib/lutaml/uml_repository/repository.rb +764 -0
  516. data/lib/lutaml/uml_repository/repository_enhanced.rb +439 -0
  517. data/lib/lutaml/uml_repository/search_result.rb +86 -0
  518. data/lib/lutaml/uml_repository/static_site/configuration.rb +270 -0
  519. data/lib/lutaml/uml_repository/static_site/data_transformer.rb +967 -0
  520. data/lib/lutaml/uml_repository/static_site/generator.rb +401 -0
  521. data/lib/lutaml/uml_repository/static_site/id_generator.rb +115 -0
  522. data/lib/lutaml/uml_repository/static_site/search_index_builder.rb +317 -0
  523. data/lib/lutaml/uml_repository/static_site.rb +88 -0
  524. data/lib/lutaml/uml_repository/statistics_calculator.rb +334 -0
  525. data/lib/lutaml/uml_repository/validators/repository_validator.rb +404 -0
  526. data/lib/lutaml/uml_repository/web_ui/app.rb +144 -0
  527. data/lib/lutaml/uml_repository/web_ui/public/app.js +452 -0
  528. data/lib/lutaml/uml_repository/web_ui/public/styles.css +381 -0
  529. data/lib/lutaml/uml_repository/web_ui/views/index.erb +40 -0
  530. data/lib/lutaml/uml_repository.rb +97 -0
  531. data/lib/lutaml/version.rb +3 -1
  532. data/lib/lutaml/xmi/liquid_drops/association_drop.rb +60 -58
  533. data/lib/lutaml/xmi/liquid_drops/attribute_drop.rb +55 -53
  534. data/lib/lutaml/xmi/liquid_drops/cardinality_drop.rb +15 -13
  535. data/lib/lutaml/xmi/liquid_drops/connector_drop.rb +50 -46
  536. data/lib/lutaml/xmi/liquid_drops/constraint_drop.rb +19 -17
  537. data/lib/lutaml/xmi/liquid_drops/data_type_drop.rb +93 -90
  538. data/lib/lutaml/xmi/liquid_drops/dependency_drop.rb +26 -24
  539. data/lib/lutaml/xmi/liquid_drops/diagram_drop.rb +26 -24
  540. data/lib/lutaml/xmi/liquid_drops/enum_drop.rb +40 -37
  541. data/lib/lutaml/xmi/liquid_drops/enum_owned_literal_drop.rb +20 -18
  542. data/lib/lutaml/xmi/liquid_drops/generalization_attribute_drop.rb +64 -62
  543. data/lib/lutaml/xmi/liquid_drops/generalization_drop.rb +142 -140
  544. data/lib/lutaml/xmi/liquid_drops/klass_drop.rb +174 -170
  545. data/lib/lutaml/xmi/liquid_drops/operation_drop.rb +23 -21
  546. data/lib/lutaml/xmi/liquid_drops/package_drop.rb +95 -93
  547. data/lib/lutaml/xmi/liquid_drops/root_drop.rb +28 -25
  548. data/lib/lutaml/xmi/liquid_drops/source_target_drop.rb +39 -37
  549. data/lib/lutaml/xmi/parsers/xmi_base.rb +27 -17
  550. data/lib/lutaml/xmi/parsers/xml.rb +9 -9
  551. data/lib/lutaml/xmi.rb +37 -6
  552. data/lib/lutaml/xml/parsers/xml.rb +3 -1
  553. data/lib/lutaml/xml.rb +3 -1
  554. data/lib/lutaml.rb +14 -2
  555. data/lutaml.gemspec +16 -8
  556. data/plateau_all_packages.lur +0 -0
  557. data/templates/static_site/assets/scripts/app.js +45 -0
  558. data/templates/static_site/assets/scripts/core/state.js +419 -0
  559. data/templates/static_site/assets/scripts/core/utils.js +133 -0
  560. data/templates/static_site/assets/scripts/ui/details.js +74 -0
  561. data/templates/static_site/assets/scripts/ui/diagrams.js +345 -0
  562. data/templates/static_site/assets/scripts/ui/search.js +187 -0
  563. data/templates/static_site/assets/scripts/ui/sidebar.js +214 -0
  564. data/templates/static_site/assets/styles/00-variables.css +144 -0
  565. data/templates/static_site/assets/styles/01-reset.css +79 -0
  566. data/templates/static_site/assets/styles/02-base.css +149 -0
  567. data/templates/static_site/assets/styles/03-layout.css +171 -0
  568. data/templates/static_site/assets/styles/04-components.css +856 -0
  569. data/templates/static_site/assets/styles/05-utilities.css +89 -0
  570. data/templates/static_site/assets/styles/06-diagrams.css +277 -0
  571. data/templates/static_site/components/class_details.liquid +328 -0
  572. data/templates/static_site/components/content.liquid +508 -0
  573. data/templates/static_site/components/diagram_list.liquid +52 -0
  574. data/templates/static_site/components/diagram_viewer.liquid +71 -0
  575. data/templates/static_site/components/header.liquid +134 -0
  576. data/templates/static_site/components/package_details.liquid +119 -0
  577. data/templates/static_site/components/sidebar.liquid +46 -0
  578. data/templates/static_site/components/tree_node.liquid +81 -0
  579. data/templates/static_site/multi_file.liquid +46 -0
  580. data/templates/static_site/single_file.liquid +52 -0
  581. metadata +604 -31
  582. data/CODE_OF_CONDUCT.md +0 -74
  583. data/docs/lutaml-sysml.adoc +0 -10
@@ -0,0 +1,1024 @@
1
+ # QEA Database Schema Configuration
2
+ # This file defines the mapping between Enterprise Architect database tables
3
+ # and their corresponding model classes for LutaML QEA parser
4
+
5
+ # Metadata
6
+ version: "1.0"
7
+ description: "Enterprise Architect QEA database schema configuration"
8
+ last_updated: "2025-10-30"
9
+ phase: "Phase 4 - EA to UML Transformation Layer"
10
+
11
+ # Model class mappings
12
+ model_classes:
13
+ t_object: Lutaml::Qea::Models::EaObject
14
+ t_attribute: Lutaml::Qea::Models::EaAttribute
15
+ t_operation: Lutaml::Qea::Models::EaOperation
16
+ t_operationparams: Lutaml::Qea::Models::EaOperationParam
17
+ t_connector: Lutaml::Qea::Models::EaConnector
18
+ t_package: Lutaml::Qea::Models::EaPackage
19
+ t_diagram: Lutaml::Qea::Models::EaDiagram
20
+ t_diagramobjects: Lutaml::Qea::Models::EaDiagramObject
21
+ t_diagramlinks: Lutaml::Qea::Models::EaDiagramLink
22
+ t_objectconstraint: Lutaml::Qea::Models::EaObjectConstraint
23
+ t_taggedvalue: Lutaml::Qea::Models::EaTaggedValue
24
+ t_objectproperties: Lutaml::Qea::Models::EaObjectProperty
25
+ t_attributetag: Lutaml::Qea::Models::EaAttributeTag
26
+ t_xref: Lutaml::Qea::Models::EaXref
27
+ t_document: Lutaml::Qea::Models::EaDocument
28
+ t_script: Lutaml::Qea::Models::EaScript
29
+ t_stereotypes: Lutaml::Qea::Models::EaStereotype
30
+ t_datatypes: Lutaml::Qea::Models::EaDatatype
31
+ t_constrainttypes: Lutaml::Qea::Models::EaConstraintType
32
+ t_connectortypes: Lutaml::Qea::Models::EaConnectorType
33
+ t_diagramtypes: Lutaml::Qea::Models::EaDiagramType
34
+ t_objecttypes: Lutaml::Qea::Models::EaObjectType
35
+ t_statustypes: Lutaml::Qea::Models::EaStatusType
36
+ t_complexitytypes: Lutaml::Qea::Models::EaComplexityType
37
+
38
+ # Type mappings for SQLite to Ruby
39
+ type_mappings:
40
+ INTEGER: integer
41
+ TEXT: string
42
+ REAL: float
43
+ BLOB: binary
44
+ NULL: null
45
+
46
+ # Boolean conversion rules
47
+ boolean_fields:
48
+ # Field names that should be treated as boolean (INTEGER 0/1)
49
+ - IsStatic
50
+ - IsCollection
51
+ - IsOrdered
52
+ - AllowDuplicates
53
+ - IsControlled
54
+ - Protected
55
+ - UseDTD
56
+ - LogXML
57
+ - IsRoot
58
+ - IsLeaf
59
+ - IsSpec
60
+ - IsActive
61
+ - Const
62
+ - Tagged
63
+
64
+ # Null handling
65
+ null_handling:
66
+ strategy: convert_empty_strings
67
+ empty_string_as_null: true
68
+ zero_as_null: false
69
+
70
+ # Table definitions
71
+ # Each table maps to a model class in the domain layer
72
+ tables:
73
+ # Core UML Object table
74
+ - table_name: t_object
75
+ enabled: true
76
+ primary_key: Object_ID
77
+ collection_name: objects
78
+ description: "UML objects (classes, interfaces, etc.)"
79
+ columns:
80
+ - name: Object_ID
81
+ type: INTEGER
82
+ primary: true
83
+ nullable: false
84
+ - name: Object_Type
85
+ type: TEXT
86
+ nullable: true
87
+ - name: Diagram_ID
88
+ type: INTEGER
89
+ nullable: true
90
+ - name: Name
91
+ type: TEXT
92
+ nullable: true
93
+ - name: Alias
94
+ type: TEXT
95
+ nullable: true
96
+ - name: Author
97
+ type: TEXT
98
+ nullable: true
99
+ - name: Version
100
+ type: TEXT
101
+ nullable: true
102
+ default: "1.0"
103
+ - name: Note
104
+ type: TEXT
105
+ nullable: true
106
+ - name: Package_ID
107
+ type: INTEGER
108
+ nullable: true
109
+ - name: Stereotype
110
+ type: TEXT
111
+ nullable: true
112
+ - name: NType
113
+ type: INTEGER
114
+ nullable: true
115
+ - name: Complexity
116
+ type: TEXT
117
+ nullable: true
118
+ - name: Abstract
119
+ type: TEXT
120
+ nullable: true
121
+ - name: ea_guid
122
+ type: TEXT
123
+ nullable: true
124
+ - name: ParentID
125
+ type: INTEGER
126
+ nullable: true
127
+ - name: Classifier
128
+ type: INTEGER
129
+ nullable: true
130
+ - name: Classifier_guid
131
+ type: TEXT
132
+ nullable: true
133
+ - name: Visibility
134
+ type: TEXT
135
+ nullable: true
136
+ - name: IsRoot
137
+ type: INTEGER
138
+ nullable: true
139
+ boolean: true
140
+ - name: IsLeaf
141
+ type: INTEGER
142
+ nullable: true
143
+ boolean: true
144
+ - name: IsSpec
145
+ type: INTEGER
146
+ nullable: true
147
+ boolean: true
148
+ - name: IsActive
149
+ type: INTEGER
150
+ nullable: true
151
+ boolean: true
152
+ - name: CreatedDate
153
+ type: TEXT
154
+ nullable: true
155
+ - name: ModifiedDate
156
+ type: TEXT
157
+ nullable: true
158
+
159
+ # Attributes table
160
+ - table_name: t_attribute
161
+ enabled: true
162
+ primary_key: ID
163
+ collection_name: attributes
164
+ description: "Object attributes (class fields)"
165
+ columns:
166
+ - name: ID
167
+ type: INTEGER
168
+ primary: true
169
+ nullable: false
170
+ - name: Object_ID
171
+ type: INTEGER
172
+ nullable: true
173
+ - name: Name
174
+ type: TEXT
175
+ nullable: true
176
+ - name: Scope
177
+ type: TEXT
178
+ nullable: true
179
+ - name: Stereotype
180
+ type: TEXT
181
+ nullable: true
182
+ - name: Containment
183
+ type: TEXT
184
+ nullable: true
185
+ - name: IsStatic
186
+ type: INTEGER
187
+ nullable: true
188
+ boolean: true
189
+ - name: IsCollection
190
+ type: INTEGER
191
+ nullable: true
192
+ boolean: true
193
+ - name: IsOrdered
194
+ type: INTEGER
195
+ nullable: true
196
+ boolean: true
197
+ - name: AllowDuplicates
198
+ type: INTEGER
199
+ nullable: true
200
+ boolean: true
201
+ - name: LowerBound
202
+ type: TEXT
203
+ nullable: true
204
+ - name: UpperBound
205
+ type: TEXT
206
+ nullable: true
207
+ - name: Notes
208
+ type: TEXT
209
+ nullable: true
210
+ - name: Derived
211
+ type: TEXT
212
+ nullable: true
213
+ - name: Type
214
+ type: TEXT
215
+ nullable: true
216
+ - name: Default
217
+ type: TEXT
218
+ nullable: true
219
+ - name: ea_guid
220
+ type: TEXT
221
+ nullable: true
222
+ - name: Classifier
223
+ type: TEXT
224
+ nullable: true
225
+
226
+ # Operations table
227
+ - table_name: t_operation
228
+ enabled: true
229
+ primary_key: OperationID
230
+ collection_name: operations
231
+ description: "Object operations (methods)"
232
+ columns:
233
+ - name: OperationID
234
+ type: INTEGER
235
+ primary: true
236
+ nullable: false
237
+ - name: Object_ID
238
+ type: INTEGER
239
+ nullable: true
240
+ - name: Name
241
+ type: TEXT
242
+ nullable: true
243
+ - name: Scope
244
+ type: TEXT
245
+ nullable: true
246
+ - name: Type
247
+ type: TEXT
248
+ nullable: true
249
+ - name: ReturnArray
250
+ type: TEXT
251
+ nullable: true
252
+ - name: Stereotype
253
+ type: TEXT
254
+ nullable: true
255
+ - name: IsStatic
256
+ type: INTEGER
257
+ nullable: true
258
+ boolean: true
259
+ - name: Concurrency
260
+ type: TEXT
261
+ nullable: true
262
+ - name: Notes
263
+ type: TEXT
264
+ nullable: true
265
+ - name: Abstract
266
+ type: TEXT
267
+ nullable: true
268
+ - name: ea_guid
269
+ type: TEXT
270
+ nullable: true
271
+ - name: Classifier
272
+ type: TEXT
273
+ nullable: true
274
+
275
+ # Operation parameters table
276
+ - table_name: t_operationparams
277
+ enabled: true
278
+ primary_key: OperationID
279
+ collection_name: operation_params
280
+ description: "Method parameters"
281
+ columns:
282
+ - name: OperationID
283
+ type: INTEGER
284
+ primary: true
285
+ nullable: false
286
+ - name: Name
287
+ type: TEXT
288
+ nullable: true
289
+ - name: Type
290
+ type: TEXT
291
+ nullable: true
292
+ - name: Default
293
+ type: TEXT
294
+ nullable: true
295
+ - name: Notes
296
+ type: TEXT
297
+ nullable: true
298
+ - name: Pos
299
+ type: INTEGER
300
+ nullable: true
301
+ - name: Const
302
+ type: INTEGER
303
+ nullable: true
304
+ boolean: true
305
+ - name: Style
306
+ type: TEXT
307
+ nullable: true
308
+ - name: Kind
309
+ type: TEXT
310
+ nullable: true
311
+ - name: ea_guid
312
+ type: TEXT
313
+ nullable: true
314
+
315
+ # Connectors table (relationships)
316
+ - table_name: t_connector
317
+ enabled: true
318
+ primary_key: Connector_ID
319
+ collection_name: connectors
320
+ description: "Relationships between objects"
321
+ columns:
322
+ - name: Connector_ID
323
+ type: INTEGER
324
+ primary: true
325
+ nullable: false
326
+ - name: Name
327
+ type: TEXT
328
+ nullable: true
329
+ - name: Direction
330
+ type: TEXT
331
+ nullable: true
332
+ - name: Notes
333
+ type: TEXT
334
+ nullable: true
335
+ - name: Connector_Type
336
+ type: TEXT
337
+ nullable: true
338
+ - name: SubType
339
+ type: TEXT
340
+ nullable: true
341
+ - name: SourceCard
342
+ type: TEXT
343
+ nullable: true
344
+ - name: SourceAccess
345
+ type: TEXT
346
+ nullable: true
347
+ - name: SourceElement
348
+ type: TEXT
349
+ nullable: true
350
+ - name: DestCard
351
+ type: TEXT
352
+ nullable: true
353
+ - name: DestAccess
354
+ type: TEXT
355
+ nullable: true
356
+ - name: DestElement
357
+ type: TEXT
358
+ nullable: true
359
+ - name: SourceRole
360
+ type: TEXT
361
+ nullable: true
362
+ - name: SourceRoleType
363
+ type: TEXT
364
+ nullable: true
365
+ - name: DestRole
366
+ type: TEXT
367
+ nullable: true
368
+ - name: DestRoleType
369
+ type: TEXT
370
+ nullable: true
371
+ - name: SourceContainment
372
+ type: TEXT
373
+ nullable: true
374
+ - name: DestContainment
375
+ type: TEXT
376
+ nullable: true
377
+ - name: SourceIsAggregate
378
+ type: INTEGER
379
+ nullable: true
380
+ - name: DestIsAggregate
381
+ type: INTEGER
382
+ nullable: true
383
+ - name: SourceIsOrdered
384
+ type: INTEGER
385
+ nullable: true
386
+ - name: DestIsOrdered
387
+ type: INTEGER
388
+ nullable: true
389
+ - name: ea_guid
390
+ type: TEXT
391
+ nullable: true
392
+ - name: Start_Object_ID
393
+ type: INTEGER
394
+ nullable: true
395
+ - name: End_Object_ID
396
+ type: INTEGER
397
+ nullable: true
398
+
399
+ # Packages table
400
+ - table_name: t_package
401
+ enabled: true
402
+ primary_key: Package_ID
403
+ collection_name: packages
404
+ description: "Package hierarchy"
405
+ columns:
406
+ - name: Package_ID
407
+ type: INTEGER
408
+ primary: true
409
+ nullable: false
410
+ - name: Name
411
+ type: TEXT
412
+ nullable: true
413
+ - name: Parent_ID
414
+ type: INTEGER
415
+ nullable: true
416
+ - name: CreatedDate
417
+ type: TEXT
418
+ nullable: true
419
+ - name: ModifiedDate
420
+ type: TEXT
421
+ nullable: true
422
+ - name: Notes
423
+ type: TEXT
424
+ nullable: true
425
+ - name: ea_guid
426
+ type: TEXT
427
+ nullable: true
428
+ - name: IsControlled
429
+ type: INTEGER
430
+ nullable: true
431
+ boolean: true
432
+ - name: Version
433
+ type: TEXT
434
+ nullable: true
435
+ - name: Protected
436
+ type: INTEGER
437
+ nullable: true
438
+ boolean: true
439
+ - name: PkgOwner
440
+ type: TEXT
441
+ nullable: true
442
+ - name: UMLVersion
443
+ type: TEXT
444
+ nullable: true
445
+ - name: TPos
446
+ type: INTEGER
447
+ nullable: true
448
+
449
+ # Diagrams table
450
+ - table_name: t_diagram
451
+ enabled: true
452
+ primary_key: Diagram_ID
453
+ collection_name: diagrams
454
+ description: "UML diagrams"
455
+ columns:
456
+ - name: Diagram_ID
457
+ type: INTEGER
458
+ primary: true
459
+ nullable: false
460
+ - name: Package_ID
461
+ type: INTEGER
462
+ nullable: true
463
+ - name: ParentID
464
+ type: INTEGER
465
+ nullable: true
466
+ - name: Diagram_Type
467
+ type: TEXT
468
+ nullable: true
469
+ - name: Name
470
+ type: TEXT
471
+ nullable: true
472
+ - name: Version
473
+ type: TEXT
474
+ nullable: true
475
+ - name: Author
476
+ type: TEXT
477
+ nullable: true
478
+ - name: ShowDetails
479
+ type: INTEGER
480
+ nullable: true
481
+ - name: Notes
482
+ type: TEXT
483
+ nullable: true
484
+ - name: Stereotype
485
+ type: TEXT
486
+ nullable: true
487
+ - name: ea_guid
488
+ type: TEXT
489
+ nullable: true
490
+ - name: CreatedDate
491
+ type: TEXT
492
+ nullable: true
493
+ - name: ModifiedDate
494
+ type: TEXT
495
+ nullable: true
496
+
497
+ # Diagram Objects table (visual placement)
498
+ - table_name: t_diagramobjects
499
+ enabled: true
500
+ primary_key: Instance_ID
501
+ collection_name: diagram_objects
502
+ description: "Visual placement of elements on diagrams"
503
+ columns:
504
+ - name: Diagram_ID
505
+ type: INTEGER
506
+ nullable: false
507
+ - name: Object_ID
508
+ type: INTEGER
509
+ nullable: false
510
+ - name: RectTop
511
+ type: INTEGER
512
+ nullable: true
513
+ - name: RectLeft
514
+ type: INTEGER
515
+ nullable: true
516
+ - name: RectRight
517
+ type: INTEGER
518
+ nullable: true
519
+ - name: RectBottom
520
+ type: INTEGER
521
+ nullable: true
522
+ - name: Sequence
523
+ type: INTEGER
524
+ nullable: true
525
+ - name: ObjectStyle
526
+ type: TEXT
527
+ nullable: true
528
+ - name: Instance_ID
529
+ type: INTEGER
530
+ primary: true
531
+ nullable: false
532
+
533
+ # Diagram Links table (visual routing)
534
+ - table_name: t_diagramlinks
535
+ enabled: true
536
+ primary_key: Instance_ID
537
+ collection_name: diagram_links
538
+ description: "Visual routing of connectors on diagrams"
539
+ columns:
540
+ - name: DiagramID
541
+ type: INTEGER
542
+ nullable: false
543
+ - name: ConnectorID
544
+ type: INTEGER
545
+ nullable: false
546
+ - name: Geometry
547
+ type: TEXT
548
+ nullable: true
549
+ - name: Style
550
+ type: TEXT
551
+ nullable: true
552
+ - name: Hidden
553
+ type: INTEGER
554
+ nullable: true
555
+ - name: Path
556
+ type: TEXT
557
+ nullable: true
558
+ - name: Instance_ID
559
+ type: INTEGER
560
+ primary: true
561
+ nullable: false
562
+
563
+ # Object Constraints table (OCL)
564
+ - table_name: t_objectconstraint
565
+ enabled: true
566
+ primary_key: ConstraintID
567
+ collection_name: object_constraints
568
+ description: "OCL constraints on UML objects"
569
+ columns:
570
+ - name: ConstraintID
571
+ type: INTEGER
572
+ primary: true
573
+ nullable: false
574
+ - name: Object_ID
575
+ type: INTEGER
576
+ nullable: false
577
+ - name: Constraint
578
+ type: TEXT
579
+ nullable: true
580
+ - name: ConstraintType
581
+ type: TEXT
582
+ nullable: true
583
+ - name: Weight
584
+ type: REAL
585
+ nullable: true
586
+ - name: Notes
587
+ type: TEXT
588
+ nullable: true
589
+ - name: Status
590
+ type: TEXT
591
+ nullable: true
592
+
593
+ # Tagged Values table
594
+ - table_name: t_taggedvalue
595
+ enabled: true
596
+ primary_key: PropertyID
597
+ collection_name: tagged_values
598
+ description: "Custom metadata (tagged values) for UML elements"
599
+ columns:
600
+ - name: PropertyID
601
+ type: TEXT
602
+ primary: true
603
+ nullable: false
604
+ - name: ElementID
605
+ type: TEXT
606
+ nullable: false
607
+ - name: BaseClass
608
+ type: TEXT
609
+ nullable: true
610
+ - name: TagValue
611
+ type: TEXT
612
+ nullable: true
613
+ - name: Notes
614
+ type: TEXT
615
+ nullable: true
616
+
617
+ # Object Properties table
618
+ - table_name: t_objectproperties
619
+ enabled: true
620
+ primary_key: PropertyID
621
+ collection_name: object_properties
622
+ description: "Object-level properties (GML/XML Schema metadata)"
623
+ columns:
624
+ - name: PropertyID
625
+ type: INTEGER
626
+ primary: true
627
+ nullable: false
628
+ - name: Object_ID
629
+ type: INTEGER
630
+ nullable: false
631
+ - name: Property
632
+ type: TEXT
633
+ nullable: true
634
+ - name: Value
635
+ type: TEXT
636
+ nullable: true
637
+ - name: Notes
638
+ type: TEXT
639
+ nullable: true
640
+ - name: ea_guid
641
+ type: TEXT
642
+ nullable: true
643
+
644
+ # Attribute Tags table
645
+ - table_name: t_attributetag
646
+ enabled: true
647
+ primary_key: PropertyID
648
+ collection_name: attribute_tags
649
+ description: "Attribute-level tags (GML/XML Schema metadata)"
650
+ columns:
651
+ - name: PropertyID
652
+ type: INTEGER
653
+ primary: true
654
+ nullable: false
655
+ - name: ElementID
656
+ type: INTEGER
657
+ nullable: false
658
+ - name: Property
659
+ type: TEXT
660
+ nullable: true
661
+ - name: VALUE
662
+ type: TEXT
663
+ nullable: true
664
+ - name: NOTES
665
+ type: TEXT
666
+ nullable: true
667
+ - name: ea_guid
668
+ type: TEXT
669
+ nullable: true
670
+
671
+ # Cross-References table (metadata enhancements)
672
+ - table_name: t_xref
673
+ enabled: true
674
+ primary_key: XrefID
675
+ collection_name: xrefs
676
+ description: "Cross-references (stereotypes, custom properties, diagram settings)"
677
+ columns:
678
+ - name: XrefID
679
+ type: TEXT
680
+ primary: true
681
+ nullable: false
682
+ - name: Name
683
+ type: TEXT
684
+ nullable: true
685
+ - name: Type
686
+ type: TEXT
687
+ nullable: true
688
+ - name: Visibility
689
+ type: TEXT
690
+ nullable: true
691
+ - name: Namespace
692
+ type: TEXT
693
+ nullable: true
694
+ - name: Requirement
695
+ type: TEXT
696
+ nullable: true
697
+ - name: Constraint
698
+ type: TEXT
699
+ nullable: true
700
+ - name: Behavior
701
+ type: TEXT
702
+ nullable: true
703
+ - name: Partition
704
+ type: TEXT
705
+ nullable: true
706
+ - name: Description
707
+ type: TEXT
708
+ nullable: true
709
+ - name: Client
710
+ type: TEXT
711
+ nullable: true
712
+ - name: Supplier
713
+ type: TEXT
714
+ nullable: true
715
+ - name: Link
716
+ type: TEXT
717
+ nullable: true
718
+
719
+ # Stereotypes table (reference data)
720
+ - table_name: t_stereotypes
721
+ enabled: true
722
+ primary_key: null
723
+ collection_name: stereotypes
724
+ description: "Stereotype definitions (UML profile extensions)"
725
+ columns:
726
+ - name: Stereotype
727
+ type: TEXT
728
+ nullable: false
729
+ - name: AppliesTo
730
+ type: TEXT
731
+ nullable: false
732
+ - name: Description
733
+ type: TEXT
734
+ nullable: true
735
+ - name: MFEnabled
736
+ type: INTEGER
737
+ nullable: true
738
+ - name: MFPath
739
+ type: TEXT
740
+ nullable: true
741
+ - name: Metafile
742
+ type: BLOB
743
+ nullable: true
744
+ - name: Style
745
+ type: TEXT
746
+ nullable: true
747
+ - name: ea_guid
748
+ type: TEXT
749
+ nullable: true
750
+ - name: VisualType
751
+ type: TEXT
752
+ nullable: true
753
+
754
+ # Data Types table (reference data)
755
+ - table_name: t_datatypes
756
+ enabled: true
757
+ primary_key: DatatypeID
758
+ collection_name: datatypes
759
+ description: "Database-specific type definitions and mappings"
760
+ columns:
761
+ - name: Type
762
+ type: TEXT
763
+ nullable: true
764
+ - name: ProductName
765
+ type: TEXT
766
+ nullable: true
767
+ - name: DataType
768
+ type: TEXT
769
+ nullable: true
770
+ - name: Size
771
+ type: INTEGER
772
+ nullable: true
773
+ - name: MaxLen
774
+ type: INTEGER
775
+ nullable: true
776
+ - name: MaxPrec
777
+ type: INTEGER
778
+ nullable: true
779
+ - name: MaxScale
780
+ type: INTEGER
781
+ nullable: true
782
+ - name: DefaultLen
783
+ type: INTEGER
784
+ nullable: true
785
+ - name: DefaultPrec
786
+ type: INTEGER
787
+ nullable: true
788
+ - name: DefaultScale
789
+ type: INTEGER
790
+ nullable: true
791
+ - name: User
792
+ type: INTEGER
793
+ nullable: true
794
+ - name: PDATA1
795
+ type: TEXT
796
+ nullable: true
797
+ - name: PDATA2
798
+ type: TEXT
799
+ nullable: true
800
+ - name: PDATA3
801
+ type: TEXT
802
+ nullable: true
803
+ - name: PDATA4
804
+ type: TEXT
805
+ nullable: true
806
+ - name: HasLength
807
+ type: TEXT
808
+ nullable: true
809
+ - name: GenericType
810
+ type: TEXT
811
+ nullable: true
812
+ - name: DatatypeID
813
+ type: INTEGER
814
+ primary: true
815
+ nullable: false
816
+
817
+ # Constraint Types table (Priority 3 - lookup/reference data)
818
+ - table_name: t_constrainttypes
819
+ enabled: true
820
+ primary_key: Constraint
821
+ collection_name: constraint_types
822
+ description: "Constraint type definitions (Invariant, Pre-condition, etc.)"
823
+ columns:
824
+ - name: Constraint
825
+ type: TEXT
826
+ primary: true
827
+ nullable: false
828
+ - name: Description
829
+ type: TEXT
830
+ nullable: true
831
+ - name: Notes
832
+ type: TEXT
833
+ nullable: true
834
+
835
+ # Connector Types table (Priority 3 - lookup/reference data)
836
+ - table_name: t_connectortypes
837
+ enabled: true
838
+ primary_key: Connector_Type
839
+ collection_name: connector_types
840
+ description: "Connector/association type definitions"
841
+ columns:
842
+ - name: Connector_Type
843
+ type: TEXT
844
+ primary: true
845
+ nullable: false
846
+ - name: Description
847
+ type: TEXT
848
+ nullable: true
849
+
850
+ # Diagram Types table (Priority 3 - lookup/reference data)
851
+ - table_name: t_diagramtypes
852
+ enabled: true
853
+ primary_key: Diagram_Type
854
+ collection_name: diagram_types
855
+ description: "Diagram type definitions"
856
+ columns:
857
+ - name: Diagram_Type
858
+ type: TEXT
859
+ primary: true
860
+ nullable: false
861
+ - name: Name
862
+ type: TEXT
863
+ nullable: true
864
+ - name: Package_ID
865
+ type: INTEGER
866
+ nullable: true
867
+
868
+ # Object Types table (Priority 3 - lookup/reference data)
869
+ - table_name: t_objecttypes
870
+ enabled: true
871
+ primary_key: Object_Type
872
+ collection_name: object_types
873
+ description: "Object/class type definitions"
874
+ columns:
875
+ - name: Object_Type
876
+ type: TEXT
877
+ primary: true
878
+ nullable: false
879
+ - name: Description
880
+ type: TEXT
881
+ nullable: true
882
+ - name: DesignObject
883
+ type: INTEGER
884
+ nullable: true
885
+ - name: ImageID
886
+ type: INTEGER
887
+ nullable: true
888
+
889
+ # Status Types table (Priority 3 - lookup/reference data)
890
+ - table_name: t_statustypes
891
+ enabled: true
892
+ primary_key: Status
893
+ collection_name: status_types
894
+ description: "Status value definitions"
895
+ columns:
896
+ - name: Status
897
+ type: TEXT
898
+ primary: true
899
+ nullable: false
900
+ - name: Description
901
+ type: TEXT
902
+ nullable: true
903
+
904
+ # Complexity Types table (Priority 3 - lookup/reference data)
905
+ - table_name: t_complexitytypes
906
+ enabled: true
907
+ primary_key: Complexity
908
+ collection_name: complexity_types
909
+ description: "Complexity level definitions with numeric weights"
910
+ columns:
911
+ - name: Complexity
912
+ type: TEXT
913
+ primary: true
914
+ nullable: false
915
+ - name: NumericWeight
916
+ type: INTEGER
917
+ nullable: true
918
+
919
+ # Document table (Priority 4)
920
+ - table_name: t_document
921
+ enabled: true
922
+ primary_key: DocID
923
+ collection_name: documents
924
+ description: "Documentation style templates and artifacts"
925
+ columns:
926
+ - name: DocID
927
+ type: TEXT
928
+ primary: true
929
+ nullable: false
930
+ - name: DocName
931
+ type: TEXT
932
+ nullable: true
933
+ - name: DocType
934
+ type: TEXT
935
+ nullable: true
936
+ - name: StrContent
937
+ type: TEXT
938
+ nullable: true
939
+ - name: BinContent
940
+ type: BLOB
941
+ nullable: true
942
+ - name: ElementID
943
+ type: TEXT
944
+ nullable: true
945
+
946
+ # Script table (Priority 4)
947
+ - table_name: t_script
948
+ enabled: true
949
+ primary_key: ScriptID
950
+ collection_name: scripts
951
+ description: "Behavioral scripts and debugging configurations"
952
+ columns:
953
+ - name: ScriptID
954
+ type: INTEGER
955
+ primary: true
956
+ nullable: false
957
+ - name: ScriptCategory
958
+ type: TEXT
959
+ nullable: true
960
+ - name: ScriptName
961
+ type: TEXT
962
+ nullable: true
963
+ - name: ScriptAuthor
964
+ type: TEXT
965
+ nullable: true
966
+ - name: Notes
967
+ type: TEXT
968
+ nullable: true
969
+ - name: Script
970
+ type: TEXT
971
+ nullable: true
972
+
973
+ # Transformation mappings for EA to UML conversion
974
+ transformations:
975
+ # EA Object Type to UML Model mappings
976
+ object_types:
977
+ Class: Lutaml::Uml::Class
978
+ Interface: Lutaml::Uml::Class # With interface stereotype
979
+ Enumeration: Lutaml::Uml::Enum
980
+ DataType: Lutaml::Uml::DataType
981
+ Package: Lutaml::Uml::Package
982
+ Component: Lutaml::Uml::Class # With component stereotype
983
+ Node: Lutaml::Uml::Class
984
+ Actor: Lutaml::Uml::Actor
985
+ UseCase: Lutaml::Uml::Class
986
+
987
+ # EA Connector Type to UML Model mappings
988
+ connector_types:
989
+ Association: Lutaml::Uml::Association
990
+ Generalization: Lutaml::Uml::Generalization
991
+ Aggregation: Lutaml::Uml::Association # With aggregation property
992
+ Composition: Lutaml::Uml::Association # With composition property
993
+ Dependency: Lutaml::Uml::Dependency
994
+ Realization: Lutaml::Uml::Realization
995
+ Abstraction: Lutaml::Uml::Abstraction
996
+
997
+ # Visibility mapping from EA to UML
998
+ visibility_mapping:
999
+ Public: public
1000
+ Private: private
1001
+ Protected: protected
1002
+ Package: package
1003
+
1004
+ # Cardinality patterns
1005
+ cardinality_patterns:
1006
+ "0..1": { min: "0", max: "1" }
1007
+ "1": { min: "1", max: "1" }
1008
+ "0..*": { min: "0", max: "*" }
1009
+ "1..*": { min: "1", max: "*" }
1010
+ "*": { min: "0", max: "*" }
1011
+
1012
+ # Transformer class mappings
1013
+ transformers:
1014
+ class: Lutaml::Qea::Factory::ClassTransformer
1015
+ attribute: Lutaml::Qea::Factory::AttributeTransformer
1016
+ operation: Lutaml::Qea::Factory::OperationTransformer
1017
+ association: Lutaml::Qea::Factory::AssociationTransformer
1018
+ generalization: Lutaml::Qea::Factory::GeneralizationTransformer
1019
+ package: Lutaml::Qea::Factory::PackageTransformer
1020
+ diagram: Lutaml::Qea::Factory::DiagramTransformer
1021
+ constraint: Lutaml::Qea::Factory::ConstraintTransformer
1022
+ tagged_value: Lutaml::Qea::Factory::TaggedValueTransformer
1023
+ object_property: Lutaml::Qea::Factory::ObjectPropertyTransformer
1024
+ attribute_tag: Lutaml::Qea::Factory::AttributeTagTransformer