@memoarchitect/tools 0.6.7 → 0.7.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 (466) hide show
  1. package/README.md +36 -11
  2. package/package.json +19 -7
  3. package/packages/tools/lib/bin/memo.js +161 -10
  4. package/packages/tools/lib/bin/memo.js.map +1 -1
  5. package/packages/tools/lib/browser/index.d.ts +1 -1
  6. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  7. package/packages/tools/lib/browser/index.js +1 -1
  8. package/packages/tools/lib/browser/index.js.map +1 -1
  9. package/packages/tools/lib/commands/ask.js +1 -1
  10. package/packages/tools/lib/commands/ask.js.map +1 -1
  11. package/packages/tools/lib/commands/check.d.ts.map +1 -1
  12. package/packages/tools/lib/commands/check.js +3 -9
  13. package/packages/tools/lib/commands/check.js.map +1 -1
  14. package/packages/tools/lib/commands/conformance.d.ts +36 -0
  15. package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
  16. package/packages/tools/lib/commands/conformance.js +212 -0
  17. package/packages/tools/lib/commands/conformance.js.map +1 -0
  18. package/packages/tools/lib/commands/convert.d.ts +12 -0
  19. package/packages/tools/lib/commands/convert.d.ts.map +1 -0
  20. package/packages/tools/lib/commands/convert.js +103 -0
  21. package/packages/tools/lib/commands/convert.js.map +1 -0
  22. package/packages/tools/lib/commands/create-package.d.ts +1 -2
  23. package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
  24. package/packages/tools/lib/commands/create-package.js.map +1 -1
  25. package/packages/tools/lib/commands/dev.d.ts +13 -0
  26. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  27. package/packages/tools/lib/commands/dev.js +208 -74
  28. package/packages/tools/lib/commands/dev.js.map +1 -1
  29. package/packages/tools/lib/commands/dhf-draft.js +1 -1
  30. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  31. package/packages/tools/lib/commands/dhf-preview.js +1 -1
  32. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  33. package/packages/tools/lib/commands/dhf.js +1 -1
  34. package/packages/tools/lib/commands/dhf.js.map +1 -1
  35. package/packages/tools/lib/commands/element.d.ts +34 -0
  36. package/packages/tools/lib/commands/element.d.ts.map +1 -0
  37. package/packages/tools/lib/commands/element.js +174 -0
  38. package/packages/tools/lib/commands/element.js.map +1 -0
  39. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  40. package/packages/tools/lib/commands/export.js +39 -40
  41. package/packages/tools/lib/commands/export.js.map +1 -1
  42. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  43. package/packages/tools/lib/commands/generate.js +10 -7
  44. package/packages/tools/lib/commands/generate.js.map +1 -1
  45. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  46. package/packages/tools/lib/commands/import.js +25 -12
  47. package/packages/tools/lib/commands/import.js.map +1 -1
  48. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  49. package/packages/tools/lib/commands/init.js +34 -14
  50. package/packages/tools/lib/commands/init.js.map +1 -1
  51. package/packages/tools/lib/commands/inspect.d.ts +5 -0
  52. package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
  53. package/packages/tools/lib/commands/inspect.js +56 -0
  54. package/packages/tools/lib/commands/inspect.js.map +1 -0
  55. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  56. package/packages/tools/lib/commands/lock.js +7 -2
  57. package/packages/tools/lib/commands/lock.js.map +1 -1
  58. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  59. package/packages/tools/lib/commands/ontology.js +69 -116
  60. package/packages/tools/lib/commands/ontology.js.map +1 -1
  61. package/packages/tools/lib/commands/pack.d.ts +1 -1
  62. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  63. package/packages/tools/lib/commands/pack.js +20 -78
  64. package/packages/tools/lib/commands/pack.js.map +1 -1
  65. package/packages/tools/lib/commands/package.d.ts +10 -0
  66. package/packages/tools/lib/commands/package.d.ts.map +1 -0
  67. package/packages/tools/lib/commands/package.js +113 -0
  68. package/packages/tools/lib/commands/package.js.map +1 -0
  69. package/packages/tools/lib/commands/plugin.js +1 -1
  70. package/packages/tools/lib/commands/plugin.js.map +1 -1
  71. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  72. package/packages/tools/lib/commands/rules.js +120 -30
  73. package/packages/tools/lib/commands/rules.js.map +1 -1
  74. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  75. package/packages/tools/lib/commands/sysand-publish.js +14 -16
  76. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  77. package/packages/tools/lib/commands/toolchain.d.ts +8 -0
  78. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
  79. package/packages/tools/lib/commands/toolchain.js +64 -0
  80. package/packages/tools/lib/commands/toolchain.js.map +1 -0
  81. package/packages/tools/lib/commands/validate.d.ts +1 -1
  82. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  83. package/packages/tools/lib/commands/validate.js +183 -56
  84. package/packages/tools/lib/commands/validate.js.map +1 -1
  85. package/packages/tools/lib/completeness/tracker.d.ts +10 -2
  86. package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
  87. package/packages/tools/lib/completeness/tracker.js +16 -21
  88. package/packages/tools/lib/completeness/tracker.js.map +1 -1
  89. package/packages/tools/lib/conformance/baseline.d.ts +26 -0
  90. package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
  91. package/packages/tools/lib/conformance/baseline.js +170 -0
  92. package/packages/tools/lib/conformance/baseline.js.map +1 -0
  93. package/packages/tools/lib/conformance/bnf.d.ts +84 -0
  94. package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
  95. package/packages/tools/lib/conformance/bnf.js +166 -0
  96. package/packages/tools/lib/conformance/bnf.js.map +1 -0
  97. package/packages/tools/lib/conformance/corpus.d.ts +125 -0
  98. package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
  99. package/packages/tools/lib/conformance/corpus.js +190 -0
  100. package/packages/tools/lib/conformance/corpus.js.map +1 -0
  101. package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
  102. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
  103. package/packages/tools/lib/conformance/diff-xmi.js +276 -0
  104. package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
  105. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
  106. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
  107. package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
  108. package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
  109. package/packages/tools/lib/conformance/index.d.ts +7 -0
  110. package/packages/tools/lib/conformance/index.d.ts.map +1 -0
  111. package/packages/tools/lib/conformance/index.js +19 -0
  112. package/packages/tools/lib/conformance/index.js.map +1 -0
  113. package/packages/tools/lib/conformance/run.d.ts +117 -0
  114. package/packages/tools/lib/conformance/run.d.ts.map +1 -0
  115. package/packages/tools/lib/conformance/run.js +0 -0
  116. package/packages/tools/lib/conformance/run.js.map +1 -0
  117. package/packages/tools/lib/conformance/xmi.d.ts +45 -0
  118. package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
  119. package/packages/tools/lib/conformance/xmi.js +148 -0
  120. package/packages/tools/lib/conformance/xmi.js.map +1 -0
  121. package/packages/tools/lib/dhf/template-resolver.js +1 -1
  122. package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
  123. package/packages/tools/lib/import/column-mapper.d.ts +2 -2
  124. package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
  125. package/packages/tools/lib/import/column-mapper.js +3 -3
  126. package/packages/tools/lib/import/column-mapper.js.map +1 -1
  127. package/packages/tools/lib/index.d.ts +20 -3
  128. package/packages/tools/lib/index.d.ts.map +1 -1
  129. package/packages/tools/lib/index.js +19 -2
  130. package/packages/tools/lib/index.js.map +1 -1
  131. package/packages/tools/lib/language/generated/ast.d.ts +196 -51
  132. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  133. package/packages/tools/lib/language/generated/ast.js +136 -15
  134. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  135. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  136. package/packages/tools/lib/language/generated/grammar.js +867 -295
  137. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  138. package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
  139. package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
  140. package/packages/tools/lib/llm/chat-engine.js +15 -12
  141. package/packages/tools/lib/llm/chat-engine.js.map +1 -1
  142. package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
  143. package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
  144. package/packages/tools/lib/llm/generate-engine.js +22 -4
  145. package/packages/tools/lib/llm/generate-engine.js.map +1 -1
  146. package/packages/tools/lib/llm/index.d.ts +1 -0
  147. package/packages/tools/lib/llm/index.d.ts.map +1 -1
  148. package/packages/tools/lib/llm/index.js +1 -0
  149. package/packages/tools/lib/llm/index.js.map +1 -1
  150. package/packages/tools/lib/llm/model-context.d.ts +2 -2
  151. package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
  152. package/packages/tools/lib/llm/model-context.js +7 -13
  153. package/packages/tools/lib/llm/model-context.js.map +1 -1
  154. package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
  155. package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
  156. package/packages/tools/lib/llm/sysml-guidance.js +28 -0
  157. package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
  158. package/packages/tools/lib/lock.d.ts +14 -8
  159. package/packages/tools/lib/lock.d.ts.map +1 -1
  160. package/packages/tools/lib/lock.js +97 -108
  161. package/packages/tools/lib/lock.js.map +1 -1
  162. package/packages/tools/lib/mcp/model-loader.d.ts +3 -0
  163. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  164. package/packages/tools/lib/mcp/model-loader.js +9 -5
  165. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  166. package/packages/tools/lib/mcp/tools.d.ts +3 -0
  167. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  168. package/packages/tools/lib/mcp/tools.js +8 -9
  169. package/packages/tools/lib/mcp/tools.js.map +1 -1
  170. package/packages/tools/lib/model/activity-notation.d.ts +54 -0
  171. package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
  172. package/packages/tools/lib/model/activity-notation.js +208 -0
  173. package/packages/tools/lib/model/activity-notation.js.map +1 -0
  174. package/packages/tools/lib/model/builder.d.ts +3 -0
  175. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  176. package/packages/tools/lib/model/builder.js +231 -19
  177. package/packages/tools/lib/model/builder.js.map +1 -1
  178. package/packages/tools/lib/model/config-loader.d.ts +19 -25
  179. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  180. package/packages/tools/lib/model/config-loader.js +51 -233
  181. package/packages/tools/lib/model/config-loader.js.map +1 -1
  182. package/packages/tools/lib/model/config.d.ts +42 -213
  183. package/packages/tools/lib/model/config.d.ts.map +1 -1
  184. package/packages/tools/lib/model/config.js +11 -9
  185. package/packages/tools/lib/model/config.js.map +1 -1
  186. package/packages/tools/lib/model/effective-scope.d.ts +74 -0
  187. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
  188. package/packages/tools/lib/model/effective-scope.js +133 -0
  189. package/packages/tools/lib/model/effective-scope.js.map +1 -0
  190. package/packages/tools/lib/model/ir-identity.d.ts +94 -0
  191. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
  192. package/packages/tools/lib/model/ir-identity.js +178 -0
  193. package/packages/tools/lib/model/ir-identity.js.map +1 -0
  194. package/packages/tools/lib/model/kind-registry.d.ts +114 -1
  195. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  196. package/packages/tools/lib/model/kind-registry.js +148 -4
  197. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  198. package/packages/tools/lib/model/layer-resolver.js +1 -1
  199. package/packages/tools/lib/model/layer-resolver.js.map +1 -1
  200. package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
  201. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  202. package/packages/tools/lib/model/methodology-loader.js +179 -176
  203. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  204. package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
  205. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
  206. package/packages/tools/lib/model/methodology-resolver.js +317 -0
  207. package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
  208. package/packages/tools/lib/model/native-project.d.ts +130 -0
  209. package/packages/tools/lib/model/native-project.d.ts.map +1 -0
  210. package/packages/tools/lib/model/native-project.js +570 -0
  211. package/packages/tools/lib/model/native-project.js.map +1 -0
  212. package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
  213. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  214. package/packages/tools/lib/model/ontology-loader.js +340 -614
  215. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  216. package/packages/tools/lib/model/package-manifest.d.ts +37 -0
  217. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
  218. package/packages/tools/lib/model/package-manifest.js +96 -0
  219. package/packages/tools/lib/model/package-manifest.js.map +1 -0
  220. package/packages/tools/lib/model/parser-utils.d.ts +31 -0
  221. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
  222. package/packages/tools/lib/model/parser-utils.js +89 -1
  223. package/packages/tools/lib/model/parser-utils.js.map +1 -1
  224. package/packages/tools/lib/model/paths.d.ts +10 -4
  225. package/packages/tools/lib/model/paths.d.ts.map +1 -1
  226. package/packages/tools/lib/model/paths.js +10 -4
  227. package/packages/tools/lib/model/paths.js.map +1 -1
  228. package/packages/tools/lib/model/project-conversion.d.ts +226 -0
  229. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
  230. package/packages/tools/lib/model/project-conversion.js +946 -0
  231. package/packages/tools/lib/model/project-conversion.js.map +1 -0
  232. package/packages/tools/lib/model/relationship-legality.d.ts +10 -0
  233. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  234. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  235. package/packages/tools/lib/model/relationship-registry.d.ts +16 -1
  236. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  237. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  238. package/packages/tools/lib/model/semantic.d.ts +27 -0
  239. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  240. package/packages/tools/lib/model/semantic.js +3 -0
  241. package/packages/tools/lib/model/semantic.js.map +1 -1
  242. package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
  243. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
  244. package/packages/tools/lib/model/settings-boundary.js +118 -0
  245. package/packages/tools/lib/model/settings-boundary.js.map +1 -0
  246. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  247. package/packages/tools/lib/model/short-id.js +2 -0
  248. package/packages/tools/lib/model/short-id.js.map +1 -1
  249. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  250. package/packages/tools/lib/model/source-graph.js +5 -1
  251. package/packages/tools/lib/model/source-graph.js.map +1 -1
  252. package/packages/tools/lib/model/source-provenance.d.ts +112 -0
  253. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
  254. package/packages/tools/lib/model/source-provenance.js +169 -0
  255. package/packages/tools/lib/model/source-provenance.js.map +1 -0
  256. package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
  257. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
  258. package/packages/tools/lib/model/sysml-ir.js +105 -0
  259. package/packages/tools/lib/model/sysml-ir.js.map +1 -0
  260. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  261. package/packages/tools/lib/model/view-deriver.js +36 -6
  262. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  263. package/packages/tools/lib/model/view-kinds.d.ts +2 -0
  264. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
  265. package/packages/tools/lib/model/view-kinds.js +11 -0
  266. package/packages/tools/lib/model/view-kinds.js.map +1 -1
  267. package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
  268. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  269. package/packages/tools/lib/ontology/owl-exporter.js +12 -12
  270. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  271. package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
  272. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
  273. package/packages/tools/lib/operations/ai-authoring.js +77 -0
  274. package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
  275. package/packages/tools/lib/operations/authoring.d.ts +40 -0
  276. package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
  277. package/packages/tools/lib/operations/authoring.js +56 -0
  278. package/packages/tools/lib/operations/authoring.js.map +1 -0
  279. package/packages/tools/lib/operations/index.d.ts +2 -0
  280. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  281. package/packages/tools/lib/operations/index.js +2 -0
  282. package/packages/tools/lib/operations/index.js.map +1 -1
  283. package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
  284. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  285. package/packages/tools/lib/operations/project-snapshot.js +79 -30
  286. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  287. package/packages/tools/lib/protocol/messages.d.ts +298 -11
  288. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  289. package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
  290. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  291. package/packages/tools/lib/serializer/csv-io.js +11 -11
  292. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  293. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  294. package/packages/tools/lib/serializer/sysml-generator.js +34 -2
  295. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  296. package/packages/tools/lib/server/config-resolver.d.ts +8 -4
  297. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
  298. package/packages/tools/lib/server/config-resolver.js +25 -44
  299. package/packages/tools/lib/server/config-resolver.js.map +1 -1
  300. package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
  301. package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
  302. package/packages/tools/lib/server/conflict-policy.js +94 -0
  303. package/packages/tools/lib/server/conflict-policy.js.map +1 -0
  304. package/packages/tools/lib/server/dev-server.d.ts +32 -2
  305. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  306. package/packages/tools/lib/server/dev-server.js +721 -53
  307. package/packages/tools/lib/server/dev-server.js.map +1 -1
  308. package/packages/tools/lib/server/element-writer.d.ts +11 -0
  309. package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
  310. package/packages/tools/lib/server/element-writer.js +123 -0
  311. package/packages/tools/lib/server/element-writer.js.map +1 -0
  312. package/packages/tools/lib/server/file-watcher.d.ts +4 -1
  313. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
  314. package/packages/tools/lib/server/file-watcher.js +17 -7
  315. package/packages/tools/lib/server/file-watcher.js.map +1 -1
  316. package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
  317. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
  318. package/packages/tools/lib/server/mutation-domain.js +87 -0
  319. package/packages/tools/lib/server/mutation-domain.js.map +1 -0
  320. package/packages/tools/lib/server/persistor.d.ts +63 -8
  321. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  322. package/packages/tools/lib/server/persistor.js +152 -44
  323. package/packages/tools/lib/server/persistor.js.map +1 -1
  324. package/packages/tools/lib/server/relationship-writer.d.ts +28 -4
  325. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  326. package/packages/tools/lib/server/relationship-writer.js +98 -13
  327. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  328. package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
  329. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
  330. package/packages/tools/lib/server/rule-policy-writer.js +124 -0
  331. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
  332. package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
  333. package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
  334. package/packages/tools/lib/server/runtime-budget.js +15 -0
  335. package/packages/tools/lib/server/runtime-budget.js.map +1 -0
  336. package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
  337. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
  338. package/packages/tools/lib/server/sysml-notation.js +87 -0
  339. package/packages/tools/lib/server/sysml-notation.js.map +1 -0
  340. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
  341. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
  342. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
  343. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
  344. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
  345. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
  346. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
  347. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
  348. package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
  349. package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
  350. package/packages/tools/lib/sysml-ir/index.js +3 -0
  351. package/packages/tools/lib/sysml-ir/index.js.map +1 -0
  352. package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
  353. package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
  354. package/packages/tools/lib/sysml-ir/ir.js +2 -0
  355. package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
  356. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
  357. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
  358. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
  359. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
  360. package/packages/tools/lib/sysmlc/index.d.ts +2 -0
  361. package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
  362. package/packages/tools/lib/sysmlc/index.js +7 -0
  363. package/packages/tools/lib/sysmlc/index.js.map +1 -0
  364. package/packages/tools/lib/sysmlc/server.d.ts +29 -0
  365. package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
  366. package/packages/tools/lib/sysmlc/server.js +168 -0
  367. package/packages/tools/lib/sysmlc/server.js.map +1 -0
  368. package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
  369. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
  370. package/packages/tools/lib/toolchain/default-registry.js +28 -0
  371. package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
  372. package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
  373. package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
  374. package/packages/tools/lib/toolchain/diagnostic.js +69 -0
  375. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
  376. package/packages/tools/lib/toolchain/effective.d.ts +36 -0
  377. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
  378. package/packages/tools/lib/toolchain/effective.js +91 -0
  379. package/packages/tools/lib/toolchain/effective.js.map +1 -0
  380. package/packages/tools/lib/toolchain/index.d.ts +11 -0
  381. package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
  382. package/packages/tools/lib/toolchain/index.js +21 -0
  383. package/packages/tools/lib/toolchain/index.js.map +1 -0
  384. package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
  385. package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
  386. package/packages/tools/lib/toolchain/lowering.js +100 -0
  387. package/packages/tools/lib/toolchain/lowering.js.map +1 -0
  388. package/packages/tools/lib/toolchain/operations.d.ts +87 -0
  389. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
  390. package/packages/tools/lib/toolchain/operations.js +111 -0
  391. package/packages/tools/lib/toolchain/operations.js.map +1 -0
  392. package/packages/tools/lib/toolchain/process.d.ts +45 -0
  393. package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
  394. package/packages/tools/lib/toolchain/process.js +125 -0
  395. package/packages/tools/lib/toolchain/process.js.map +1 -0
  396. package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
  397. package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
  398. package/packages/tools/lib/toolchain/protocol.js +74 -0
  399. package/packages/tools/lib/toolchain/protocol.js.map +1 -0
  400. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
  401. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
  402. package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
  403. package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
  404. package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
  405. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
  406. package/packages/tools/lib/toolchain/providers/internal.js +286 -0
  407. package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
  408. package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
  409. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
  410. package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
  411. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
  412. package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
  413. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
  414. package/packages/tools/lib/toolchain/providers/syside.js +208 -0
  415. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
  416. package/packages/tools/lib/toolchain/registry.d.ts +192 -0
  417. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
  418. package/packages/tools/lib/toolchain/registry.js +130 -0
  419. package/packages/tools/lib/toolchain/registry.js.map +1 -0
  420. package/packages/tools/lib/toolchain/schema.d.ts +30 -0
  421. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
  422. package/packages/tools/lib/toolchain/schema.js +112 -0
  423. package/packages/tools/lib/toolchain/schema.js.map +1 -0
  424. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
  425. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
  426. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  427. package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
  428. package/packages/tools/lib/validator/architecture-validator.d.ts +8 -1
  429. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
  430. package/packages/tools/lib/validator/architecture-validator.js +25 -1
  431. package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
  432. package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
  433. package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
  434. package/packages/tools/lib/validator/builtin-rules.js +62 -0
  435. package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
  436. package/packages/tools/lib/validator/constraint-eval.d.ts +15 -0
  437. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  438. package/packages/tools/lib/validator/constraint-eval.js +62 -7
  439. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  440. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
  441. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  442. package/packages/tools/lib/validator/constraint-loader.js +100 -27
  443. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  444. package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
  445. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  446. package/packages/tools/lib/validator/rule-engine.js +56 -5
  447. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  448. package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
  449. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
  450. package/packages/tools/lib/validator/sysml-constraints.js +251 -0
  451. package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
  452. package/packages/tools/lib/validator/types.d.ts +33 -0
  453. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  454. package/packages/tools/lib/version.d.ts +2 -0
  455. package/packages/tools/lib/version.d.ts.map +1 -0
  456. package/packages/tools/lib/version.js +26 -0
  457. package/packages/tools/lib/version.js.map +1 -0
  458. package/packages/tools/src/grammar/memo-sysml.langium +104 -18
  459. package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
  460. package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
  461. package/packages/tools/lib/model/dimension-filter.js +0 -57
  462. package/packages/tools/lib/model/dimension-filter.js.map +0 -1
  463. package/packages/tools/lib/model/toolchain.d.ts +0 -12
  464. package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
  465. package/packages/tools/lib/model/toolchain.js +0 -92
  466. package/packages/tools/lib/model/toolchain.js.map +0 -1
