@finos/legend-graph 8.0.1 → 9.0.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 (308) hide show
  1. package/lib/DSLMapping_Exports.d.ts +2 -1
  2. package/lib/DSLMapping_Exports.d.ts.map +1 -1
  3. package/lib/DSLMapping_Exports.js +2 -1
  4. package/lib/DSLMapping_Exports.js.map +1 -1
  5. package/lib/MetaModelConst.d.ts +0 -1
  6. package/lib/MetaModelConst.d.ts.map +1 -1
  7. package/lib/MetaModelConst.js +0 -1
  8. package/lib/MetaModelConst.js.map +1 -1
  9. package/lib/MetaModelUtils.d.ts +9 -4
  10. package/lib/MetaModelUtils.d.ts.map +1 -1
  11. package/lib/MetaModelUtils.js +23 -9
  12. package/lib/MetaModelUtils.js.map +1 -1
  13. package/lib/graphManager/AbstractPureGraphManager.d.ts +16 -3
  14. package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
  15. package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
  16. package/lib/graphManager/DSLMapping_PureGraphManagerPlugin_Extension.d.ts +6 -0
  17. package/lib/graphManager/DSLMapping_PureGraphManagerPlugin_Extension.d.ts.map +1 -1
  18. package/lib/graphManager/action/changeDetection/DSLMapping_ObserverHelper.d.ts +3 -1
  19. package/lib/graphManager/action/changeDetection/DSLMapping_ObserverHelper.d.ts.map +1 -1
  20. package/lib/graphManager/action/changeDetection/DSLMapping_ObserverHelper.js +25 -8
  21. package/lib/graphManager/action/changeDetection/DSLMapping_ObserverHelper.js.map +1 -1
  22. package/lib/graphManager/action/creation/DSLMapping_ModelCreatorHelper.d.ts.map +1 -1
  23. package/lib/graphManager/action/creation/DSLMapping_ModelCreatorHelper.js +2 -1
  24. package/lib/graphManager/action/creation/DSLMapping_ModelCreatorHelper.js.map +1 -1
  25. package/lib/graphManager/action/validation/DSLMapping_ValidationHelper.d.ts.map +1 -1
  26. package/lib/graphManager/action/validation/DSLMapping_ValidationHelper.js +2 -4
  27. package/lib/graphManager/action/validation/DSLMapping_ValidationHelper.js.map +1 -1
  28. package/lib/index.d.ts +5 -1
  29. package/lib/index.d.ts.map +1 -1
  30. package/lib/index.js +6 -2
  31. package/lib/index.js.map +1 -1
  32. package/lib/models/metamodels/pure/data/EmbeddedData.js +1 -1
  33. package/lib/models/metamodels/pure/data/EmbeddedData.js.map +1 -1
  34. package/lib/models/metamodels/pure/executionPlan/nodes/ExecutionNode.d.ts +1 -0
  35. package/lib/models/metamodels/pure/executionPlan/nodes/ExecutionNode.d.ts.map +1 -1
  36. package/lib/models/metamodels/pure/executionPlan/nodes/ExecutionNode.js +2 -0
  37. package/lib/models/metamodels/pure/executionPlan/nodes/ExecutionNode.js.map +1 -1
  38. package/lib/models/metamodels/pure/packageableElements/PackageableElementReference.d.ts +1 -2
  39. package/lib/models/metamodels/pure/packageableElements/PackageableElementReference.d.ts.map +1 -1
  40. package/lib/models/metamodels/pure/packageableElements/PackageableElementReference.js +1 -4
  41. package/lib/models/metamodels/pure/packageableElements/PackageableElementReference.js.map +1 -1
  42. package/lib/models/metamodels/pure/packageableElements/connection/Connection.js +1 -1
  43. package/lib/models/metamodels/pure/packageableElements/connection/Connection.js.map +1 -1
  44. package/lib/models/metamodels/pure/packageableElements/domain/Class.d.ts.map +1 -1
  45. package/lib/models/metamodels/pure/packageableElements/domain/Class.js +1 -1
  46. package/lib/models/metamodels/pure/packageableElements/domain/Class.js.map +1 -1
  47. package/lib/models/metamodels/pure/packageableElements/domain/ConcreteFunctionDefinition.js +1 -1
  48. package/lib/models/metamodels/pure/packageableElements/domain/ConcreteFunctionDefinition.js.map +1 -1
  49. package/lib/models/metamodels/pure/packageableElements/domain/DerivedProperty.js +1 -1
  50. package/lib/models/metamodels/pure/packageableElements/domain/DerivedProperty.js.map +1 -1
  51. package/lib/models/metamodels/pure/packageableElements/domain/Property.js +1 -1
  52. package/lib/models/metamodels/pure/packageableElements/domain/Property.js.map +1 -1
  53. package/lib/models/metamodels/pure/packageableElements/domain/PropertyReference.js +1 -1
  54. package/lib/models/metamodels/pure/packageableElements/domain/PropertyReference.js.map +1 -1
  55. package/lib/models/metamodels/pure/packageableElements/domain/StereotypeReference.js +1 -1
  56. package/lib/models/metamodels/pure/packageableElements/domain/StereotypeReference.js.map +1 -1
  57. package/lib/models/metamodels/pure/packageableElements/domain/TagReference.js +1 -1
  58. package/lib/models/metamodels/pure/packageableElements/domain/TagReference.js.map +1 -1
  59. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.js +1 -1
  60. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.js.map +1 -1
  61. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_BindingTransformer.js +1 -1
  62. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_BindingTransformer.js.map +1 -1
  63. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.d.ts.map +1 -1
  64. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.js +2 -2
  65. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.js.map +1 -1
  66. package/lib/models/metamodels/pure/packageableElements/fileGeneration/FileGenerationSpecification.js +1 -1
  67. package/lib/models/metamodels/pure/packageableElements/fileGeneration/FileGenerationSpecification.js.map +1 -1
  68. package/lib/models/metamodels/pure/packageableElements/generationSpecification/GenerationSpecification.js +2 -2
  69. package/lib/models/metamodels/pure/packageableElements/generationSpecification/GenerationSpecification.js.map +1 -1
  70. package/lib/models/metamodels/pure/packageableElements/mapping/AssociationImplementation.js +1 -1
  71. package/lib/models/metamodels/pure/packageableElements/mapping/AssociationImplementation.js.map +1 -1
  72. package/lib/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.d.ts +3 -2
  73. package/lib/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.d.ts.map +1 -1
  74. package/lib/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.js.map +1 -1
  75. package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.js +1 -1
  76. package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.js.map +1 -1
  77. package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.d.ts +32 -0
  78. package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.d.ts.map +1 -0
  79. package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.js +41 -0
  80. package/lib/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.js.map +1 -0
  81. package/lib/models/metamodels/pure/packageableElements/mapping/LocalMappingPropertyInfo.js +1 -1
  82. package/lib/models/metamodels/pure/packageableElements/mapping/LocalMappingPropertyInfo.js.map +1 -1
  83. package/lib/models/metamodels/pure/packageableElements/mapping/MappingInclude.js +5 -5
  84. package/lib/models/metamodels/pure/packageableElements/mapping/MappingInclude.js.map +1 -1
  85. package/lib/models/metamodels/pure/packageableElements/mapping/PropertyMapping.d.ts +1 -0
  86. package/lib/models/metamodels/pure/packageableElements/mapping/PropertyMapping.d.ts.map +1 -1
  87. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.js +1 -1
  88. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.js.map +1 -1
  89. package/lib/models/metamodels/pure/packageableElements/runtime/Runtime.js +3 -3
  90. package/lib/models/metamodels/pure/packageableElements/runtime/Runtime.js.map +1 -1
  91. package/lib/models/metamodels/pure/packageableElements/section/Section.js +2 -2
  92. package/lib/models/metamodels/pure/packageableElements/section/Section.js.map +1 -1
  93. package/lib/models/metamodels/pure/packageableElements/service/ServiceExecution.js +2 -2
  94. package/lib/models/metamodels/pure/packageableElements/service/ServiceExecution.js.map +1 -1
  95. package/lib/models/metamodels/pure/packageableElements/store/flatData/connection/FlatDataConnection.js +1 -1
  96. package/lib/models/metamodels/pure/packageableElements/store/flatData/connection/FlatDataConnection.js.map +1 -1
  97. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.d.ts.map +1 -1
  98. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.js +1 -0
  99. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.js.map +1 -1
  100. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInputData.js +1 -1
  101. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInputData.js.map +1 -1
  102. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInstanceSetImplementation.d.ts.map +1 -1
  103. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInstanceSetImplementation.js +2 -1
  104. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInstanceSetImplementation.js.map +1 -1
  105. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.d.ts +2 -2
  106. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.d.ts.map +1 -1
  107. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.js +3 -3
  108. package/lib/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.js.map +1 -1
  109. package/lib/models/metamodels/pure/packageableElements/store/flatData/model/FlatData.d.ts.map +1 -1
  110. package/lib/models/metamodels/pure/packageableElements/store/flatData/model/FlatData.js +1 -1
  111. package/lib/models/metamodels/pure/packageableElements/store/flatData/model/FlatData.js.map +1 -1
  112. package/lib/models/metamodels/pure/packageableElements/store/flatData/model/FlatDataSectionReference.js +1 -1
  113. package/lib/models/metamodels/pure/packageableElements/store/flatData/model/FlatDataSectionReference.js.map +1 -1
  114. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/connection/JsonModelConnection.js +1 -1
  115. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/connection/JsonModelConnection.js.map +1 -1
  116. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/connection/ModelChainConnection.js +1 -1
  117. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/connection/ModelChainConnection.js.map +1 -1
  118. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/connection/XmlModelConnection.js +1 -1
  119. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/connection/XmlModelConnection.js.map +1 -1
  120. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/ObjectInputData.js +1 -1
  121. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/ObjectInputData.js.map +1 -1
  122. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.d.ts.map +1 -1
  123. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.js +1 -0
  124. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.js.map +1 -1
  125. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.d.ts +2 -2
  126. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.d.ts.map +1 -1
  127. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.js +3 -3
  128. package/lib/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.js.map +1 -1
  129. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.d.ts +7 -0
  130. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.d.ts.map +1 -1
  131. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.js +8 -3
  132. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.js.map +1 -1
  133. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.d.ts.map +1 -1
  134. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.js +2 -1
  135. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.js.map +1 -1
  136. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/FilterMapping.js +1 -1
  137. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/FilterMapping.js.map +1 -1
  138. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInputData.js +1 -1
  139. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInputData.js.map +1 -1
  140. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInstanceSetImplementation.d.ts.map +1 -1
  141. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInstanceSetImplementation.js +1 -0
  142. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInstanceSetImplementation.js.map +1 -1
  143. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.d.ts +2 -2
  144. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.d.ts.map +1 -1
  145. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js +3 -3
  146. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js.map +1 -1
  147. package/lib/models/metamodels/pure/packageableElements/store/relational/model/Database.d.ts.map +1 -1
  148. package/lib/models/metamodels/pure/packageableElements/store/relational/model/Database.js +1 -1
  149. package/lib/models/metamodels/pure/packageableElements/store/relational/model/Database.js.map +1 -1
  150. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalOperationElement.js +1 -1
  151. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalOperationElement.js.map +1 -1
  152. package/lib/models/metamodels/pure/packageableElements/store/relational/model/TableReference.js +2 -2
  153. package/lib/models/metamodels/pure/packageableElements/store/relational/model/TableReference.js.map +1 -1
  154. package/lib/models/metamodels/pure/packageableElements/store/relational/model/ViewReference.js +2 -2
  155. package/lib/models/metamodels/pure/packageableElements/store/relational/model/ViewReference.js.map +1 -1
  156. package/lib/models/metamodels/pure/rawValueSpecification/RawPrimitiveInstanceValue.js +1 -1
  157. package/lib/models/metamodels/pure/rawValueSpecification/RawPrimitiveInstanceValue.js.map +1 -1
  158. package/lib/models/metamodels/pure/rawValueSpecification/RawVariableExpression.js +1 -1
  159. package/lib/models/metamodels/pure/rawValueSpecification/RawVariableExpression.js.map +1 -1
  160. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts +0 -1
  161. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts.map +1 -1
  162. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js +6 -10
  163. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js.map +1 -1
  164. package/lib/models/protocols/pure/DSLMapping_PureProtocolProcessorPlugin_Extension.d.ts +12 -0
  165. package/lib/models/protocols/pure/DSLMapping_PureProtocolProcessorPlugin_Extension.d.ts.map +1 -1
  166. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts +0 -5
  167. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts.map +1 -1
  168. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.js.map +1 -1
  169. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts +9 -14
  170. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  171. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js +119 -150
  172. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js.map +1 -1
  173. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts.map +1 -1
  174. package/lib/models/protocols/pure/v1/engine/V1_Engine.js +12 -11
  175. package/lib/models/protocols/pure/v1/engine/V1_Engine.js.map +1 -1
  176. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
  177. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js +5 -7
  178. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
  179. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.d.ts +1 -0
  180. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.d.ts.map +1 -1
  181. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.d.ts +7 -0
  182. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.d.ts.map +1 -1
  183. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js +7 -2
  184. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js.map +1 -1
  185. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.d.ts.map +1 -1
  186. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +8 -7
  187. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  188. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.d.ts +1 -3
  189. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.d.ts.map +1 -1
  190. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.js +0 -2
  191. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.js.map +1 -1
  192. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.d.ts.map +1 -1
  193. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.js +2 -2
  194. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.js.map +1 -1
  195. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.d.ts.map +1 -1
  196. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.js +5 -4
  197. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.js.map +1 -1
  198. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_GenerationSpecificationTransformer.d.ts.map +1 -1
  199. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_GenerationSpecificationTransformer.js +3 -2
  200. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_GenerationSpecificationTransformer.js.map +1 -1
  201. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts.map +1 -1
  202. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js +61 -79
  203. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js.map +1 -1
  204. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RawValueSpecificationTransformer.d.ts.map +1 -1
  205. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RawValueSpecificationTransformer.js +3 -3
  206. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RawValueSpecificationTransformer.js.map +1 -1
  207. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RuntimeTransformer.d.ts.map +1 -1
  208. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RuntimeTransformer.js +2 -2
  209. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RuntimeTransformer.js.map +1 -1
  210. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_SectionIndexTransformer.d.ts.map +1 -1
  211. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_SectionIndexTransformer.js +4 -4
  212. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_SectionIndexTransformer.js.map +1 -1
  213. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.d.ts.map +1 -1
  214. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js +3 -3
  215. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js.map +1 -1
  216. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js +2 -2
  217. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js.map +1 -1
  218. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts +2 -1
  219. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts.map +1 -1
  220. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js +18 -4
  221. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js.map +1 -1
  222. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js +2 -2
  223. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js.map +1 -1
  224. package/lib/package.json +2 -2
  225. package/package.json +5 -5
  226. package/src/DSLMapping_Exports.ts +2 -4
  227. package/src/MetaModelConst.ts +0 -1
  228. package/src/MetaModelUtils.ts +28 -8
  229. package/src/graphManager/AbstractPureGraphManager.ts +24 -14
  230. package/src/graphManager/DSLMapping_PureGraphManagerPlugin_Extension.ts +14 -0
  231. package/src/graphManager/action/changeDetection/DSLMapping_ObserverHelper.ts +47 -13
  232. package/src/graphManager/action/creation/DSLMapping_ModelCreatorHelper.ts +2 -1
  233. package/src/graphManager/action/validation/DSLMapping_ValidationHelper.ts +2 -4
  234. package/src/index.ts +6 -5
  235. package/src/models/metamodels/pure/data/EmbeddedData.ts +1 -1
  236. package/src/models/metamodels/pure/executionPlan/nodes/ExecutionNode.ts +3 -0
  237. package/src/models/metamodels/pure/packageableElements/PackageableElementReference.ts +1 -5
  238. package/src/models/metamodels/pure/packageableElements/connection/Connection.ts +1 -1
  239. package/src/models/metamodels/pure/packageableElements/domain/Class.ts +3 -1
  240. package/src/models/metamodels/pure/packageableElements/domain/ConcreteFunctionDefinition.ts +1 -1
  241. package/src/models/metamodels/pure/packageableElements/domain/DerivedProperty.ts +1 -1
  242. package/src/models/metamodels/pure/packageableElements/domain/Property.ts +1 -1
  243. package/src/models/metamodels/pure/packageableElements/domain/PropertyReference.ts +1 -1
  244. package/src/models/metamodels/pure/packageableElements/domain/StereotypeReference.ts +1 -1
  245. package/src/models/metamodels/pure/packageableElements/domain/TagReference.ts +1 -1
  246. package/src/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.ts +1 -1
  247. package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_BindingTransformer.ts +1 -1
  248. package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.ts +6 -2
  249. package/src/models/metamodels/pure/packageableElements/fileGeneration/FileGenerationSpecification.ts +1 -1
  250. package/src/models/metamodels/pure/packageableElements/generationSpecification/GenerationSpecification.ts +2 -2
  251. package/src/models/metamodels/pure/packageableElements/mapping/AssociationImplementation.ts +1 -1
  252. package/src/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.ts +4 -2
  253. package/src/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.ts +1 -1
  254. package/src/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.ts +61 -0
  255. package/src/models/metamodels/pure/packageableElements/mapping/LocalMappingPropertyInfo.ts +1 -1
  256. package/src/models/metamodels/pure/packageableElements/mapping/MappingInclude.ts +5 -5
  257. package/src/models/metamodels/pure/packageableElements/mapping/PropertyMapping.ts +1 -1
  258. package/src/models/metamodels/pure/packageableElements/mapping/SetImplementation.ts +1 -1
  259. package/src/models/metamodels/pure/packageableElements/runtime/Runtime.ts +3 -3
  260. package/src/models/metamodels/pure/packageableElements/section/Section.ts +2 -2
  261. package/src/models/metamodels/pure/packageableElements/service/ServiceExecution.ts +2 -2
  262. package/src/models/metamodels/pure/packageableElements/store/flatData/connection/FlatDataConnection.ts +1 -1
  263. package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.ts +1 -0
  264. package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInputData.ts +1 -1
  265. package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInstanceSetImplementation.ts +2 -1
  266. package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.ts +3 -4
  267. package/src/models/metamodels/pure/packageableElements/store/flatData/model/FlatData.ts +3 -1
  268. package/src/models/metamodels/pure/packageableElements/store/flatData/model/FlatDataSectionReference.ts +1 -1
  269. package/src/models/metamodels/pure/packageableElements/store/modelToModel/connection/JsonModelConnection.ts +1 -1
  270. package/src/models/metamodels/pure/packageableElements/store/modelToModel/connection/ModelChainConnection.ts +1 -1
  271. package/src/models/metamodels/pure/packageableElements/store/modelToModel/connection/XmlModelConnection.ts +1 -1
  272. package/src/models/metamodels/pure/packageableElements/store/modelToModel/mapping/ObjectInputData.ts +1 -1
  273. package/src/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.ts +1 -0
  274. package/src/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.ts +3 -4
  275. package/src/models/metamodels/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.ts +8 -3
  276. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.ts +2 -1
  277. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/FilterMapping.ts +1 -1
  278. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInputData.ts +1 -1
  279. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInstanceSetImplementation.ts +1 -0
  280. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.ts +3 -4
  281. package/src/models/metamodels/pure/packageableElements/store/relational/model/Database.ts +3 -1
  282. package/src/models/metamodels/pure/packageableElements/store/relational/model/RelationalOperationElement.ts +1 -1
  283. package/src/models/metamodels/pure/packageableElements/store/relational/model/TableReference.ts +2 -2
  284. package/src/models/metamodels/pure/packageableElements/store/relational/model/ViewReference.ts +2 -2
  285. package/src/models/metamodels/pure/rawValueSpecification/RawPrimitiveInstanceValue.ts +1 -1
  286. package/src/models/metamodels/pure/rawValueSpecification/RawVariableExpression.ts +1 -1
  287. package/src/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.ts +8 -14
  288. package/src/models/protocols/pure/DSLMapping_PureProtocolProcessorPlugin_Extension.ts +26 -0
  289. package/src/models/protocols/pure/PureProtocolProcessorPlugin.ts +0 -6
  290. package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +151 -194
  291. package/src/models/protocols/pure/v1/engine/V1_Engine.ts +10 -12
  292. package/src/models/protocols/pure/v1/engine/V1_EngineServerClient.ts +5 -6
  293. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.ts +1 -1
  294. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.ts +7 -2
  295. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +10 -12
  296. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.ts +1 -14
  297. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.ts +4 -5
  298. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.ts +4 -6
  299. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_GenerationSpecificationTransformer.ts +2 -4
  300. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.ts +80 -128
  301. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_RawValueSpecificationTransformer.ts +3 -8
  302. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_RuntimeTransformer.ts +1 -2
  303. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_SectionIndexTransformer.ts +7 -10
  304. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.ts +3 -6
  305. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.ts +2 -2
  306. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.ts +29 -3
  307. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.ts +2 -2
  308. package/tsconfig.json +1 -0
@@ -31,7 +31,6 @@ import {
31
31
  import {
32
32
  V1_transformElementReferencePointer,
33
33
  V1_initPackageableElement,
34
- V1_transformElementReference,
35
34
  } from './V1_CoreTransformerHelper.js';
36
35
 
37
36
  // ----------------------------------------------- GENERATION SPECIFICATION ----------------------------------------
@@ -40,9 +39,8 @@ const transformGenerationTreeNode = (
40
39
  element: GenerationTreeNode,
41
40
  ): V1_GenerationTreeNode => {
42
41
  const treeNode = new V1_GenerationTreeNode();
43
- treeNode.generationElement = V1_transformElementReference(
44
- element.generationElement,
45
- );
42
+ treeNode.generationElement =
43
+ element.generationElement.valueForSerialization ?? '';
46
44
  treeNode.id = element.id;
47
45
  return treeNode;
48
46
  };
@@ -58,7 +58,6 @@ import type { InlineEmbeddedRelationalInstanceSetImplementation } from '../../..
58
58
  import type { OtherwiseEmbeddedRelationalInstanceSetImplementation } from '../../../../../../metamodels/pure/packageableElements/store/relational/mapping/OtherwiseEmbeddedRelationalInstanceSetImplementation.js';
59
59
  import type { InferableMappingElementIdValue } from '../../../../../../metamodels/pure/packageableElements/mapping/InferableMappingElementId.js';
60
60
  import type { MappingInclude } from '../../../../../../metamodels/pure/packageableElements/mapping/MappingInclude.js';
61
- import type { InferableMappingElementRoot } from '../../../../../../metamodels/pure/packageableElements/mapping/InferableMappingElementRoot.js';
62
61
  import type { MappingTest } from '../../../../../../metamodels/pure/packageableElements/mapping/MappingTest.js';
63
62
  import type { AssociationImplementation } from '../../../../../../metamodels/pure/packageableElements/mapping/AssociationImplementation.js';
64
63
  import { RelationalAssociationImplementation } from '../../../../../../metamodels/pure/packageableElements/mapping/RelationalAssociationImplementation.js';
@@ -72,10 +71,8 @@ import type { GroupByFunctionSpecification } from '../../../../../../metamodels/
72
71
  import type { V1_RawLambda } from '../../../model/rawValueSpecification/V1_RawLambda.js';
73
72
  import {
74
73
  V1_initPackageableElement,
75
- V1_transformElementReference,
76
74
  V1_transformElementReferencePointer,
77
75
  V1_transformMultiplicity,
78
- V1_transformOptionalElementReference,
79
76
  } from './V1_CoreTransformerHelper.js';
80
77
  import { V1_Mapping } from '../../../model/packageableElements/mapping/V1_Mapping.js';
81
78
  import {
@@ -164,7 +161,7 @@ export const V1_transformPropertyReference = (
164
161
  options?.isTransformingEmbeddedPropertyMapping ||
165
162
  options?.isTransformingLocalPropertyMapping
166
163
  ? undefined
167
- : V1_transformElementReference(element.ownerReference);
164
+ : element.ownerReference.valueForSerialization ?? '';
168
165
  property.property = element.value.name;
169
166
  return property;
170
167
  };
@@ -222,9 +219,8 @@ const transformEnumerationMapping = (
222
219
  enumerationMapping.enumValueMappings = element.enumValueMappings
223
220
  .filter((e) => !isStubbed_EnumValueMapping(e))
224
221
  .map(transformEnumValueMapping);
225
- enumerationMapping.enumeration = V1_transformElementReference(
226
- element.enumeration,
227
- );
222
+ enumerationMapping.enumeration =
223
+ element.enumeration.valueForSerialization ?? '';
228
224
  enumerationMapping.id = mappingElementIdSerializer(element.id);
229
225
  return enumerationMapping;
230
226
  };
@@ -250,7 +246,7 @@ const transformObjectInputData = (
250
246
  const inputData = new V1_ObjectInputData();
251
247
  inputData.data = element.data;
252
248
  inputData.inputType = V1_getObjectInputType(element.inputType);
253
- inputData.sourceClass = V1_transformElementReference(element.sourceClass);
249
+ inputData.sourceClass = element.sourceClass.valueForSerialization ?? '';
254
250
  return inputData;
255
251
  };
256
252
 
@@ -272,7 +268,7 @@ const transformRelationalInputData = (
272
268
  const inputData = new V1_RelationalInputData();
273
269
  inputData.data = element.data;
274
270
  inputData.inputType = element.inputType;
275
- inputData.database = V1_transformElementReference(element.database);
271
+ inputData.database = element.database.valueForSerialization ?? '';
276
272
  return inputData;
277
273
  };
278
274
 
@@ -344,21 +340,6 @@ const transformMappingInclude = (
344
340
 
345
341
  // Class Mapping
346
342
 
347
- const transformOptionalPropertyMappingTransformer = (
348
- value: EnumerationMapping | undefined,
349
- ): string | undefined => value?.id.value;
350
-
351
- const transformMappingElementRoot = (
352
- value: InferableMappingElementRoot,
353
- ): boolean | undefined => value.valueForSerialization;
354
-
355
- const transformPropertyMappingSource = (value: SetImplementation): string =>
356
- value.id.value;
357
-
358
- const transformPropertyMappingTarget = (
359
- value: SetImplementation | undefined,
360
- ): string | undefined => value?.id.value;
361
-
362
343
  const transformClassMappingPropertyMappings = (
363
344
  values: PropertyMapping[],
364
345
  isTransformingEmbeddedPropertyMapping: boolean,
@@ -366,10 +347,7 @@ const transformClassMappingPropertyMappings = (
366
347
  isTransformingSourceId: boolean,
367
348
  ): V1_PropertyMapping[] =>
368
349
  values
369
- // TODO: we should also handle of other property mapping types
370
- // using some form of extension mechanism
371
350
  .filter((value) => {
372
- /* @MARKER: NEW CLASS MAPPING TYPE SUPPORT --- consider adding class mapping type handler here whenever support for a new one is added to the app */
373
351
  if (value instanceof PurePropertyMapping) {
374
352
  return !isStubbed_RawLambda(value.transform);
375
353
  } else if (value instanceof FlatDataPropertyMapping) {
@@ -379,7 +357,17 @@ const transformClassMappingPropertyMappings = (
379
357
  value.relationalOperation,
380
358
  );
381
359
  }
382
- return true;
360
+ const checkerResult = context.plugins
361
+ .flatMap(
362
+ (plugin) =>
363
+ (
364
+ plugin as DSLMapping_PureProtocolProcessorPlugin_Extension
365
+ ).getExtraPropertyMappingTransformationExcludabilityCheckers?.() ??
366
+ [],
367
+ )
368
+ .map((checker) => checker(value))
369
+ .filter(isNonNullable);
370
+ return !checkerResult.length || checkerResult.some(Boolean);
383
371
  })
384
372
  .map((value) =>
385
373
  transformProperyMapping(
@@ -396,16 +384,12 @@ const transformSimpleFlatDataPropertyMapping = (
396
384
  ): V1_FlatDataPropertyMapping => {
397
385
  const flatDataPropertyMapping = new V1_FlatDataPropertyMapping();
398
386
  flatDataPropertyMapping.enumMappingId =
399
- transformOptionalPropertyMappingTransformer(element.transformer);
387
+ element.transformer.valueForSerialization;
400
388
  flatDataPropertyMapping.property = V1_transformPropertyReference(
401
389
  element.property,
402
390
  );
403
- flatDataPropertyMapping.source = transformPropertyMappingSource(
404
- element.sourceSetImplementation,
405
- );
406
- flatDataPropertyMapping.target = transformPropertyMappingTarget(
407
- element.targetSetImplementation,
408
- );
391
+ flatDataPropertyMapping.source = element.sourceSetImplementation.id.value;
392
+ flatDataPropertyMapping.target = element.targetSetImplementation?.id.value;
409
393
  if (!isStubbed_RawLambda(element.transform)) {
410
394
  flatDataPropertyMapping.transform =
411
395
  element.transform.accept_RawValueSpecificationVisitor(
@@ -424,7 +408,7 @@ const transformEmbeddedFlatDataPropertyMapping = (
424
408
  if (id) {
425
409
  embedded.id = id;
426
410
  }
427
- embedded.class = V1_transformElementReference(element.class);
411
+ embedded.class = element.class.valueForSerialization ?? '';
428
412
  embedded.property = V1_transformPropertyReference(element.property); // TODO: we might ned to turn 'isTransformingEmbeddedPropertyMapping' on in the future once we start working on the gramar roundtrip for flat-data
429
413
  embedded.propertyMappings = transformClassMappingPropertyMappings(
430
414
  element.propertyMappings,
@@ -433,12 +417,8 @@ const transformEmbeddedFlatDataPropertyMapping = (
433
417
  false,
434
418
  );
435
419
  embedded.root = false;
436
- embedded.source = transformPropertyMappingSource(
437
- element.sourceSetImplementation,
438
- );
439
- embedded.target = transformPropertyMappingTarget(
440
- element.targetSetImplementation,
441
- );
420
+ embedded.source = element.sourceSetImplementation.id.value;
421
+ embedded.target = element.targetSetImplementation?.id.value;
442
422
  return embedded;
443
423
  };
444
424
 
@@ -447,8 +427,7 @@ const transformPurePropertyMapping = (
447
427
  context: V1_GraphTransformerContext,
448
428
  ): V1_PurePropertyMapping => {
449
429
  const purePropertyMapping = new V1_PurePropertyMapping();
450
- purePropertyMapping.enumMappingId =
451
- transformOptionalPropertyMappingTransformer(element.transformer);
430
+ purePropertyMapping.enumMappingId = element.transformer.valueForSerialization;
452
431
  purePropertyMapping.property = V1_transformPropertyReference(
453
432
  element.property,
454
433
  {
@@ -464,9 +443,7 @@ const transformPurePropertyMapping = (
464
443
  * @discrepancy grammar-roundtrip
465
444
  */
466
445
  purePropertyMapping.source = '';
467
- purePropertyMapping.target = transformPropertyMappingTarget(
468
- element.targetSetImplementation,
469
- );
446
+ purePropertyMapping.target = element.targetSetImplementation?.id.value;
470
447
  if (!isStubbed_RawLambda(element.transform)) {
471
448
  purePropertyMapping.transform =
472
449
  element.transform.accept_RawValueSpecificationVisitor(
@@ -489,9 +466,7 @@ const transformRelationalPropertyMapping = (
489
466
  isTransformingSourceId: boolean,
490
467
  ): V1_RelationalPropertyMapping => {
491
468
  const propertyMapping = new V1_RelationalPropertyMapping();
492
- propertyMapping.enumMappingId = transformOptionalPropertyMappingTransformer(
493
- element.transformer,
494
- );
469
+ propertyMapping.enumMappingId = element.transformer.valueForSerialization;
495
470
  propertyMapping.property = V1_transformPropertyReference(element.property, {
496
471
  isTransformingEmbeddedPropertyMapping:
497
472
  isTransformingEmbeddedPropertyMapping,
@@ -510,7 +485,7 @@ const transformRelationalPropertyMapping = (
510
485
  ) as V1_RawRelationalOperationElement;
511
486
  // NOTE: isTransformingSourceId is needed for the roundtrip of association relational property mapping
512
487
  propertyMapping.source = isTransformingSourceId
513
- ? transformPropertyMappingSource(element.sourceSetImplementation)
488
+ ? element.sourceSetImplementation.id.value
514
489
  : /**
515
490
  * Omit this information during protocol transformation as it can be
516
491
  * interpreted while building the graph; and will help grammar-roundtrip
@@ -520,9 +495,7 @@ const transformRelationalPropertyMapping = (
520
495
  * @discrepancy grammar-roundtrip
521
496
  */
522
497
  undefined;
523
- propertyMapping.target = transformPropertyMappingTarget(
524
- element.targetSetImplementation,
525
- );
498
+ propertyMapping.target = element.targetSetImplementation?.id.value;
526
499
  if (element.bindingTransformer?.binding) {
527
500
  const bindingTransformer = new V1_BindingTransformer();
528
501
  bindingTransformer.binding = guaranteeNonEmptyString(
@@ -557,9 +530,7 @@ const transformEmbeddedRelationalPropertyMapping = (
557
530
  * @discrepancy grammar-roundtrip
558
531
  */
559
532
  embedded.source = undefined;
560
- embedded.target = transformPropertyMappingTarget(
561
- element.targetSetImplementation,
562
- );
533
+ embedded.target = element.targetSetImplementation?.id.value;
563
534
  const classMapping = new V1_RelationalClassMapping();
564
535
  classMapping.primaryKey = element.primaryKey.map((pk) =>
565
536
  V1_transformRelationalOperationElement(pk, context),
@@ -570,10 +541,7 @@ const transformEmbeddedRelationalPropertyMapping = (
570
541
  context,
571
542
  false,
572
543
  );
573
- const root = transformMappingElementRoot(element.root);
574
- if (root !== undefined) {
575
- classMapping.root = root;
576
- }
544
+ classMapping.root = element.root.valueForSerialization;
577
545
  /**
578
546
  * Omit this information during protocol transformation as it can be
579
547
  * interpreted while building the graph; and will help grammar-roundtrip
@@ -610,9 +578,7 @@ const transformInlineEmbeddedRelationalPropertyMapping = (
610
578
  * @discrepancy grammar-roundtrip
611
579
  */
612
580
  embedded.source = undefined;
613
- embedded.target = transformPropertyMappingTarget(
614
- element.targetSetImplementation,
615
- );
581
+ embedded.target = element.targetSetImplementation?.id.value;
616
582
  embedded.setImplementationId = element.inlineSetImplementation.id.value;
617
583
  if (element.localMappingProperty) {
618
584
  embedded.localMappingProperty = transformLocalPropertyInfo(
@@ -641,9 +607,7 @@ const transformOtherwiseEmbeddedRelationalPropertyMapping = (
641
607
  * @discrepancy grammar-roundtrip
642
608
  */
643
609
  embedded.source = undefined;
644
- embedded.target = transformPropertyMappingTarget(
645
- element.targetSetImplementation,
646
- );
610
+ embedded.target = element.targetSetImplementation?.id.value;
647
611
  const classMapping = new V1_RelationalClassMapping();
648
612
  classMapping.primaryKey = element.primaryKey.map((pk) =>
649
613
  V1_transformRelationalOperationElement(pk, context),
@@ -654,10 +618,7 @@ const transformOtherwiseEmbeddedRelationalPropertyMapping = (
654
618
  context,
655
619
  false,
656
620
  );
657
- const root = transformMappingElementRoot(element.root);
658
- if (root !== undefined) {
659
- classMapping.root = root;
660
- }
621
+ classMapping.root = element.root.valueForSerialization;
661
622
  /**
662
623
  * Omit this information during protocol transformation as it can be
663
624
  * interpreted while building the graph; and will help grammar-roundtrip
@@ -690,12 +651,8 @@ const transformXStorePropertyMapping = (
690
651
  ): V1_XStorePropertyMapping => {
691
652
  const xstore = new V1_XStorePropertyMapping();
692
653
  xstore.property = V1_transformPropertyReference(element.property);
693
- xstore.source = transformPropertyMappingSource(
694
- element.sourceSetImplementation,
695
- );
696
- xstore.target = transformPropertyMappingTarget(
697
- element.targetSetImplementation,
698
- );
654
+ xstore.source = element.sourceSetImplementation.id.value;
655
+ xstore.target = element.targetSetImplementation?.id.value;
699
656
  if (!isStubbed_RawLambda(element.crossExpression)) {
700
657
  xstore.crossExpression =
701
658
  element.crossExpression.accept_RawValueSpecificationVisitor(
@@ -715,12 +672,8 @@ const transformAggregationAwarePropertyMapping = (
715
672
  ): V1_AggregationAwarePropertyMapping => {
716
673
  const propertyMapping = new V1_AggregationAwarePropertyMapping();
717
674
  propertyMapping.property = V1_transformPropertyReference(element.property);
718
- propertyMapping.source = transformPropertyMappingSource(
719
- element.sourceSetImplementation,
720
- );
721
- propertyMapping.target = transformPropertyMappingTarget(
722
- element.targetSetImplementation,
723
- );
675
+ propertyMapping.source = element.sourceSetImplementation.id.value;
676
+ propertyMapping.target = element.targetSetImplementation?.id.value;
724
677
  if (element.localMappingProperty) {
725
678
  propertyMapping.localMappingProperty = transformLocalPropertyInfo(
726
679
  element.localMappingProperty,
@@ -747,6 +700,28 @@ class PropertyMappingTransformer
747
700
  this.isTransformingSourceId = isTransformingSourceId;
748
701
  }
749
702
 
703
+ visit_PropertyMapping(propertyMapping: PropertyMapping): V1_PropertyMapping {
704
+ const extraPropertyMappingTransformers = this.context.plugins.flatMap(
705
+ (plugin) =>
706
+ (
707
+ plugin as DSLMapping_PureProtocolProcessorPlugin_Extension
708
+ ).V1_getExtraPropertyMappingTransformers?.() ?? [],
709
+ );
710
+ for (const transformer of extraPropertyMappingTransformers) {
711
+ const propertyMappingProtocol = transformer(
712
+ propertyMapping,
713
+ this.context,
714
+ );
715
+ if (propertyMappingProtocol) {
716
+ return propertyMappingProtocol;
717
+ }
718
+ }
719
+ throw new UnsupportedOperationError(
720
+ `Can't transform property mapping: no compatible transformer available from plugins`,
721
+ propertyMapping,
722
+ );
723
+ }
724
+
750
725
  visit_PurePropertyMapping(
751
726
  propertyMapping: PurePropertyMapping,
752
727
  ): V1_PurePropertyMapping {
@@ -840,16 +815,13 @@ const transformOperationSetImplementation = (
840
815
  element: OperationSetImplementation,
841
816
  ): V1_OperationClassMapping => {
842
817
  const classMapping = new V1_OperationClassMapping();
843
- classMapping.class = V1_transformElementReference(element.class);
818
+ classMapping.class = element.class.valueForSerialization ?? '';
844
819
  classMapping.id = mappingElementIdSerializer(element.id);
845
820
  classMapping.operation = transformOperationType(element.operation);
846
821
  classMapping.parameters = element.parameters.map(
847
822
  (e) => e.setImplementation.value.id.value,
848
823
  );
849
- const root = transformMappingElementRoot(element.root);
850
- if (root !== undefined) {
851
- classMapping.root = root;
852
- }
824
+ classMapping.root = element.root.valueForSerialization;
853
825
  classMapping.extendsClassMappingId = element.superSetImplementationId;
854
826
  return classMapping;
855
827
  };
@@ -859,7 +831,7 @@ const transformMergeOperationSetImplementation = (
859
831
  context: V1_GraphTransformerContext,
860
832
  ): V1_MergeOperationClassMapping => {
861
833
  const classMapping = new V1_MergeOperationClassMapping();
862
- classMapping.class = V1_transformElementReference(element.class);
834
+ classMapping.class = element.class.valueForSerialization ?? '';
863
835
  classMapping.id = mappingElementIdSerializer(element.id);
864
836
  classMapping.operation = transformOperationType(element.operation);
865
837
  classMapping.validationFunction =
@@ -870,10 +842,7 @@ const transformMergeOperationSetImplementation = (
870
842
  (e) => e.setImplementation.value.id.value,
871
843
  );
872
844
  classMapping.extendsClassMappingId = element.superSetImplementationId;
873
- const root = transformMappingElementRoot(element.root);
874
- if (root !== undefined) {
875
- classMapping.root = root;
876
- }
845
+ classMapping.root = element.root.valueForSerialization;
877
846
  return classMapping;
878
847
  };
879
848
 
@@ -882,7 +851,7 @@ const transformPureInstanceSetImplementation = (
882
851
  context: V1_GraphTransformerContext,
883
852
  ): V1_PureInstanceClassMapping => {
884
853
  const classMapping = new V1_PureInstanceClassMapping();
885
- classMapping.class = V1_transformElementReference(element.class);
854
+ classMapping.class = element.class.valueForSerialization ?? '';
886
855
  if (element.filter) {
887
856
  classMapping.filter = element.filter.accept_RawValueSpecificationVisitor(
888
857
  new V1_RawValueSpecificationTransformer(context),
@@ -896,13 +865,8 @@ const transformPureInstanceSetImplementation = (
896
865
  false,
897
866
  );
898
867
  classMapping.extendsClassMappingId = element.superSetImplementationId;
899
- const root = transformMappingElementRoot(element.root);
900
- if (root !== undefined) {
901
- classMapping.root = root;
902
- }
903
- classMapping.srcClass = V1_transformOptionalElementReference(
904
- element.srcClass,
905
- );
868
+ classMapping.root = element.root.valueForSerialization;
869
+ classMapping.srcClass = element.srcClass.valueForSerialization;
906
870
  return classMapping;
907
871
  };
908
872
 
@@ -911,7 +875,7 @@ const transformFlatDataInstanceSetImpl = (
911
875
  context: V1_GraphTransformerContext,
912
876
  ): V1_RootFlatDataClassMapping => {
913
877
  const classMapping = new V1_RootFlatDataClassMapping();
914
- classMapping.class = V1_transformElementReference(element.class);
878
+ classMapping.class = element.class.valueForSerialization ?? '';
915
879
  if (element.filter) {
916
880
  classMapping.filter = element.filter.accept_RawValueSpecificationVisitor(
917
881
  new V1_RawValueSpecificationTransformer(context),
@@ -926,10 +890,7 @@ const transformFlatDataInstanceSetImpl = (
926
890
  context,
927
891
  false,
928
892
  );
929
- const root = transformMappingElementRoot(element.root);
930
- if (root !== undefined) {
931
- classMapping.root = root;
932
- }
893
+ classMapping.root = element.root.valueForSerialization;
933
894
  classMapping.extendsClassMappingId = element.superSetImplementationId;
934
895
  classMapping.sectionName = element.sourceRootRecordType.value._OWNER.name;
935
896
  return classMapping;
@@ -940,7 +901,7 @@ const transformRootRelationalSetImpl = (
940
901
  context: V1_GraphTransformerContext,
941
902
  ): V1_RootRelationalClassMapping => {
942
903
  const classMapping = new V1_RootRelationalClassMapping();
943
- classMapping.class = V1_transformElementReference(element.class);
904
+ classMapping.class = element.class.valueForSerialization ?? '';
944
905
  classMapping.distinct = element.distinct ?? false;
945
906
  classMapping.id = mappingElementIdSerializer(element.id);
946
907
  if (element.mainTableAlias) {
@@ -975,10 +936,7 @@ const transformRootRelationalSetImpl = (
975
936
  context,
976
937
  false,
977
938
  );
978
- const root = transformMappingElementRoot(element.root);
979
- if (root !== undefined) {
980
- classMapping.root = root;
981
- }
939
+ classMapping.root = element.root.valueForSerialization;
982
940
  return classMapping;
983
941
  };
984
942
 
@@ -997,10 +955,7 @@ const transformRelationalInstanceSetImpl = (
997
955
  context,
998
956
  false,
999
957
  );
1000
- const root = transformMappingElementRoot(element.root);
1001
- if (root !== undefined) {
1002
- classMapping.root = root;
1003
- }
958
+ classMapping.root = element.root.valueForSerialization;
1004
959
  /**
1005
960
  * Omit this information during protocol transformation as it can be
1006
961
  * interpreted while building the graph; and will help grammar-roundtrip
@@ -1086,12 +1041,8 @@ const transformAggregationAwareSetImplementation = (
1086
1041
  ): V1_AggregationAwareClassMapping => {
1087
1042
  const classMapping = new V1_AggregationAwareClassMapping();
1088
1043
  classMapping.id = mappingElementIdSerializer(element.id);
1089
- classMapping.class = V1_transformElementReference(element.class);
1090
-
1091
- const root = transformMappingElementRoot(element.root);
1092
- if (root !== undefined) {
1093
- classMapping.root = root;
1094
- }
1044
+ classMapping.class = element.class.valueForSerialization ?? '';
1045
+ classMapping.root = element.root.valueForSerialization;
1095
1046
  const mainSetImplementation = transformSetImplementation(
1096
1047
  element.mainSetImplementation,
1097
1048
  context,
@@ -1252,12 +1203,11 @@ const transformRelationalAssociationImplementation = (
1252
1203
  context: V1_GraphTransformerContext,
1253
1204
  ): V1_RelationalAssociationMapping => {
1254
1205
  const relationalMapping = new V1_RelationalAssociationMapping();
1255
- relationalMapping.stores = element.stores.map((store) =>
1256
- V1_transformElementReference(store),
1257
- );
1258
- relationalMapping.association = V1_transformElementReference(
1259
- element.association,
1206
+ relationalMapping.stores = element.stores.map(
1207
+ (store) => store.valueForSerialization ?? '',
1260
1208
  );
1209
+ relationalMapping.association =
1210
+ element.association.valueForSerialization ?? '';
1261
1211
  relationalMapping.propertyMappings = transformClassMappingPropertyMappings(
1262
1212
  element.propertyMappings,
1263
1213
  true,
@@ -1273,8 +1223,10 @@ const transformXStorelAssociationImplementation = (
1273
1223
  context: V1_GraphTransformerContext,
1274
1224
  ): V1_XStoreAssociationMapping => {
1275
1225
  const xStoreMapping = new V1_XStoreAssociationMapping();
1276
- xStoreMapping.stores = element.stores.map(V1_transformElementReference);
1277
- xStoreMapping.association = V1_transformElementReference(element.association);
1226
+ xStoreMapping.stores = element.stores.map(
1227
+ (store) => store.valueForSerialization ?? '',
1228
+ );
1229
+ xStoreMapping.association = element.association.valueForSerialization ?? '';
1278
1230
  xStoreMapping.propertyMappings = transformClassMappingPropertyMappings(
1279
1231
  element.propertyMappings,
1280
1232
  false,
@@ -19,10 +19,7 @@ import type { RawLambda } from '../../../../../../metamodels/pure/rawValueSpecif
19
19
  import type { RawVariableExpression } from '../../../../../../metamodels/pure/rawValueSpecification/RawVariableExpression.js';
20
20
  import { V1_RawLambda } from '../../../model/rawValueSpecification/V1_RawLambda.js';
21
21
  import { V1_RawVariable } from '../../../model/rawValueSpecification/V1_RawVariable.js';
22
- import {
23
- V1_transformMultiplicity,
24
- V1_transformElementReference,
25
- } from './V1_CoreTransformerHelper.js';
22
+ import { V1_transformMultiplicity } from './V1_CoreTransformerHelper.js';
26
23
  import type { V1_GraphTransformerContext } from './V1_GraphTransformerContext.js';
27
24
  import type { V1_RawValueSpecification } from '../../../model/rawValueSpecification/V1_RawValueSpecification.js';
28
25
  import { V1_RawPrimitiveInstanceValue } from '../../../model/rawValueSpecification/V1_RawPrimitiveInstanceValue.js';
@@ -65,9 +62,7 @@ export class V1_RawValueSpecificationTransformer
65
62
  rawValueSpecification: RawVariableExpression,
66
63
  ): V1_RawValueSpecification {
67
64
  const rawVariable = new V1_RawVariable();
68
- rawVariable.class = V1_transformElementReference(
69
- rawValueSpecification.type,
70
- );
65
+ rawVariable.class = rawValueSpecification.type.valueForSerialization ?? '';
71
66
  rawVariable.multiplicity = V1_transformMultiplicity(
72
67
  rawValueSpecification.multiplicity,
73
68
  );
@@ -79,7 +74,7 @@ export class V1_RawValueSpecificationTransformer
79
74
  rawValueSpecification: RawPrimitiveInstanceValue,
80
75
  ): V1_RawValueSpecification {
81
76
  const protocol = new V1_RawPrimitiveInstanceValue();
82
- protocol.type = V1_transformElementReference(rawValueSpecification.type);
77
+ protocol.type = rawValueSpecification.type.valueForSerialization ?? '';
83
78
  protocol.multiplicity = V1_transformMultiplicity(
84
79
  rawValueSpecification.multiplicity,
85
80
  );
@@ -24,7 +24,6 @@ import {
24
24
  } from '../../../../../../metamodels/pure/packageableElements/runtime/Runtime.js';
25
25
  import {
26
26
  V1_initPackageableElement,
27
- V1_transformElementReference,
28
27
  V1_transformElementReferencePointer,
29
28
  } from './V1_CoreTransformerHelper.js';
30
29
  import { V1_PackageableRuntime } from '../../../model/packageableElements/runtime/V1_PackageableRuntime.js';
@@ -78,7 +77,7 @@ const transformRunTimePointer = (
78
77
  element: RuntimePointer,
79
78
  ): V1_RuntimePointer => {
80
79
  const runtime = new V1_RuntimePointer();
81
- runtime.runtime = V1_transformElementReference(element.packageableRuntime);
80
+ runtime.runtime = element.packageableRuntime.valueForSerialization ?? '';
82
81
  return runtime;
83
82
  };
84
83
 
@@ -25,17 +25,14 @@ import {
25
25
  V1_ImportAwareCodeSection,
26
26
  } from '../../../model/packageableElements/section/V1_Section.js';
27
27
  import { V1_SectionIndex } from '../../../model/packageableElements/section/V1_SectionIndex.js';
28
- import {
29
- V1_initPackageableElement,
30
- V1_transformElementReference,
31
- } from './V1_CoreTransformerHelper.js';
28
+ import { V1_initPackageableElement } from './V1_CoreTransformerHelper.js';
32
29
 
33
30
  const transformDefaultCodeSectionSchema = (
34
31
  element: DefaultCodeSection,
35
32
  ): V1_DefaultCodeSection => {
36
33
  const defaultCodeSection = new V1_DefaultCodeSection();
37
- defaultCodeSection.elements = element.elements.map((e) =>
38
- V1_transformElementReference(e),
34
+ defaultCodeSection.elements = element.elements.map(
35
+ (el) => el.valueForSerialization ?? '',
39
36
  );
40
37
  defaultCodeSection.parserName = element.parserName;
41
38
  return defaultCodeSection;
@@ -45,11 +42,11 @@ const transformImportAwareCodeSectionSchema = (
45
42
  element: ImportAwareCodeSection,
46
43
  ): V1_ImportAwareCodeSection => {
47
44
  const importAware = new V1_ImportAwareCodeSection();
48
- importAware.imports = element.imports.map((e) =>
49
- V1_transformElementReference(e),
45
+ importAware.imports = element.imports.map(
46
+ (el) => el.valueForSerialization ?? '',
50
47
  );
51
- importAware.elements = element.elements.map((e) =>
52
- V1_transformElementReference(e),
48
+ importAware.elements = element.elements.map(
49
+ (el) => el.valueForSerialization ?? '',
53
50
  );
54
51
  importAware.parserName = element.parserName;
55
52
  return importAware;
@@ -23,10 +23,7 @@ import {
23
23
  PureSingleExecution,
24
24
  PureMultiExecution,
25
25
  } from '../../../../../../metamodels/pure/packageableElements/service/ServiceExecution.js';
26
- import {
27
- V1_initPackageableElement,
28
- V1_transformElementReference,
29
- } from './V1_CoreTransformerHelper.js';
26
+ import { V1_initPackageableElement } from './V1_CoreTransformerHelper.js';
30
27
  import { V1_Service } from '../../../model/packageableElements/service/V1_Service.js';
31
28
  import {
32
29
  type V1_ServiceExecution,
@@ -138,7 +135,7 @@ const transformSingleExecution = (
138
135
  execution.func = element.func.accept_RawValueSpecificationVisitor(
139
136
  new V1_RawValueSpecificationTransformer(context),
140
137
  ) as V1_RawLambda;
141
- execution.mapping = V1_transformElementReference(element.mapping);
138
+ execution.mapping = element.mapping.valueForSerialization ?? '';
142
139
  execution.runtime = V1_transformRuntime(element.runtime, context);
143
140
  return execution;
144
141
  };
@@ -149,7 +146,7 @@ const transformKeyedParameter = (
149
146
  ): V1_KeyedExecutionParameter => {
150
147
  const parameter = new V1_KeyedExecutionParameter();
151
148
  parameter.key = element.key;
152
- parameter.mapping = V1_transformElementReference(element.mapping);
149
+ parameter.mapping = element.mapping.valueForSerialization ?? '';
153
150
  parameter.runtime = V1_transformRuntime(element.runtime, context);
154
151
  return parameter;
155
152
  };
@@ -47,7 +47,7 @@ import type { InstanceSetImplementation } from '../../../../../../metamodels/pur
47
47
  import { V1_buildAggregateContainer } from './helpers/V1_AggregationAwareClassMappingBuilderHelper.js';
48
48
  import { V1_buildRawLambdaWithResolvedPaths } from './helpers/V1_ValueSpecificationPathResolver.js';
49
49
  import { V1_buildRelationalMappingFilter } from './helpers/V1_RelationalClassMappingBuilderHelper.js';
50
- import { toOptionalPackageableElementReference } from '../../../../../../metamodels/pure/packageableElements/PackageableElementReference.js';
50
+ import { optionalizePackageableElementReference } from '../../../../../../metamodels/pure/packageableElements/PackageableElementReference.js';
51
51
  import type { DSLMapping_PureProtocolProcessorPlugin_Extension } from '../../../../DSLMapping_PureProtocolProcessorPlugin_Extension.js';
52
52
  import type { V1_MergeOperationClassMapping } from '../../../model/packageableElements/mapping/V1_MergeOperationClassMapping.js';
53
53
  import { MergeOperationSetImplementation } from '../../../../../../metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.js';
@@ -167,7 +167,7 @@ export class V1_ProtocolToMetaModelClassMappingFirstPassBuilder
167
167
  this.parent,
168
168
  targetClass,
169
169
  InferableMappingElementRootExplicitValue.create(classMapping.root),
170
- toOptionalPackageableElementReference(srcClassReference),
170
+ optionalizePackageableElementReference(srcClassReference),
171
171
  );
172
172
  pureInstanceSetImplementation.filter = classMapping.filter
173
173
  ? V1_buildRawLambdaWithResolvedPaths(