@@ -0,0 +1,315 @@
1
+ // GENERATED from SysML.ecore by scripts/generate-sysml-ir.mjs. DO NOT EDIT.
2
+ //
3
+ // The specification OCL, verbatim, from release 2026-05 commit fa709f2.
4
+ //
5
+ // This is a **citation index, not an implementation**. The OCL here is spec
6
+ // prose in a code font: it carries typos, unlabelled assignments, and empty
7
+ // bodies at seven load-bearing operations. Nothing translates it automatically
8
+ // (plan §1.5.1 rule 2) — the resolution core implements each clause by hand and
9
+ // quotes it, and this module is what it quotes from.
10
+ //
11
+ // Kept out of `sysml-metamodel.ts` on purpose: it is roughly the same size
12
+ // again as the structural metamodel, and only the resolution core reads it.
13
+ /** Feature derivations, keyed `Metaclass/feature`. */
14
+ export const SYSML_FEATURE_DERIVATIONS = {
15
+ "AcceptActionUsage/payloadArgument": "payloadArgument = argument(1)",
16
+ "AcceptActionUsage/payloadParameter": "payloadParameter = \n if parameter->isEmpty() then null\n else parameter->first() endif",
17
+ "AcceptActionUsage/receiverArgument": "receiverArgument = argument(2)",
18
+ "ActionDefinition/action": "action = usage->selectByKind(ActionUsage)",
19
+ "AllocationDefinition/allocation": "allocation = usage->selectAsKind(AllocationUsage)",
20
+ "AnalysisCaseDefinition/resultExpression": "resultExpression =\n let results : OrderedSet(ResultExpressionMembership) =\n featureMembersip->\n selectByKind(ResultExpressionMembership) in\n if results->isEmpty() then null\n else results->first().ownedResultExpression\n endif",
21
+ "AnalysisCaseUsage/resultExpression": "resultExpression =\n let results : OrderedSet(ResultExpressionMembership) =\n featureMembersip->\n selectByKind(ResultExpressionMembership) in\n if results->isEmpty() then null\n else results->first().ownedResultExpression\n endif",
22
+ "AnnotatingElement/annotatedElement": "annotatedElement = \n if annotation->notEmpty() then annotation.annotatedElement\n else Sequence{owningNamespace} endif",
23
+ "AnnotatingElement/annotation": "annotation = \n if owningAnnotatingRelationship = null then ownedAnnotatingRelationship\n else owningAnnotatingRelationship->prepend(owningAnnotatingRelationship)\n endif",
24
+ "AnnotatingElement/ownedAnnotatingRelationship": "ownedAnnotatingRelationship = ownedRelationship->\n selectByKind(Annotation)->\n select(a | a.annotatedElement <> self)",
25
+ "Annotation/annotatingElement": "annotatingElement =\n if ownedAnnotatingElement <> null then ownedAnnotatingElement\n else owningAnnotatingElement\n endif",
26
+ "Annotation/ownedAnnotatingElement": "ownedAnnotatingElement =\n let ownedAnnotatingElements : Sequence(AnnotatingElement) = \n ownedRelatedElement->selectByKind(AnnotatingElement) in\n if ownedAnnotatingElements->isEmpty() then null\n else ownedAnnotatingElements->first()\n endif",
27
+ "AssertConstraintUsage/assertedConstraint": "assertedConstraint =\n if referencedFeatureTarget() = null then self\n else if referencedFeatureTarget().oclIsKindOf(ConstraintUsage) then\n referencedFeatureTarget().oclAsType(ConstraintUsage)\n else null\n endif endif",
28
+ "AssignmentActionUsage/referent": "referent =\n let unownedFeatures : Sequence(Feature) = ownedMembership->\n reject(oclIsKindOf(FeatureMembership)).memberElement->\n select(oclIsKindOf(Feature) and \n not oclIsKindOf(MetadataFeature)) in\n if unownedFeatures->isEmpty() then null\n else unownedFeatures->first().oclAsType(Feature)\n endif",
29
+ "AssignmentActionUsage/targetArgument": "targetArgument = argument(1)",
30
+ "AssignmentActionUsage/valueExpression": "valueExpression = argument(2)",
31
+ "Association/relatedType": "relatedType = associationEnd.type",
32
+ "Association/sourceType": "sourceType =\n if relatedType->isEmpty() then null\n else relatedType->first() endif",
33
+ "Association/targetType": "targetType =\n if relatedType->size() < 2 then OrderedSet{}\n else \n relatedType->\n subSequence(2, relatedType->size())->\n asOrderedSet() \n endif",
34
+ "Behavior/step": "step = feature->selectByKind(Step)",
35
+ "CalculationDefinition/calculation": "calculation = action->selectByKind(CalculationUsage)",
36
+ "CaseDefinition/actorParameter": "actorParameter = featureMembership->\n selectByKind(ActorMembership).\n ownedActorParameter",
37
+ "CaseDefinition/objectiveRequirement": "objectiveRequirement = \n let objectives: OrderedSet(RequirementUsage) = \n featureMembership->\n selectByKind(ObjectiveMembership).\n ownedRequirement in\n if objectives->isEmpty() then null\n else objectives->first().ownedObjectiveRequirement\n endif",
38
+ "CaseDefinition/subjectParameter": "subjectParameter =\n let subjectMems : OrderedSet(SubjectMembership) = \n featureMembership->selectByKind(SubjectMembership) in\n if subjectMems->isEmpty() then null\n else subjectMems->first().ownedSubjectParameter\n endif",
39
+ "CaseUsage/actorParameter": "actorParameter = featureMembership->\n selectByKind(ActorMembership).\n ownedActorParameter",
40
+ "CaseUsage/objectiveRequirement": "objectiveRequirement = \n let objectives: OrderedSet(RequirementUsage) = \n featureMembership->\n selectByKind(ObjectiveMembership).\n ownedRequirement in\n if objectives->isEmpty() then null\n else objectives->first().ownedObjectiveRequirement\n endif",
41
+ "CaseUsage/subjectParameter": "subjectParameter =\n let subjects : OrderedSet(SubjectMembership) = \n featureMembership->selectByKind(SubjectMembership) in\n if subjects->isEmpty() then null\n else subjects->first().ownedSubjectParameter\n endif",
42
+ "Classifier/ownedSubclassification": "ownedSubclassification = \n ownedSpecialization->selectByKind(Subclassification)",
43
+ "ConjugatedPortTyping/portDefinition": "portDefinition = conjugatedPortDefinition.originalPortDefinition",
44
+ "Connector/relatedFeature": "relatedFeature = connectorEnd.ownedReferenceSubsetting->\n select(s | s <> null).subsettedFeature",
45
+ "Connector/sourceFeature": "sourceFeature = \n if relatedFeature->isEmpty() then null \n else relatedFeature->first() \n endif",
46
+ "Connector/targetFeature": "targetFeature =\n if relatedFeature->size() < 2 then OrderedSet{}\n else \n relatedFeature->\n subSequence(2, relatedFeature->size())->\n asOrderedSet()\n endif",
47
+ "Definition/directedUsage": "directedUsage = directedFeature->selectByKind(Usage)",
48
+ "Definition/ownedAction": "ownedAction = ownedUsage->selectByKind(ActionUsage)",
49
+ "Definition/ownedAllocation": "ownedAllocation = ownedUsage->selectByKind(AllocationUsage)",
50
+ "Definition/ownedAnalysisCase": "ownedAnalysisCase = ownedUsage->selectByKind(AnalysisCaseUsage)",
51
+ "Definition/ownedAttribute": "ownedAttribute = ownedUsage->selectByKind(AttributeUsage)",
52
+ "Definition/ownedCalculation": "ownedCalculation = ownedUsage->selectByKind(CalculationUsage)",
53
+ "Definition/ownedCase": "ownedCase = ownedUsage->selectByKind(CaseUsage)",
54
+ "Definition/ownedConcern": "ownedConcern = ownedUsage->selectByKind(ConcernUsage)",
55
+ "Definition/ownedConnection": "ownedConnection = ownedUsage->selectByKind(ConnectorAsUsage)",
56
+ "Definition/ownedConstraint": "ownedConstraint = ownedUsage->selectByKind(ConstraintUsage)",
57
+ "Definition/ownedEnumeration": "ownedEnumeration = ownedUsage->selectByKind(EnumerationUsage)",
58
+ "Definition/ownedFlow": "ownedFlow = ownedUsage->selectByKind(FlowUsage)",
59
+ "Definition/ownedInterface": "ownedInterface = ownedUsage->selectByKind(ReferenceUsage)",
60
+ "Definition/ownedItem": "ownedItem = ownedUsage->selectByKind(ItemUsage)",
61
+ "Definition/ownedMetadata": "ownedMetadata = ownedMember->selectByKind(MetadataUsage)",
62
+ "Definition/ownedOccurrence": "ownedOccurrence = ownedUsage->selectByKind(OccurrenceUsage)",
63
+ "Definition/ownedPart": "ownedPart = ownedUsage->selectByKind(PartUsage)",
64
+ "Definition/ownedPort": "ownedPort = ownedUsage->selectByKind(PortUsage)",
65
+ "Definition/ownedReference": "ownedReference = ownedUsage->selectByKind(ReferenceUsage)",
66
+ "Definition/ownedRendering": "ownedRendering = ownedUsage->selectByKind(RenderingUsage)",
67
+ "Definition/ownedRequirement": "ownedRequirement = ownedUsage->selectByKind(RequirementUsage)",
68
+ "Definition/ownedState": "ownedState = ownedUsage->selectByKind(StateUsage)",
69
+ "Definition/ownedTransition": "ownedTransition = ownedUsage->selectByKind(TransitionUsage)",
70
+ "Definition/ownedUsage": "ownedUsage = ownedFeature->selectByKind(Usage)",
71
+ "Definition/ownedUseCase": "ownedUseCase = ownedUsage->selectByKind(UseCaseUsage)",
72
+ "Definition/ownedVerificationCase": "ownedVerificationCase = ownedUsage->selectByKind(VerificationCaseUsage)",
73
+ "Definition/ownedView": "ownedView = ownedUsage->selectByKind(ViewUsage)",
74
+ "Definition/ownedViewpoint": "ownedViewpoint = ownedUsage->selectByKind(ViewpointUsage)",
75
+ "Definition/usage": "usage = feature->selectByKind(Usage)",
76
+ "Definition/variant": "variant = variantMembership.ownedVariantUsage",
77
+ "Definition/variantMembership": "variantMembership = ownedMembership->selectByKind(VariantMembership)",
78
+ "Element/documentation": "documentation = ownedElement->selectByKind(Documentation)",
79
+ "Element/isLibraryElement": "isLibraryElement = libraryNamespace() <> null",
80
+ "Element/name": "name = effectiveName()",
81
+ "Element/ownedAnnotation": "ownedAnnotation = ownedRelationship->\n selectByKind(Annotation)->\n select(a | a.annotatedElement = self)",
82
+ "Element/ownedElement": "ownedElement = ownedRelationship.ownedRelatedElement",
83
+ "Element/owner": "owner = owningRelationship.owningRelatedElement",
84
+ "Element/owningNamespace": "owningNamespace =\n if owningMembership = null then null\n else owningMembership.membershipOwningNamespace\n endif",
85
+ "Element/qualifiedName": "qualifiedName =\n if owningNamespace = null then null\n else if name <> null and \n owningNamespace.ownedMember->\n select(m | m.name = name).indexOf(self) <> 1 then null\n else if owningNamespace.owner = null then escapedName()\n else if owningNamespace.qualifiedName = null or \n escapedName() = null then null\n else owningNamespace.qualifiedName + '::' + escapedName()\n endif endif endif endif",
86
+ "Element/shortName": "shortName = effectiveShortName()",
87
+ "Element/textualRepresentation": "textualRepresentation = ownedElement->selectByKind(TextualRepresentation)",
88
+ "EventOccurrenceUsage/eventOccurrence": "eventOccurrence =\n if referencedFeatureTarget() = null then self\n else if referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) then\n referencedFeatureTarget().oclAsType(OccurrenceUsage)\n else null\n endif endif",
89
+ "Expression/isModelLevelEvaluable": "isModelLevelEvaluable = modelLevelEvaluable(Set(Element){})",
90
+ "Expression/result": "result =\n let resultParams : Sequence(Feature) =\n featureMemberships->\n selectByKind(ReturnParameterMembership).\n ownedMemberParameter in\n if resultParams->notEmpty() then resultParams->first()\n else null\n endif",
91
+ "Feature/chainingFeature": "chainingFeature = ownedFeatureChaining.chainingFeature",
92
+ "Feature/crossFeature": "crossFeature =\n if ownedCrossSubsetting = null then null\n else \n let chainingFeatures: Sequence(Feature) = \n ownedCrossSubsetting.crossedFeature.chainingFeature in\n if chainingFeatures->size() < 2 then null\n else chainingFeatures->at(2)\n endif",
93
+ "Feature/featureTarget": "featureTarget = if chainingFeature->isEmpty() then self else chainingFeature->last() endif",
94
+ "Feature/featuringType": "featuringType =\n let featuringTypes : OrderedSet(Type) = \n typeFeaturing.type->asOrderedSet() in\n if chainingFeature->isEmpty() then featuringTypes\n else\n featuringTypes->\n union(chainingFeature->first().featuringType)->\n asOrderedSet()\n endif",
95
+ "Feature/ownedCrossSubsetting": "ownedCrossSubsetting =\n let crossSubsettings: Sequence(CrossSubsetting) = \n ownedSubsetting->selectByKind(CrossSubsetting) in\n if crossSubsettings->isEmpty() then null\n else crossSubsettings->first()\n endif",
96
+ "Feature/ownedFeatureChaining": "ownedFeatureChaining = ownedRelationship->selectByKind(FeatureChaining)",
97
+ "Feature/ownedFeatureInverting": "ownedFeatureInverting = ownedRelationship->selectByKind(FeatureInverting)->\n select(fi | fi.featureInverted = self)",
98
+ "Feature/ownedRedefinition": "ownedRedefinition = ownedSubsetting->selectByKind(Redefinition)",
99
+ "Feature/ownedReferenceSubsetting": "ownedReferenceSubsetting =\n let referenceSubsettings : OrderedSet(ReferenceSubsetting) =\n ownedSubsetting->selectByKind(ReferenceSubsetting) in\n if referenceSubsettings->isEmpty() then null\n else referenceSubsettings->first() endif",
100
+ "Feature/ownedSubsetting": "ownedSubsetting = ownedSpecialization->selectByKind(Subsetting)",
101
+ "Feature/ownedTypeFeaturing": "ownedTypeFeaturing = ownedRelationship->selectByKind(TypeFeaturing)->\n select(tf | tf.featureOfType = self)",
102
+ "Feature/ownedTyping": "ownedTyping = ownedGeneralization->selectByKind(FeatureTyping)",
103
+ "Feature/type": "type = \n let types : OrderedSet(Types) = OrderedSet{self}->\n -- Note: The closure operation automatically handles circular relationships.\n closure(typingFeatures()).typing.type->asOrderedSet() in\n types->reject(t1 | types->exist(t2 | t2 <> t1 and t2.specializes(t1)))",
104
+ "FeatureChainExpression/targetFeature": "targetFeature =\n let nonParameterMemberships : Sequence(Membership) = ownedMembership->\n reject(oclIsKindOf(ParameterMembership)) in\n if nonParameterMemberships->isEmpty() or\n not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature)\n then null\n else nonParameterMemberships->first().memberElement.oclAsType(Feature)\n endif",
105
+ "FeatureReferenceExpression/referent": "referent =\n let nonParameterMemberships : Sequence(Membership) = ownedMembership->\n reject(oclIsKindOf(ParameterMembership)) in\n if nonParameterMemberships->isEmpty() or\n not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature)\n then null\n else nonParameterMemberships->first().memberElement.oclAsType(Feature)\n endif",
106
+ "Flow/flowEnd": "flowEnd = connectorEnd->selectByKind(FlowEnd)",
107
+ "Flow/payloadFeature": "payloadFeature =\n let payloadFeatures : Sequence(PayloadFeature) =\n ownedFeature->selectByKind(PayloadFeature) in\n if payloadFeatures->isEmpty() then null\n else payloadFeatures->first()\n endif",
108
+ "Flow/payloadType": "payloadType =\n if payloadFeature = null then Sequence{}\n else payloadFeature.type\n endif",
109
+ "Flow/sourceOutputFeature": "sourceOutputFeature =\n if connectorEnd->isEmpty() or \n connectorEnd.ownedFeature->isEmpty()\n then null\n else connectorEnd.ownedFeature->first()\n endif",
110
+ "Flow/targetInputFeature": "targetInputFeature =\n if connectorEnd->size() < 2 or \n connectorEnd->at(2).ownedFeature->isEmpty()\n then null\n else connectorEnd->at(2).ownedFeature->first()\n endif",
111
+ "ForLoopActionUsage/loopVariable": "loopVariable =\n if ownedFeature->isEmpty() or \n not ownedFeature->first().oclIsKindOf(ReferenceUsage) then \n null\n else \n ownedFeature->first().oclAsType(ReferenceUsage)\n endif",
112
+ "ForLoopActionUsage/seqArgument": "seqArgument = argument(1)",
113
+ "Function/result": "result =\n let resultParams : Sequence(Feature) =\n featureMemberships->\n selectByKind(ReturnParameterMembership).\n ownedMemberParameter in\n if resultParams->notEmpty() then resultParams->first()\n else null\n endif",
114
+ "IfActionUsage/elseAction": "elseAction = \n let parameter : Feature = inputParameter(3) in\n if parameter <> null and parameter.oclIsKindOf(ActionUsage) then\n parameter.oclAsType(ActionUsage)\n else\n null\n endif",
115
+ "IfActionUsage/ifArgument": "ifArgument = \n let parameter : Feature = inputParameter(1) in\n if parameter <> null and parameter.oclIsKindOf(Expression) then\n parameter.oclAsType(Expression)\n else\n null\n endif",
116
+ "IfActionUsage/thenAction": "thenAction = \n let parameter : Feature = inputParameter(2) in\n if parameter <> null and parameter.oclIsKindOf(ActionUsage) then\n parameter.oclAsType(ActionUsage)\n else\n null\n endif",
117
+ "InstantiationExpression/instantiatedType": "instantiatedType = instantiatedType()",
118
+ "ItemUsage/itemDefinition": "itemDefinition = occurrenceDefinition->selectByKind(Structure)",
119
+ "LoopActionUsage/bodyAction": "bodyAction =\n let parameter : Feature = inputParameter(2) in\n if parameter <> null and parameter.oclIsKindOf(Action) then\n parameter.oclAsType(Action)\n else\n null\n endif",
120
+ "Membership/memberElementId": "memberElementId = memberElement.elementId",
121
+ "MetadataAccessExpression/referencedElement": "referencedElement =\n let elements : Sequence(Element) = ownedMembership->\n reject(oclIsKindOf(FeatureMembership)).memberElement in\n if elements->isEmpty() then null\n else elements->first()\n endif",
122
+ "MetadataFeature/metaclass": "metaclass = \n let metaclassTypes : Sequence(Type) = type->selectByKind(Metaclass) in\n if metaclassTypes->isEmpty() then null\n else metaClassTypes->first()\n endif",
123
+ "MultiplicityRange/bound": "bound =\n if upperBound = null then Sequence{}\n else if lowerBound = null then Sequence{upperBound}\n else Sequence{lowerBound, upperBound}\n endif endif",
124
+ "MultiplicityRange/lowerBound": "lowerBound =\n let ownedExpressions : Sequence(Expression) =\n ownedMember->selectByKind(Expression) in\n if ownedExpressions->size() < 2 then null\n else ownedExpressions->first()\n endif",
125
+ "MultiplicityRange/upperBound": "upperBound =\n let ownedExpressions : Sequence(Expression) =\n ownedMember->selectByKind(Expression) in\n if ownedExpressions->isEmpty() then null\n else if ownedExpressions->size() = 1 then ownedExpressions->at(1)\n else ownedExpressions->at(2)\n endif endif",
126
+ "Namespace/importedMembership": "importedMembership = importedMemberships(Set{})",
127
+ "Namespace/member": "member = membership.memberElement",
128
+ "Namespace/ownedImport": "ownedImport = ownedRelationship->selectByKind(Import)",
129
+ "Namespace/ownedMember": "ownedMember = ownedMembership->selectByKind(OwningMembership).ownedMemberElement",
130
+ "Namespace/ownedMembership": "ownedMembership = ownedRelationship->selectByKind(Membership)",
131
+ "OccurrenceUsage/individualDefinition": "individualDefinition =\n let individualDefinitions : OrderedSet(OccurrenceDefinition) = \n occurrenceDefinition->\n selectByKind(OccurrenceDefinition)->\n select(isIndividual) in\n if individualDefinitions->isEmpty() then null\n else individualDefinitions->first() endif",
132
+ "OwningMembership/ownedMemberName": "ownedMemberName = ownedMemberElement.name",
133
+ "OwningMembership/ownedMemberShortName": "ownedMemberShortName = ownedMemberElement.shortName",
134
+ "Package/filterCondition": "filterCondition = ownedMembership->\n selectByKind(ElementFilterMembership).condition",
135
+ "PortDefinition/conjugatedPortDefinition": "conjugatedPortDefinition =",
136
+ "Relationship/relatedElement": "relatedElement = source->union(target)",
137
+ "RenderingDefinition/rendering": "rendering = usages->selectByKind(RenderingUsage)",
138
+ "RequirementConstraintMembership/referencedConstraint": "referencedConstraint =\n let referencedFeature : Feature = \n ownedConstraint.referencedFeatureTarget() in\n if referencedFeature = null then ownedConstraint\n else if referencedFeature.oclIsKindOf(ConstraintUsage) then\n refrencedFeature.oclAsType(ConstraintUsage)\n else null\n endif endif",
139
+ "RequirementDefinition/actorParameter": "actorParameter = featureMembership->\n selectByKind(ActorMembership).\n ownedActorParameter",
140
+ "RequirementDefinition/assumedConstraint": "assumedConstraint = ownedFeatureMembership->\n selectByKind(RequirementConstraintMembership)->\n select(kind = RequirementConstraintKind::assumption).\n ownedConstraint",
141
+ "RequirementDefinition/framedConcern": "framedConcern = featureMembership->\n selectByKind(FramedConcernMembership).\n ownedConcern",
142
+ "RequirementDefinition/requiredConstraint": "requiredConstraint = ownedFeatureMembership->\n selectByKind(RequirementConstraintMembership)->\n select(kind = RequirementConstraintKind::requirement).\n ownedConstraint",
143
+ "RequirementDefinition/stakeholderParameter": "stakeholderParameter = featureMembership->\n selectByKind(StakholderMembership).\n ownedStakeholderParameter",
144
+ "RequirementDefinition/subjectParameter": "subjectParameter =\n let subjects : OrderedSet(SubjectMembership) = \n featureMembership->selectByKind(SubjectMembership) in\n if subjects->isEmpty() then null\n else subjects->first().ownedSubjectParameter\n endif",
145
+ "RequirementDefinition/text": "text = documentation.body",
146
+ "RequirementUsage/actorParameter": "actorParameter = featureMembership->\n selectByKind(ActorMembership).\n ownedActorParameter",
147
+ "RequirementUsage/assumedConstraint": "assumedConstraint = ownedFeatureMembership->\n selectByKind(RequirementConstraintMembership)->\n select(kind = RequirementConstraintKind::assumption).\n ownedConstraint",
148
+ "RequirementUsage/framedConcern": "framedConcern = featureMembership->\n selectByKind(FramedConcernMembership).\n ownedConcern",
149
+ "RequirementUsage/requiredConstraint": "requiredConstraint = ownedFeatureMembership->\n selectByKind(RequirementConstraintMembership)->\n select(kind = RequirementConstraintKind::requirement).\n ownedConstraint",
150
+ "RequirementUsage/stakeholderParameter": "stakeholderParameter = featureMembership->\n selectByKind(AStakholderMembership).\n ownedStakeholderParameter",
151
+ "RequirementUsage/subjectParameter": "subjectParameter =\n let subjects : OrderedSet(SubjectMembership) = \n featureMembership->selectByKind(SubjectMembership) in\n if subjects->isEmpty() then null\n else subjects->first().ownedSubjectParameter\n endif",
152
+ "RequirementUsage/text": "text = documentation.body",
153
+ "SatisfyRequirementUsage/satisfyingFeature": "satisfyingFeature =\n let bindings: BindingConnector = ownedMember->\n selectByKind(BindingConnector)->\n select(b | b.relatedElement->includes(subjectParameter)) in\n if bindings->isEmpty() or \n not bindings->first().relatedElement->exits(r | r <> subjectParameter) \n then null\n else bindings->first().relatedElement->any(r | r <> subjectParameter)\n endif",
154
+ "SendActionUsage/payloadArgument": "payloadArgument = argument(1)",
155
+ "SendActionUsage/receiverArgument": "receiverArgument = argument(3)",
156
+ "SendActionUsage/senderArgument": "senderArgument = argument(2)",
157
+ "StateDefinition/doAction": "doAction =\n let doMemberships : Sequence(StateSubactionMembership) =\n ownedMembership->\n selectByKind(StateSubactionMembership)->\n select(kind = StateSubactionKind::do) in\n if doMemberships->isEmpty() then null\n else doMemberships->at(1)\n endif",
158
+ "StateDefinition/entryAction": "entryAction =\n let entryMemberships : Sequence(StateSubactionMembership) =\n ownedMembership->\n selectByKind(StateSubactionMembership)->\n select(kind = StateSubactionKind::entry) in\n if entryMemberships->isEmpty() then null\n else entryMemberships->at(1)\n endif",
159
+ "StateDefinition/exitAction": "exitAction = \n let exitMemberships : Sequence(StateSubactionMembership) =\n ownedMembership->\n selectByKind(StateSubactionMembership)->\n select(kind = StateSubactionKind::exit) in\n if exitMemberships->isEmpty() then null\n else exitMemberships->at(1)\n endif",
160
+ "StateDefinition/state": "state = action->selectByKind(StateUsage)",
161
+ "StateUsage/doAction": "doAction =\n let doMemberships : Sequence(StateSubactionMembership) =\n ownedMembership->\n selectByKind(StateSubactionMembership)->\n select(kind = StateSubactionKind::do) in\n if doMemberships->isEmpty() then null\n else doMemberships->at(1)\n endif",
162
+ "StateUsage/entryAction": "entryAction =\n let entryMemberships : Sequence(StateSubactionMembership) =\n ownedMembership->\n selectByKind(StateSubactionMembership)->\n select(kind = StateSubactionKind::entry) in\n if entryMemberships->isEmpty() then null\n else entryMemberships->at(1)\n endif",
163
+ "StateUsage/exitAction": "exitAction =\n let exitMemberships : Sequence(StateSubactionMembership) =\n ownedMembership->\n selectByKind(StateSubactionMembership)->\n select(kind = StateSubactionKind::exit) in\n if exitMemberships->isEmpty() then null\n else exitMemberships->at(1)\n endif",
164
+ "Step/behavior": "behavior = type->selectByKind(Behavior)",
165
+ "TerminateActionUsage/terminatedOccurrenceArgument": "terminatedOccurrenceArgument = argument(1)",
166
+ "TransitionUsage/guardExpression": "guardExpression = ownedFeatureMembership->\n selectByKind(TransitionFeatureMembership)->\n select(kind = TransitionFeatureKind::trigger).transitionFeature->\n selectByKind(Expression)",
167
+ "TransitionUsage/source": "source =\n let sourceFeature : Feature = sourceFeature() in\n if sourceFeature = null then null\n else sourceFeature.featureTarget.oclAsType(ActionUsage)",
168
+ "TransitionUsage/succession": "succession = ownedMember->selectByKind(Succession)->at(1)",
169
+ "TransitionUsage/target": "target =\n if succession.targetFeature->isEmpty() then null\n else\n let targetFeature : Feature =\n succession.targetFeature->first().featureTarget in\n if not targetFeature.oclIsKindOf(ActionUsage) then null\n else targetFeature.oclAsType(ActionUsage)\n endif\n endif",
170
+ "TransitionUsage/triggerAction": "triggerAction = ownedFeatureMembership->\n selectByKind(TransitionFeatureMembership)->\n select(kind = TransitionFeatureKind::trigger).transitionFeature->\n selectByKind(AcceptActionUsage)",
171
+ "Type/differencingType": "differencingType = ownedDifferencing.differencingType",
172
+ "Type/directedFeature": "directedFeature = feature->select(f | directionOf(f) <> null)",
173
+ "Type/endFeature": "endFeature = feature->select(isEnd)",
174
+ "Type/feature": "feature = featureMembership.ownedMemberFeature",
175
+ "Type/featureMembership": "featureMembership = ownedFeatureMembership->union(\n inheritedMembership->selectByKind(FeatureMembership))",
176
+ "Type/inheritedFeature": "inheritedFeature = inheritedMemberships->\n selectByKind(FeatureMembership).memberFeature",
177
+ "Type/inheritedMembership": "inheritedMembership = inheritedMemberships(Set{}, Set{}, false)",
178
+ "Type/input": "input = feature->select(f | \n let direction: FeatureDirectionKind = directionOf(f) in\n direction = FeatureDirectionKind::_'in' or\n direction = FeatureDirectionKind::inout)",
179
+ "Type/intersectingType": "intersectingType = ownedIntersecting.intersectingType",
180
+ "Type/multiplicity": "multiplicity = \n let ownedMultiplicities: Sequence(Multiplicity) =\n ownedMember->selectByKind(Multiplicity) in\n if ownedMultiplicities->isEmpty() then null\n else ownedMultiplicities->first()\n endif",
181
+ "Type/output": "output = feature->select(f | \n let direction: FeatureDirectionKind = directionOf(f) in\n direction = FeatureDirectionKind::out or\n direction = FeatureDirectionKind::inout)",
182
+ "Type/ownedConjugator": "ownedConjugator =\n let ownedConjugators: Sequence(Conjugator) = \n ownedRelationship->selectByKind(Conjugation) in\n if ownedConjugators->isEmpty() then null \n else ownedConjugators->at(1) endif",
183
+ "Type/ownedDifferencing": "ownedDifferencing =\n ownedRelationship->selectByKind(Differencing)",
184
+ "Type/ownedDisjoining": "ownedDisjoining =\n ownedRelationship->selectByKind(Disjoining)",
185
+ "Type/ownedEndFeature": "ownedEndFeature = ownedFeature->select(isEnd)",
186
+ "Type/ownedFeature": "ownedFeature = ownedFeatureMembership.ownedMemberFeature",
187
+ "Type/ownedFeatureMembership": "ownedFeatureMembership = ownedRelationship->selectByKind(FeatureMembership)",
188
+ "Type/ownedSpecialization": "ownedSpecialization = ownedRelationship->selectByKind(Specialization)->\n select(s | s.special = self)",
189
+ "Type/ownedUnioning": "ownedUnioning =\n ownedRelationship->selectByKind(Unioning)",
190
+ "Type/unioningType": "unioningType = ownedUnioning.unioningType",
191
+ "Usage/directedUsage": "directedUsage = directedFeature->selectByKind(Usage)",
192
+ "Usage/isReference": "isReference = not isComposite",
193
+ "Usage/mayTimeVary": "mayTimeVary =\n owningType <> null and\n owningType.specializesFromLibrary('Occurrences::Occurrence') and\n not (\n isPortion or\n specializesFromLibrary('Links::SelfLink') or\n specializesFromLibrary('Occurrences::HappensLink') or\n isComposite and specializesFromLibrary('Actions::Action')\n )",
194
+ "Usage/nestedAction": "nestedAction = nestedUsage->selectByKind(ActionUsage)",
195
+ "Usage/nestedAllocation": "nestedAllocation = nestedUsage->selectByKind(AllocationUsage)",
196
+ "Usage/nestedAnalysisCase": "nestedAnalysisCase = nestedUsage->selectByKind(AnalysisCaseUsage)",
197
+ "Usage/nestedAttribute": "nestedAttribute = nestedUsage->selectByKind(AttributeUsage)",
198
+ "Usage/nestedCalculation": "nestedCalculation = nestedUsage->selectByKind(CalculationUsage)",
199
+ "Usage/nestedCase": "nestedCase = nestedUsage->selectByKind(CaseUsage)",
200
+ "Usage/nestedConcern": "nestedConcern = nestedUsage->selectByKind(ConcernUsage)",
201
+ "Usage/nestedConnection": "nestedConnection = nestedUsage->selectByKind(ConnectorAsUsage)",
202
+ "Usage/nestedConstraint": "nestedConstraint = nestedUsage->selectByKind(ConstraintUsage)",
203
+ "Usage/nestedFlow": "nestedFlow = nestedUsage->selectByKind(FlowUsage)",
204
+ "Usage/nestedInterface": "nestedInterface = nestedUsage->selectByKind(ReferenceUsage)",
205
+ "Usage/nestedItem": "nestedItem = nestedUsage->selectByKind(ItemUsage)",
206
+ "Usage/nestedMetadata": "nestedMetadata = nestedUsage->selectByKind(MetadataUsage)",
207
+ "Usage/nestedOccurrence": "nestedOccurrence = nestedUsage->selectByKind(OccurrenceUsage)",
208
+ "Usage/nestedPart": "nestedPart = nestedUsage->selectByKind(PartUsage)",
209
+ "Usage/nestedPort": "nestedPort = nestedUsage->selectByKind(PortUsage)",
210
+ "Usage/nestedReference": "nestedReference = nestedUsage->selectByKind(ReferenceUsage)",
211
+ "Usage/nestedRendering": "nestedRendering = nestedUsage->selectByKind(RenderingUsage)",
212
+ "Usage/nestedRequirement": "nestedRequirement = nestedUsage->selectByKind(RequirementUsage)",
213
+ "Usage/nestedState": "nestedState = nestedUsage->selectByKind(StateUsage)",
214
+ "Usage/nestedTransition": "nestedTransition = nestedUsage->selectByKind(TransitionUsage)",
215
+ "Usage/nestedUsage": "nestedUsage = ownedFeature->selectByKind(Usage)",
216
+ "Usage/nestedUseCase": "nestedUseCase = nestedUsage->selectByKind(UseCaseUsage)",
217
+ "Usage/nestedVerificationCase": "nestedVerificationCase = nestedUsage->selectByKind(VerificationCaseUsage)",
218
+ "Usage/nestedView": "nestedView = nestedUsage->selectByKind(ViewUsage)",
219
+ "Usage/nestedViewpoint": "nestedViewpoint = nestedUsage->selectByKind(ViewpointUsage)",
220
+ "Usage/usage": "usage = feature->selectByKind(Usage)",
221
+ "Usage/variant": "variant = variantMembership.ownedVariantUsage",
222
+ "Usage/variantMembership": "variantMembership = ownedMembership->selectByKind(VariantMembership)",
223
+ "UseCaseDefinition/includedUseCase": "includedUseCase = ownedUseCase->\n selectByKind(IncludeUseCaseUsage).\n useCaseIncluded",
224
+ "UseCaseUsage/includedUseCase": "includedUseCase = ownedUseCase->\n selectByKind(IncludeUseCaseUsage).\n useCaseIncluded",
225
+ "VerificationCaseDefinition/verifiedRequirement": "verifiedRequirement =\n if objectiveRequirement = null then OrderedSet{}\n else \n objectiveRequirement.featureMembership->\n selectByKind(RequirementVerificationMembership).\n verifiedRequirement->asOrderedSet()\n endif",
226
+ "VerificationCaseUsage/verifiedRequirement": "verifiedRequirement =\n if objectiveRequirement = null then OrderedSet{}\n else \n objectiveRequirement.featureMembership->\n selectByKind(RequirementVerificationMembership).\n verifiedRequirement->asOrderedSet()\n endif",
227
+ "ViewDefinition/satisfiedViewpoint": "satisfiedViewpoint = ownedRequirement->\n selectByKind(ViewpointUsage)->\n select(isComposite)",
228
+ "ViewDefinition/view": "view = usage->selectByKind(ViewUsage)",
229
+ "ViewDefinition/viewCondition": "viewCondition = ownedMembership->\n selectByKind(ElementFilterMembership).\n condition",
230
+ "ViewDefinition/viewRendering": "viewRendering =\n let renderings: OrderedSet(ViewRenderingMembership) =\n featureMembership->selectByKind(ViewRenderingMembership) in\n if renderings->isEmpty() then null\n else renderings->first().referencedRendering\n endif",
231
+ "ViewRenderingMembership/referencedRendering": "referencedRendering =\n let referencedFeature : Feature = \n ownedRendering.referencedFeatureTarget() in\n if referencedFeature = null then ownedRendering\n else if referencedFeature.oclIsKindOf(RenderingUsage) then\n refrencedFeature.oclAsType(RenderingUsage)\n else null\n endif endif",
232
+ "ViewUsage/exposedElement": "exposedElement = ownedImport->selectByKind(Expose).\n importedMemberships(Set{}).memberElement->\n select(elm | includeAsExposed(elm))->\n asOrderedSet()",
233
+ "ViewUsage/satisfiedViewpoint": "satisfiedViewpoint = ownedRequirement->\n selectByKind(ViewpointUsage)->\n select(isComposite)",
234
+ "ViewUsage/viewCondition": "viewCondition = ownedMembership->\n selectByKind(ElementFilterMembership).\n condition",
235
+ "ViewUsage/viewRendering": "viewRendering =\n let renderings: OrderedSet(ViewRenderingMembership) =\n featureMembership->selectByKind(ViewRenderingMembership) in\n if renderings->isEmpty() then null\n else renderings->first().referencedRendering\n endif",
236
+ "ViewpointDefinition/viewpointStakeholder": "viewpointStakeholder = framedConcern.featureMemberhsip->\n selectByKind(StakeholderMembership).\n ownedStakeholderParameter",
237
+ "ViewpointUsage/viewpointStakeholder": "viewpointStakeholder = framedConcern.featureMemberhsip->\n selectByKind(StakeholderMembership).\n ownedStakeholderParameter",
238
+ "WhileLoopActionUsage/untilArgument": "untilArgument =\n let parameter : Feature = inputParameter(3) in\n if parameter <> null and parameter.oclIsKindOf(Expression) then\n parameter.oclAsType(Expression)\n else\n null\n endif",
239
+ "WhileLoopActionUsage/whileArgument": "whileArgument =\n let parameter : Feature = inputParameter(1) in\n if parameter <> null and parameter.oclIsKindOf(Expression) then\n parameter.oclAsType(Expression)\n else\n null\n endif",
240
+ };
241
+ /** Operation bodies, keyed `Metaclass::operation`. */
242
+ export const SYSML_OPERATION_BODIES = {
243
+ "AcceptActionUsage::isTriggerAction": "owningType <> null and \nowningType.oclIsKindOf(TransitionUsage) and\nowningType.oclAsType(TransitionUsage).triggerAction->includes(self)",
244
+ "ActionUsage::argument": "if inputParameter(i) = null then null\nelse\n let featureValue : Sequence(FeatureValue) = inputParameter(i).\n ownedMembership->select(oclIsKindOf(FeatureValue)) in\n if featureValue->isEmpty() then null\n else featureValue->at(1).value\n endif\nendif",
245
+ "ActionUsage::inputParameter": "if inputParameters()->size() < i then null\nelse inputParameters()->at(i)\nendif",
246
+ "ActionUsage::inputParameters": "input->select(f | f.owner = self)",
247
+ "ActionUsage::isSubactionUsage": "isComposite and owningType <> null and\n(owningType.oclIsKindOf(ActionDefinition) or\n owningType.oclIsKindOf(ActionUsage)) and\n(owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies\n owningFeatureMembership.oclAsType(StateSubactionMembership).kind = \n StateSubactionKind::do)",
248
+ "ControlNode::multiplicityHasBounds": "mult <> null and\nif mult.oclIsKindOf(MultiplicityRange) then\n mult.oclAsType(MultiplicityRange).hasBounds(lower, upper)\nelse\n mult.allSuperTypes()->exists(\n oclisKindOf(MultiplicityRange) and\n oclAsType(MultiplicityRange).hasBounds(lower, upper)\nendif",
249
+ "Element::effectiveName": "declaredName",
250
+ "Element::effectiveShortName": "declaredShortName",
251
+ "Element::libraryNamespace": "if owningRelationship <> null then owningRelationship.libraryNamespace()\nelse null endif",
252
+ "Element::path": "if qualifiedName <> null then qualifiedName\nelse if owningRelationship <> null then\n owningRelationship.path() + '/' + \n owningRelationship.ownedRelatedElement->indexOf(self).toString()\n -- A position index shall be converted to a decimal string representation \n -- consisting of only decimal digits, with no sign, leading zeros or leading \n -- or trailing whitespace.\nelse ''\nendif endif",
253
+ "Expression::checkCondition": "let results: Sequence(Element) = evaluate(target) in\n result->size() = 1 and\n results->first().oclIsKindOf(LiteralBoolean) and \n results->first().oclAsType(LiteralBoolean).value",
254
+ "Expression::evaluate": "isModelLevelEvaluable\nlet resultExprs : Sequence(Expression) =\n ownedFeatureMembership->\n selectByKind(ResultExpressionMembership).\n ownedResultExpression in\nif resultExpr->isEmpty() then Sequence{}\nelse resultExprs->first().evaluate(target)\nendif",
255
+ "Expression::modelLevelEvaluable": "ownedSpecialization->forAll(isImplied) and \nownedFeature->forAll(f |\n (directionOf(f) = FeatureDirectionKind::_'in' or f = result) and\n f.ownedFeature->isEmpty() and f.valuation = null or\n f.owningFeatureMembership.oclIsKindOf(ResultExpressionMembership) and\n f.oclAsType(Expression).modelLevelEvaluable(visited)",
256
+ "Feature::allRedefinedFeatures": "ownedRedefinition.redefinedFeature->\n closure(ownedRedefinition.redefinedFeature)->\n asOrderedSet()->prepend(self)",
257
+ "Feature::asCartesianProduct": "featuringType->select(t | t.owner <> self)->\n union(featuringType->select(t | t.owner = self)->\n selectByKind(Feature).asCartesianProduct())->\n union(type)",
258
+ "Feature::canAccess": "let anythingType: Element =\n subsettingFeature.resolveGlobal('Base::Anything').memberElement in\nlet allFeaturingTypes : Sequence(Type) =\n featuringTypes->closure(t |\n if not t.oclIsKindOf(Feature) then Sequence{}\n else\n let featuringTypes : OrderedSet(Type) = t.oclAsType(Feature).featuringType in\n if featuringTypes->isEmpty() then Sequence{anythingType}\n else featuringTypes\n endif \n endif) in\nallFeaturingTypes->exists(t | feature.isFeaturedWithin(t))",
259
+ "Feature::directionFor": "type.directionOf(self)",
260
+ "Feature::isCartesianProduct": "type->size() = 1 and\nfeaturingType.size() = 1 and\n(featuringType.first().owner = self implies\n featuringType.first().oclIsKindOf(Feature) and\n featuringType.first().oclAsType(Feature).isCartesianProduct())",
261
+ "Feature::isFeaturedWithin": "if type = null then\n featuringType->forAll(f | f = resolveGlobal('Base::Anything').memberElement)\nelse\n featuringType->forAll(f | type.isCompatibleWith(f)) or\n isVariable and type.specializes(owningType) or\n chainingFeature->notEmpty() and chainingFeature->first().isVariable and\n type.specializes(chainingFeature->first().owningType)\nendif",
262
+ "Feature::isFeaturingType": "owningType <> null and\nif not isVariable then type = owningType\nelse if owningType = resolveGlobal('Occurrences::Occurrence').memberElement then\n type = resolveGlobal('Occurrences::Occurrence::snapshots').memberElement \nelse \n type.oclIsKindOf(Feature) and\n let feature : Feature = type.oclAsType(Feature) in\n feature.featuringType->includes(owningType) and\n feature.redefinesFromLibrary('Occurrences::Occurrence::snapshots')\nendif",
263
+ "Feature::isOwnedCrossFeature": "owningNamespace <> null and \nowningNamespace.oclIsKindOf(Feature) and \nowningNamespace.oclAsType(Feature).ownedCrossFeature() = self",
264
+ "Feature::namingFeature": "if ownedRedefinition->isEmpty() then\n null\nelse\n ownedRedefinition->at(1).redefinedFeature\nendif",
265
+ "Feature::ownedCrossFeature": "if not isEnd or owningType = null then null\nelse\n let ownedMemberFeatures: Sequence(Feature) =\n ownedMember->selectByKind(Feature)->\n reject(oclIsKindOf(Multiplicity) or \n oclIsKindOf(MetadataFeature) or\n oclIsKindOf(FeatureValue))->\n reject(owningMembership.oclIsKindOf(FeatureMembership)) in\n if ownedMemberFeatures.isEmpty() then null\n else ownedMemberFeatures->first()\n endif",
266
+ "Feature::redefines": "ownedRedefinition.redefinedFeature->includes(redefinedFeature)",
267
+ "Feature::redefinesFromLibrary": "let mem: Membership = resolveGlobal(libraryFeatureName) in\nmem <> null and mem.memberElement.oclIsKindOf(Feature) and\nredefines(mem.memberElement.oclAsType(Feature))",
268
+ "Feature::subsetsChain": "allSuperTypes()->selectAsKind(Feature)->\n exists(f | let n: Integer = f.chainingFeature->size() in\n n >= 2 and\n f.chainingFeature->at(n-1) = first and\n f.chainingFeature->at(n) = second)",
269
+ "Feature::typingFeatures": "if not isConjugated then\n let subsettedFeatures : OrderedSet(Feature) = \n subsetting->reject(s | s.oclIsKindOf(CrossSubsetting)).subsettedFeatures in \n if chainingFeature->isEmpty() or\n subsettedFeature->includes(chainingFeature->last())\n then subsettedFeatures\n else subsettedFeatures->append(chainingFeature->last())\n endif\nelse if conjugator.originalType.oclIsKindOf(Feature) then\n OrderedSet{conjugator.originalType.oclAsType(Feature)}\nelse OrderedSet{}\nendif endif",
270
+ "FeatureChainExpression::sourceTargetFeature": "let inputParameters : Feature = ownedFeatures->\n select(direction = _'in') in\nif inputParameters->isEmpty() or \n inputParameters->first().ownedFeature->isEmpty()\nthen null\nelse inputParameters->first().ownedFeature->first()\nendif",
271
+ "InstantiationExpression::instantiatedType": "let members : Sequence(Element) = ownedMembership->\n reject(oclIsKindOf(FeatureMembership)).memberElement in\nif members->isEmpty() or not members->first().oclIsKindOf(Type) then null\nelse typeMembers->first().oclAsType(Type)\nendif",
272
+ "Membership::isDistinguishableFrom": "not (memberElement.oclKindOf(other.memberElement.oclType()) or\n other.memberElement.oclKindOf(memberElement.oclType())) or\n(shortMemberName = null or\n (shortMemberName <> other.shortMemberName and\n shortMemberName <> other.memberName)) and\n(memberName = null or\n (memberName <> other.shortMemberName and\n memberName <> other.memberName)))",
273
+ "MetadataFeature::evaluateFeature": "let selectedFeatures : Sequence(Feature) = feature->\n select(closure(ownedRedefinition.redefinedFeature)->\n includes(baseFeature)) in\nif selectedFeatures->isEmpty() then null\nelse\n let selectedFeature : Feature = selectedFeatures->first() in\n let featureValues : FeatureValue = selectedFeature->\n closure(ownedRedefinition.redefinedFeature).ownedMember->\n selectAsKind(FeatureValue) in\n if featureValues->isEmpty() then null\n else featureValues->first().value.evaluate(self)\n endif",
274
+ "MetadataFeature::isSemantic": "specializesFromLibrary('Metaobjects::SemanticMetadata')",
275
+ "MetadataFeature::isSyntactic": "specializesFromLibrary('KerML::Element')",
276
+ "MultiplicityRange::hasBounds": "valueOf(upperBound) = upper and\nlet lowerValue: UnlimitedNatural = valueOf(lowerBound) in\n(lowerValue = lower or\n lowerValue = null and \n (lower = upper or \n lower = 0 and upper = *))",
277
+ "MultiplicityRange::valueOf": "if bound = null or not bound.isModelLevelEvaluable then \n null\nelse\n let boundEval: Sequence(Element) = bound.evaluate(owningType) in\n if boundEval->size() <> 1 then null else\n let valueEval: Element = boundEval->at(1) in\n if valueEval.oclIsKindOf(LiteralInfinity) then *\n else if valueEval.oclIsKindOf(LiteralInteger) then\n let value : Integer = \n valueEval.oclAsKindOf(LiteralInteger).value in\n if value >= 0 then value else null endif\n else null\n endif endif\n endif\nendif",
278
+ "Namespace::importedMemberships": "ownedImport.importedMemberships(excluded->including(self))",
279
+ "Namespace::membershipsOfVisibility": "ownedMembership->\n select(mem | visibility = null or mem.visibility = visibility)->\n union(ownedImport->\n select(imp | visibility = null or imp.visibility = visibility).\n importedMemberships(excluded->including(self)))",
280
+ "Namespace::namesOf": "let elementMemberships : Sequence(Membership) = \n memberships->select(memberElement = element) in\nmemberships.memberShortName->\n union(memberships.memberName)->\n asSet()",
281
+ "Namespace::resolve": "let qualification : String = qualificationOf(qualifiedName) in\nlet name : String = unqualifiedNameOf(qualifiedName) in\nif qualification = null then resolveLocal(name)\nelse if qualification = '$' then resolveGlobal(name)\nelse \n let namespaceMembership : Membership = resolve(qualification) in\n if namespaceMembership = null or \n not namespaceMembership.memberElement.oclIsKindOf(Namespace) \n then null\n else \n namespaceMembership.memberElement.oclAsType(Namespace).\n resolveVisible(name) \n endif\nendif endif",
282
+ "Namespace::resolveLocal": "if owningNamespace = null then resolveGlobal(name)\nelse\n let memberships : Membership = membership->\n select(memberShortName = name or memberName = name) in\n if memberships->notEmpty() then memberships->first()\n else owningNamespace.resolveLocal(name)\n endif\nendif",
283
+ "Namespace::resolveVisible": "let memberships : Sequence(Membership) =\n visibleMemberships(Set{}, false, false)->\n select(memberShortName = name or memberName = name) in\nif memberships->isEmpty() then null\nelse memberships->first()\nendif",
284
+ "Namespace::visibilityOf": "if importedMembership->includes(mem) then\n ownedImport->\n select(importedMemberships(Set{})->includes(mem)).\n first().visibility\nelse if memberships->includes(mem) then\n mem.visibility\nelse\n VisibilityKind::private\nendif",
285
+ "Namespace::visibleMemberships": "let visibleMemberships : OrderedSet(Membership) = \n if includeAll then membershipsOfVisibility(null, excluded)\n else membershipsOfVisibility(VisibilityKind::public, excluded)\n endif in\nif not isRecursive then visibleMemberships\nelse visibleMemberships->union(ownedMember->\n selectAsKind(Namespace).\n select(includeAll or owningMembership.visibility = VisibilityKind::public)->\n visibleMemberships(excluded->including(self), true, includeAll))\nendif",
286
+ "Package::includeAsMember": "let metadataFeatures: Sequence(AnnotatingElement) = \n element.ownedAnnotation.annotatingElement->\n selectByKind(MetadataFeature) in\n self.filterCondition->forAll(cond | \n metadataFeatures->exists(elem | \n cond.checkCondition(elem)))",
287
+ "ParameterMembership::parameterDirection": "FeatureDirectionKind::_'in'",
288
+ "StateUsage::isSubstateUsage": "isComposite and owningType <> null and\n(owningType.oclIsKindOf(StateDefinition) and\n owningType.oclAsType(StateDefinition).isParallel = isParallel or\n owningType.oclIsKindOf(StateUsage) and\n owningType.oclAsType(StateUsage).isParallel = isParallel) and\nnot owningFeatureMembership.oclIsKindOf(StateSubactionMembership)",
289
+ "TransitionUsage::sourceFeature": "let features : Sequence(Feature) = ownedMembership->\n reject(oclIsKindOf(FeatureMembership)).memberElement->\n selectByKind(Feature)->\n select(featureTarget.oclIsKindOf(ActionUsage)) in\nif features->isEmpty() then null\nelse features->first()\nendif",
290
+ "TransitionUsage::triggerPayloadParameter": "if triggerAction->isEmpty() then null\nelse triggerAction->first().payloadParameter\nendif",
291
+ "Type::allRedefinedFeaturesOf": "if not membership.memberElement.oclIsType(Feature) then Set{} \nelse membership.memberElement.oclAsType(Feature).allRedefinedFeatures()\nendif",
292
+ "Type::allSupertypes": "OrderedSet{self}->closure(supertypes(false))",
293
+ "Type::directionOf": "directionOfExcluding(f, Set{})",
294
+ "Type::directionOfExcluding": "let excludedSelf : Set(Type) = excluded->including(self) in \nif feature.owningType = self then feature.direction\nelse\n let directions : Sequence(FeatureDirectionKind) =\n supertypes(false)->excluding(excludedSelf).\n directionOfExcluding(feature, excludedSelf)->\n select(d | d <> null) in\n if directions->isEmpty() then null\n else\n let direction : FeatureDirectionKind = directions->first() in\n if not isConjugated then direction\n else if direction = FeatureDirectionKind::_'in' then FeatureDirectionKind::out\n else if direction = FeatureDirectionKind::out then FeatureDirectionKind::_'in'\n else direction\n endif endif endif endif\nendif",
295
+ "Type::inheritableMemberships": "let excludingSelf : Set(Type) = excludedType->including(self) in\nsupertypes(excludeImplied)->reject(t | excludingSelf->includes(t)).\n nonPrivateMemberships(excludedNamespaces, excludingSelf, excludeImplied)",
296
+ "Type::inheritedMemberships": "removeRedefinedFeatures(\n inheritableMemberships(excludedNamespaces, excludedTypes, excludeImplied))",
297
+ "Type::isCompatibleWith": "specializes(otherType)",
298
+ "Type::multiplicities": "if multiplicity <> null then OrderedSet{multiplicity}\nelse \n ownedSpecialization.general->closure(t |\n if t.multiplicity <> null then OrderedSet{}\n else ownedSpecialization.general\n )->select(multiplicity <> null).multiplicity->asOrderedSet()\nendif",
299
+ "Type::nonPrivateMemberships": "let publicMemberships : OrderedSet(Membership) = \n membershipsOfVisibility(VisibilityKind::public, excludedNamespaces) in\nlet protectedMemberships : OrderedSet(Membership) = \n membershipsOfVisibility(VisibilityKind::protected, excludedNamespaces) in\nlet inheritedMemberships : OrderedSet(Membership) =\n inheritedMemberships(excludedNamespaces, excludedTypes, excludeImplied) in\npublicMemberships->\n union(protectedMemberships)->\n union(inheritedMemberships)",
300
+ "Type::removeRedefinedFeatures": "let reducedMemberships : Sequence(Membership) =\n memberships->reject(mem1 |\n memberships->excluding(mem1)->\n exists(mem2 | allRedefinedFeaturesOf(mem2)->\n includes(mem1.memberElement))) in\nlet redefinedFeatures : Set(Feature) = \n ownedFeature.redefinition.redefinedFeature->asSet() in\nreducedMemberships->reject(mem | allRedefinedFeaturesOf(mem)->\n exists(feature | redefinedFeatures->includes(feature)))",
301
+ "Type::specializes": "if isConjugated then \n ownedConjugator.originalType.specializes(supertype)\nelse\n allSupertypes()->includes(supertype)\nendif",
302
+ "Type::specializesFromLibrary": "let mem : Membership = resolveGlobal(libraryTypeName) in\nmem <> null and mem.memberElement.oclIsKindOf(Type) and\nspecializes(mem.memberElement.oclAsType(Type))",
303
+ "Type::supertypes": "if isConjugated then Sequence{conjugator.originalType}\nelse if not excludeImplied then ownedSpecialization.general\nelse ownedSpecialization->reject(isImplied).general\nendif\nendif",
304
+ "Usage::referencedFeatureTarget": "if ownedReferenceSubsetting = null then null\nelse ownedReferenceSubsetting.referencedFeature.featureTarget\nendif",
305
+ "ViewUsage::includeAsExposed": "let metadataFeatures: Sequence(AnnotatingElement) = \n element.ownedAnnotation.annotatingElement->\n select(oclIsKindOf(MetadataFeature)) in\nself.membership->selectByKind(ElementFilterMembership).\n condition->forAll(cond | \n metadataFeatures->exists(elem | \n cond.checkCondition(elem)))",
306
+ };
307
+ /** The clause a derived feature is implemented against, if the metamodel states one. */
308
+ export function derivationOf(metaclass, feature) {
309
+ return SYSML_FEATURE_DERIVATIONS[`${metaclass}/${feature}`];
310
+ }
311
+ /** The clause an operation is implemented against, if the metamodel states one. */
312
+ export function operationBodyOf(metaclass, operation) {
313
+ return SYSML_OPERATION_BODIES[`${metaclass}::${operation}`];
314
+ }
315
+ //# sourceMappingURL=sysml-derivations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sysml-derivations.js","sourceRoot":"","sources":["../../../src/sysml-ir/generated/sysml-derivations.ts"],"names":[],"mappings":"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"}