@finos/legend-graph 8.0.3 → 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 (304) 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/model/packageableElements/mapping/V1_PropertyMapping.d.ts +1 -0
  177. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.d.ts.map +1 -1
  178. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.d.ts +7 -0
  179. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.d.ts.map +1 -1
  180. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js +7 -2
  181. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.js.map +1 -1
  182. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.d.ts.map +1 -1
  183. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +8 -7
  184. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  185. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.d.ts +1 -3
  186. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.d.ts.map +1 -1
  187. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.js +0 -2
  188. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.js.map +1 -1
  189. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.d.ts.map +1 -1
  190. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.js +2 -2
  191. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.js.map +1 -1
  192. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.d.ts.map +1 -1
  193. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.js +5 -4
  194. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.js.map +1 -1
  195. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_GenerationSpecificationTransformer.d.ts.map +1 -1
  196. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_GenerationSpecificationTransformer.js +3 -2
  197. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_GenerationSpecificationTransformer.js.map +1 -1
  198. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts.map +1 -1
  199. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js +61 -79
  200. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js.map +1 -1
  201. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RawValueSpecificationTransformer.d.ts.map +1 -1
  202. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RawValueSpecificationTransformer.js +3 -3
  203. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RawValueSpecificationTransformer.js.map +1 -1
  204. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RuntimeTransformer.d.ts.map +1 -1
  205. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RuntimeTransformer.js +2 -2
  206. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_RuntimeTransformer.js.map +1 -1
  207. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_SectionIndexTransformer.d.ts.map +1 -1
  208. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_SectionIndexTransformer.js +4 -4
  209. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_SectionIndexTransformer.js.map +1 -1
  210. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.d.ts.map +1 -1
  211. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js +3 -3
  212. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js.map +1 -1
  213. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js +2 -2
  214. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js.map +1 -1
  215. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts +2 -1
  216. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts.map +1 -1
  217. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js +18 -4
  218. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js.map +1 -1
  219. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js +2 -2
  220. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js.map +1 -1
  221. package/lib/package.json +2 -2
  222. package/package.json +5 -5
  223. package/src/DSLMapping_Exports.ts +2 -4
  224. package/src/MetaModelConst.ts +0 -1
  225. package/src/MetaModelUtils.ts +28 -8
  226. package/src/graphManager/AbstractPureGraphManager.ts +24 -14
  227. package/src/graphManager/DSLMapping_PureGraphManagerPlugin_Extension.ts +14 -0
  228. package/src/graphManager/action/changeDetection/DSLMapping_ObserverHelper.ts +47 -13
  229. package/src/graphManager/action/creation/DSLMapping_ModelCreatorHelper.ts +2 -1
  230. package/src/graphManager/action/validation/DSLMapping_ValidationHelper.ts +2 -4
  231. package/src/index.ts +6 -5
  232. package/src/models/metamodels/pure/data/EmbeddedData.ts +1 -1
  233. package/src/models/metamodels/pure/executionPlan/nodes/ExecutionNode.ts +3 -0
  234. package/src/models/metamodels/pure/packageableElements/PackageableElementReference.ts +1 -5
  235. package/src/models/metamodels/pure/packageableElements/connection/Connection.ts +1 -1
  236. package/src/models/metamodels/pure/packageableElements/domain/Class.ts +3 -1
  237. package/src/models/metamodels/pure/packageableElements/domain/ConcreteFunctionDefinition.ts +1 -1
  238. package/src/models/metamodels/pure/packageableElements/domain/DerivedProperty.ts +1 -1
  239. package/src/models/metamodels/pure/packageableElements/domain/Property.ts +1 -1
  240. package/src/models/metamodels/pure/packageableElements/domain/PropertyReference.ts +1 -1
  241. package/src/models/metamodels/pure/packageableElements/domain/StereotypeReference.ts +1 -1
  242. package/src/models/metamodels/pure/packageableElements/domain/TagReference.ts +1 -1
  243. package/src/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.ts +1 -1
  244. package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_BindingTransformer.ts +1 -1
  245. package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.ts +6 -2
  246. package/src/models/metamodels/pure/packageableElements/fileGeneration/FileGenerationSpecification.ts +1 -1
  247. package/src/models/metamodels/pure/packageableElements/generationSpecification/GenerationSpecification.ts +2 -2
  248. package/src/models/metamodels/pure/packageableElements/mapping/AssociationImplementation.ts +1 -1
  249. package/src/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.ts +4 -2
  250. package/src/models/metamodels/pure/packageableElements/mapping/EnumerationMapping.ts +1 -1
  251. package/src/models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.ts +61 -0
  252. package/src/models/metamodels/pure/packageableElements/mapping/LocalMappingPropertyInfo.ts +1 -1
  253. package/src/models/metamodels/pure/packageableElements/mapping/MappingInclude.ts +5 -5
  254. package/src/models/metamodels/pure/packageableElements/mapping/PropertyMapping.ts +1 -1
  255. package/src/models/metamodels/pure/packageableElements/mapping/SetImplementation.ts +1 -1
  256. package/src/models/metamodels/pure/packageableElements/runtime/Runtime.ts +3 -3
  257. package/src/models/metamodels/pure/packageableElements/section/Section.ts +2 -2
  258. package/src/models/metamodels/pure/packageableElements/service/ServiceExecution.ts +2 -2
  259. package/src/models/metamodels/pure/packageableElements/store/flatData/connection/FlatDataConnection.ts +1 -1
  260. package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/EmbeddedFlatDataPropertyMapping.ts +1 -0
  261. package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInputData.ts +1 -1
  262. package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataInstanceSetImplementation.ts +2 -1
  263. package/src/models/metamodels/pure/packageableElements/store/flatData/mapping/FlatDataPropertyMapping.ts +3 -4
  264. package/src/models/metamodels/pure/packageableElements/store/flatData/model/FlatData.ts +3 -1
  265. package/src/models/metamodels/pure/packageableElements/store/flatData/model/FlatDataSectionReference.ts +1 -1
  266. package/src/models/metamodels/pure/packageableElements/store/modelToModel/connection/JsonModelConnection.ts +1 -1
  267. package/src/models/metamodels/pure/packageableElements/store/modelToModel/connection/ModelChainConnection.ts +1 -1
  268. package/src/models/metamodels/pure/packageableElements/store/modelToModel/connection/XmlModelConnection.ts +1 -1
  269. package/src/models/metamodels/pure/packageableElements/store/modelToModel/mapping/ObjectInputData.ts +1 -1
  270. package/src/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PureInstanceSetImplementation.ts +1 -0
  271. package/src/models/metamodels/pure/packageableElements/store/modelToModel/mapping/PurePropertyMapping.ts +3 -4
  272. package/src/models/metamodels/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.ts +8 -3
  273. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.ts +2 -1
  274. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/FilterMapping.ts +1 -1
  275. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInputData.ts +1 -1
  276. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalInstanceSetImplementation.ts +1 -0
  277. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.ts +3 -4
  278. package/src/models/metamodels/pure/packageableElements/store/relational/model/Database.ts +3 -1
  279. package/src/models/metamodels/pure/packageableElements/store/relational/model/RelationalOperationElement.ts +1 -1
  280. package/src/models/metamodels/pure/packageableElements/store/relational/model/TableReference.ts +2 -2
  281. package/src/models/metamodels/pure/packageableElements/store/relational/model/ViewReference.ts +2 -2
  282. package/src/models/metamodels/pure/rawValueSpecification/RawPrimitiveInstanceValue.ts +1 -1
  283. package/src/models/metamodels/pure/rawValueSpecification/RawVariableExpression.ts +1 -1
  284. package/src/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.ts +8 -14
  285. package/src/models/protocols/pure/DSLMapping_PureProtocolProcessorPlugin_Extension.ts +26 -0
  286. package/src/models/protocols/pure/PureProtocolProcessorPlugin.ts +0 -6
  287. package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +151 -194
  288. package/src/models/protocols/pure/v1/engine/V1_Engine.ts +10 -12
  289. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_PropertyMapping.ts +1 -1
  290. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_RelationalDatabaseConnection.ts +7 -2
  291. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +10 -12
  292. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.ts +1 -14
  293. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.ts +4 -5
  294. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DomainTransformer.ts +4 -6
  295. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_GenerationSpecificationTransformer.ts +2 -4
  296. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.ts +80 -128
  297. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_RawValueSpecificationTransformer.ts +3 -8
  298. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_RuntimeTransformer.ts +1 -2
  299. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_SectionIndexTransformer.ts +7 -10
  300. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.ts +3 -6
  301. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.ts +2 -2
  302. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.ts +29 -3
  303. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.ts +2 -2
  304. package/tsconfig.json +1 -0
@@ -24,18 +24,26 @@ import type { PureGraphManagerPlugin } from './PureGraphManagerPlugin.js';
24
24
  export type PureGrammarConnectionLabeler = (
25
25
  connection: Connection,
26
26
  ) => string | undefined;
27
+
27
28
  export type ConnectionObserver = (
28
29
  connection: Connection,
29
30
  context: ObserverContext,
30
31
  ) => Connection | undefined;
32
+
31
33
  export type SetImplementationObserver = (
32
34
  setImplementation: SetImplementation,
33
35
  context: ObserverContext,
34
36
  ) => SetImplementation | undefined;
37
+
35
38
  export type PropertyMappingObserver = (
36
39
  propertyMapping: PropertyMapping,
37
40
  context: ObserverContext,
38
41
  ) => PropertyMapping | undefined;
42
+
43
+ export type PropertyMappingStubChecker = (
44
+ propertyMapping: PropertyMapping,
45
+ ) => boolean | undefined;
46
+
39
47
  export type MappingTestInputDataObserver = (
40
48
  inputData: InputData,
41
49
  context: ObserverContext,
@@ -55,4 +63,10 @@ export interface DSLMapping_PureGraphManagerPlugin_Extension
55
63
  getExtraPropertyMappingObservers?(): PropertyMappingObserver[];
56
64
 
57
65
  getExtraConnectionObservers?(): ConnectionObserver[];
66
+
67
+ /**
68
+ * Get the list of checkers which can verify if the specified property mapping is
69
+ * stubbed (potentially prunable) or not
70
+ */
71
+ getExtraPropertyMappingStubCheckers?(): PropertyMappingStubChecker[];
58
72
  }
@@ -25,6 +25,7 @@ import type { AggregationAwarePropertyMapping } from '../../../models/metamodels
25
25
  import type { AggregationAwareSetImplementation } from '../../../models/metamodels/pure/packageableElements/mapping/aggregationAware/AggregationAwareSetImplementation.js';
26
26
  import type { AssociationImplementation } from '../../../models/metamodels/pure/packageableElements/mapping/AssociationImplementation.js';
27
27
  import type { EnumerationMapping } from '../../../models/metamodels/pure/packageableElements/mapping/EnumerationMapping.js';
28
+ import type { OptionalEnumerationMappingReference } from '../../../models/metamodels/pure/packageableElements/mapping/EnumerationMappingReference.js';
28
29
  import type {
29
30
  EnumValueMapping,
30
31
  SourceValue,
@@ -130,6 +131,33 @@ export const observe_Abstract_Store = (metamodel: Store): void => {
130
131
 
131
132
  // ------------------------------------- Mapping -------------------------------------
132
133
 
134
+ export const observe_OptionalEnumerationMappingReference = skipObserved(
135
+ (
136
+ metamodel: OptionalEnumerationMappingReference,
137
+ ): OptionalEnumerationMappingReference => {
138
+ makeObservable(metamodel, {
139
+ value: observable,
140
+ valueForSerialization: computed,
141
+ });
142
+
143
+ observe_OptionalPackageableElementReference(metamodel.ownerReference);
144
+
145
+ return metamodel;
146
+ },
147
+ );
148
+
149
+ export const observe_SetImplementationReference = skipObserved(
150
+ (metamodel: SetImplementationReference): SetImplementationReference => {
151
+ makeObservable(metamodel, {
152
+ value: observable,
153
+ });
154
+
155
+ observe_PackageableElementReference(metamodel.ownerReference);
156
+
157
+ return metamodel;
158
+ },
159
+ );
160
+
133
161
  export const observe_LocalMappingPropertyInfo = skipObserved(
134
162
  (metamodel: LocalMappingPropertyInfo): LocalMappingPropertyInfo => {
135
163
  makeObservable(metamodel, {
@@ -174,7 +202,7 @@ export const observe_PurePropertyMapping = skipObservedWithContext(
174
202
  hashCode: computed,
175
203
  });
176
204
 
177
- // TODO transformer?: EnumerationMapping | undefined;
205
+ observe_OptionalEnumerationMappingReference(metamodel.transformer);
178
206
  observe_RawLambda(metamodel.transform);
179
207
 
180
208
  return metamodel;
@@ -188,6 +216,24 @@ class PropertyMappingObserver implements PropertyMappingVisitor<void> {
188
216
  this.observerContext = observerContext;
189
217
  }
190
218
 
219
+ visit_PropertyMapping(propertyMapping: PropertyMapping): void {
220
+ const extraPropertyMappingObservers = this.observerContext.plugins.flatMap(
221
+ (plugin) =>
222
+ (
223
+ plugin as DSLMapping_PureGraphManagerPlugin_Extension
224
+ ).getExtraPropertyMappingObservers?.() ?? [],
225
+ );
226
+ for (const observer of extraPropertyMappingObservers) {
227
+ const observedPropertyMapping = observer(
228
+ propertyMapping,
229
+ this.observerContext,
230
+ );
231
+ if (observedPropertyMapping) {
232
+ return;
233
+ }
234
+ }
235
+ }
236
+
191
237
  visit_PurePropertyMapping(propertyMapping: PurePropertyMapping): void {
192
238
  observe_PurePropertyMapping(propertyMapping, this.observerContext);
193
239
  }
@@ -319,18 +365,6 @@ export const observe_Abstract_InstanceSetImplementation = (
319
365
  );
320
366
  };
321
367
 
322
- export const observe_SetImplementationReference = skipObserved(
323
- (metamodel: SetImplementationReference): SetImplementationReference => {
324
- makeObservable(metamodel, {
325
- value: observable,
326
- });
327
-
328
- observe_PackageableElementReference(metamodel.ownerReference);
329
-
330
- return metamodel;
331
- },
332
- );
333
-
334
368
  export const observe_SetImplementationContainer = skipObserved(
335
369
  (metamodel: SetImplementationContainer): SetImplementationContainer => {
336
370
  makeObservable(metamodel, {});
@@ -23,7 +23,8 @@ import type { StoreConnections } from '../../../models/metamodels/pure/packageab
23
23
  export const stub_Mapping = (): Mapping => new Mapping('');
24
24
 
25
25
  export const isStubbed_EnumValueMapping = (value: EnumValueMapping): boolean =>
26
- !value.sourceValues.filter(isNonNullable).length;
26
+ !value.sourceValues.filter((sourceValue) => isNonNullable(sourceValue.value))
27
+ .length;
27
28
 
28
29
  export const isStubbed_StoreConnections = (value: StoreConnections): boolean =>
29
30
  !value.storeConnections.length;
@@ -47,8 +47,7 @@ export const DEPRECATED__validate_MappingTestAssert = (
47
47
  ])
48
48
  : undefined;
49
49
  }
50
- /* @MARKER: NEW CLASS MAPPING TYPE SUPPORT --- consider adding class mapping type handler here whenever support for a new one is added to the app */
51
- // TODO: we might need to modularize this
50
+ // NOTE: technically we need to modularize these, but they are deprecated, so we will leave them alone for now
52
51
  return undefined;
53
52
  };
54
53
 
@@ -84,8 +83,7 @@ export const DEPRECATED__validate_InputData = (
84
83
  } else if (metamodel instanceof FlatDataInputData) {
85
84
  return DEPRECATED__validate_FlatDataInputData(metamodel);
86
85
  }
87
- /* @MARKER: NEW CLASS MAPPING TYPE SUPPORT --- consider adding class mapping type handler here whenever support for a new one is added to the app */
88
- // TODO: we might need to modularize this
86
+ // NOTE: technically we need to modularize these, but they are deprecated, so we will leave them alone for now
89
87
  return undefined;
90
88
  };
91
89
 
package/src/index.ts CHANGED
@@ -239,10 +239,7 @@ export { V1_RawLambda } from './models/protocols/pure/v1/model/rawValueSpecifica
239
239
  export { V1_ProcessingContext } from './models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.js';
240
240
  export { V1_ProtocolToMetaModelConnectionBuilder } from './models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelConnectionBuilder.js';
241
241
  export * from './models/protocols/pure/v1/transformation/pureGraph/from/V1_GraphTransformerContext.js';
242
- export {
243
- V1_initPackageableElement,
244
- V1_transformElementReference,
245
- } from './models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.js';
242
+ export * from './models/protocols/pure/v1/transformation/pureGraph/from/V1_CoreTransformerHelper.js';
246
243
  export {
247
244
  V1_RawValueSpecificationTransformer,
248
245
  V1_transformRawLambda,
@@ -324,7 +321,11 @@ export * from './graphManager/action/creation/DSLMapping_ModelCreatorHelper.js';
324
321
  export * from './graphManager/action/creation/RawValueSpecificationCreatorHelper.js';
325
322
  export * from './graphManager/action/creation/StoreRelational_ModelCreatorHelper.js';
326
323
 
327
- // --------------------------------------------- TO BE MODULARIZED --------------------------------------------------
324
+ // --------------------------------------------- DSL --------------------------------------------------
325
+ /**
326
+ * @modularize
327
+ * See https://github.com/finos/legend-studio/issues/65
328
+ */
328
329
 
329
330
  export * from './DSLMapping_Exports.js';
330
331
  export * from './DSLService_Exports.js';
@@ -41,7 +41,7 @@ export class DataElementReference extends EmbeddedData implements Hashable {
41
41
  get hashCode(): string {
42
42
  return hashArray([
43
43
  CORE_HASH_STRUCTURE.DATA_ELEMENT_REFERENCE,
44
- this.dataElement.hashValue,
44
+ this.dataElement.valueForSerialization ?? '',
45
45
  ]);
46
46
  }
47
47
  accept_EmbeddedDataVisitor<T>(visitor: EmbeddedDataVisitor<T>): T {
@@ -14,10 +14,13 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import { uuid } from '@finos/legend-shared';
17
18
  import type { Multiplicity } from '../../packageableElements/domain/Multiplicity.js';
18
19
  import type { ResultType } from '../result/ResultType.js';
19
20
 
20
21
  export class ExecutionNode {
22
+ readonly _UUID = uuid();
23
+
21
24
  // fromCluster : ClusteredValueSpecification[0..1];
22
25
  resultType!: ResultType;
23
26
  resultSizeRange?: Multiplicity | undefined;
@@ -30,10 +30,6 @@ export abstract class PackageableElementReference<
30
30
  }
31
31
 
32
32
  abstract get valueForSerialization(): string | undefined;
33
-
34
- get hashValue(): string {
35
- return this.valueForSerialization ?? '';
36
- }
37
33
  }
38
34
 
39
35
  export class PackageableElementExplicitReference<
@@ -252,7 +248,7 @@ export class OptionalPackageableElementImplicitReference<
252
248
  }
253
249
  }
254
250
 
255
- export const toOptionalPackageableElementReference = <
251
+ export const optionalizePackageableElementReference = <
256
252
  V extends PackageableElement,
257
253
  >(
258
254
  reference: PackageableElementReference<V> | undefined,
@@ -67,7 +67,7 @@ export class ConnectionPointer extends Connection implements Hashable {
67
67
  get hashCode(): string {
68
68
  return hashArray([
69
69
  CORE_HASH_STRUCTURE.CONNECTION_POINTER,
70
- this.packageableConnection.hashValue,
70
+ this.packageableConnection.valueForSerialization ?? '',
71
71
  ]);
72
72
  }
73
73
 
@@ -81,7 +81,9 @@ export class Class extends Type implements Hashable {
81
81
  hashArray(this.properties),
82
82
  hashArray(this.derivedProperties),
83
83
  hashArray(
84
- this.generalizations.map((gen) => gen.ownerReference.hashValue),
84
+ this.generalizations.map(
85
+ (gen) => gen.ownerReference.valueForSerialization ?? '',
86
+ ),
85
87
  ),
86
88
  hashArray(this.constraints),
87
89
  hashArray(this.stereotypes.map((val) => val.pointerHashCode)),
@@ -58,7 +58,7 @@ export class ConcreteFunctionDefinition
58
58
  CORE_HASH_STRUCTURE.FUNCTION,
59
59
  this.path,
60
60
  hashArray(this.parameters),
61
- this.returnType.hashValue,
61
+ this.returnType.valueForSerialization ?? '',
62
62
  hashArray(this.taggedValues),
63
63
  hashArray(this.stereotypes.map((val) => val.pointerHashCode)),
64
64
  hashRawLambda(undefined, this.expressionSequence),
@@ -65,7 +65,7 @@ export class DerivedProperty
65
65
  CORE_HASH_STRUCTURE.DERIVED_PROPERTY,
66
66
  this.name,
67
67
  this.multiplicity,
68
- this.genericType.ownerReference.hashValue,
68
+ this.genericType.ownerReference.valueForSerialization ?? '',
69
69
  hashArray(this.stereotypes.map((val) => val.pointerHashCode)),
70
70
  hashArray(this.taggedValues),
71
71
  hashRawLambda(this.parameters, this.body),
@@ -50,7 +50,7 @@ export class Property implements AbstractProperty, AnnotatedElement, Hashable {
50
50
  CORE_HASH_STRUCTURE.PROPERTY,
51
51
  this.name,
52
52
  this.multiplicity,
53
- this.genericType.ownerReference.hashValue,
53
+ this.genericType.ownerReference.valueForSerialization ?? '',
54
54
  hashArray(this.stereotypes.map((val) => val.pointerHashCode)),
55
55
  hashArray(this.taggedValues),
56
56
  ]);
@@ -46,7 +46,7 @@ export abstract class PropertyReference extends ReferenceWithOwner {
46
46
  return [
47
47
  CORE_HASH_STRUCTURE.PROPERTY_POINTER,
48
48
  this.value.name,
49
- this.ownerReference.hashValue,
49
+ this.ownerReference.valueForSerialization ?? '',
50
50
  ]
51
51
  .map(hashString)
52
52
  .join(',');
@@ -42,7 +42,7 @@ export abstract class StereotypeReference extends ReferenceWithOwner {
42
42
  return [
43
43
  CORE_HASH_STRUCTURE.STEREOTYPE_POINTER,
44
44
  this.value.value,
45
- this.ownerReference.hashValue,
45
+ this.ownerReference.valueForSerialization ?? '',
46
46
  ]
47
47
  .map(hashString)
48
48
  .join(',');
@@ -42,7 +42,7 @@ export abstract class TagReference extends ReferenceWithOwner {
42
42
  return [
43
43
  CORE_HASH_STRUCTURE.TAG_POINTER,
44
44
  this.value.value,
45
- this.ownerReference.hashValue,
45
+ this.ownerReference.valueForSerialization ?? '',
46
46
  ]
47
47
  .map(hashString)
48
48
  .join(',');
@@ -31,7 +31,7 @@ export class ExternalFormatConnection extends Connection implements Hashable {
31
31
  get hashCode(): string {
32
32
  return hashArray([
33
33
  DSL_EXTERNAL_FORMAT_HASH_STRUCTURE.EXTERNAL_FORMAT_CONNECTION,
34
- this.store.hashValue,
34
+ this.store.valueForSerialization ?? '',
35
35
  this.externalSource,
36
36
  ]);
37
37
  }
@@ -25,7 +25,7 @@ export class BindingTransformer implements Hashable {
25
25
  get hashCode(): string {
26
26
  return hashArray([
27
27
  CORE_HASH_STRUCTURE.BINDING_TRANSFORMER,
28
- this.binding.hashValue,
28
+ this.binding.valueForSerialization ?? '',
29
29
  ]);
30
30
  }
31
31
  }
@@ -29,10 +29,14 @@ export class ModelUnit implements Hashable {
29
29
  return hashArray([
30
30
  DSL_EXTERNAL_FORMAT_HASH_STRUCTURE.MODEL_UNIT,
31
31
  hashArray(
32
- this.packageableElementIncludes.map((element) => element.hashValue),
32
+ this.packageableElementIncludes.map(
33
+ (element) => element.valueForSerialization ?? '',
34
+ ),
33
35
  ),
34
36
  hashArray(
35
- this.packageableElementExcludes.map((element) => element.hashValue),
37
+ this.packageableElementExcludes.map(
38
+ (element) => element.valueForSerialization ?? '',
39
+ ),
36
40
  ),
37
41
  ]);
38
42
  }
@@ -43,7 +43,7 @@ export class FileGenerationSpecification
43
43
  hashArray(
44
44
  this.scopeElements.map((element) =>
45
45
  element instanceof PackageableElementReference
46
- ? element.hashValue
46
+ ? element.valueForSerialization ?? ''
47
47
  : element,
48
48
  ),
49
49
  ),
@@ -44,7 +44,7 @@ export class GenerationTreeNode implements Hashable {
44
44
  get hashCode(): string {
45
45
  return hashArray([
46
46
  CORE_HASH_STRUCTURE.GENERATION_TREE_NODE,
47
- this.generationElement.hashValue,
47
+ this.generationElement.valueForSerialization ?? '',
48
48
  this.id,
49
49
  ]);
50
50
  }
@@ -72,7 +72,7 @@ export class GenerationSpecification
72
72
  this.fileGenerations.map((fileGeneration) =>
73
73
  hashElementPointer(
74
74
  PackageableElementPointerType.FILE_GENERATION,
75
- fileGeneration.hashValue,
75
+ fileGeneration.valueForSerialization ?? '',
76
76
  ),
77
77
  ),
78
78
  ),
@@ -52,7 +52,7 @@ export abstract class AssociationImplementation
52
52
  CORE_HASH_STRUCTURE.ASSOCIATION_IMPLEMENTATION,
53
53
  this.association.value.path,
54
54
  this.id.valueForSerialization ?? '',
55
- hashArray(this.stores.map((e) => e.hashValue)),
55
+ hashArray(this.stores.map((e) => e.valueForSerialization ?? '')),
56
56
  ]);
57
57
  }
58
58
  }
@@ -25,12 +25,14 @@ import { CORE_HASH_STRUCTURE } from '../../../../../MetaModelConst.js';
25
25
  import { Enum } from '../domain/Enum.js';
26
26
  import type { EnumValueReference } from '../domain/EnumValueReference.js';
27
27
 
28
+ export type SourceValueType = Enum | string | number | undefined;
29
+
28
30
  export class SourceValue {
29
31
  readonly _UUID = uuid();
30
32
 
31
- value: Enum | string | number | undefined;
33
+ value: SourceValueType;
32
34
 
33
- constructor(value: Enum | string | number | undefined) {
35
+ constructor(value: SourceValueType) {
34
36
  this.value = value;
35
37
  }
36
38
  }
@@ -50,7 +50,7 @@ export class EnumerationMapping implements Hashable {
50
50
  return hashArray([
51
51
  CORE_HASH_STRUCTURE.ENUMERATION_MAPPING,
52
52
  this.id.valueForSerialization ?? '',
53
- this.enumeration.hashValue,
53
+ this.enumeration.valueForSerialization ?? '',
54
54
  // If there are no enum value mapping, source type means nothing since it's not in the protocol anyway
55
55
  this.enumValueMappings.filter(
56
56
  // TODO: use `isStubbed_EnumValueMapping` when we refactor hashing
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ type OptionalPackageableElementReference,
19
+ OptionalPackageableElementExplicitReference,
20
+ } from '../PackageableElementReference.js';
21
+ import type { Mapping } from './Mapping.js';
22
+ import type { EnumerationMapping } from './EnumerationMapping.js';
23
+ import { OptionalReferenceWithOwner } from '../../Reference.js';
24
+
25
+ export abstract class OptionalEnumerationMappingReference extends OptionalReferenceWithOwner {
26
+ override readonly ownerReference: OptionalPackageableElementReference<Mapping>;
27
+ value?: EnumerationMapping | undefined;
28
+
29
+ protected constructor(
30
+ ownerReference: OptionalPackageableElementReference<Mapping>,
31
+ value: EnumerationMapping | undefined,
32
+ ) {
33
+ super(ownerReference);
34
+ this.ownerReference = ownerReference;
35
+ this.value = value;
36
+ }
37
+
38
+ abstract get valueForSerialization(): string | undefined;
39
+ }
40
+
41
+ export class OptionalEnumerationMappingExplicitReference extends OptionalEnumerationMappingReference {
42
+ override readonly ownerReference: OptionalPackageableElementReference<Mapping>;
43
+
44
+ private constructor(value: EnumerationMapping | undefined) {
45
+ const ownerReference = OptionalPackageableElementExplicitReference.create(
46
+ value?._PARENT,
47
+ );
48
+ super(ownerReference, value);
49
+ this.ownerReference = ownerReference;
50
+ }
51
+
52
+ static create(
53
+ value: EnumerationMapping | undefined,
54
+ ): OptionalEnumerationMappingExplicitReference {
55
+ return new OptionalEnumerationMappingExplicitReference(value);
56
+ }
57
+
58
+ get valueForSerialization(): string | undefined {
59
+ return this.value?.id.value;
60
+ }
61
+ }
@@ -28,7 +28,7 @@ export class LocalMappingPropertyInfo implements Hashable {
28
28
  get hashCode(): string {
29
29
  return hashArray([
30
30
  CORE_HASH_STRUCTURE.LOCAL_MAPPING_PROPERTY,
31
- this.localMappingPropertyType.hashValue,
31
+ this.localMappingPropertyType.valueForSerialization ?? '',
32
32
  this.localMappingPropertyMultiplicity,
33
33
  ]);
34
34
  }
@@ -34,11 +34,11 @@ export class MappingInclude {
34
34
  get hashCode(): string {
35
35
  return hashArray([
36
36
  CORE_HASH_STRUCTURE.MAPPING_INCLUDE,
37
- this.included.hashValue,
38
- getNullableFirstElement(this.storeSubstitutions)?.original.hashValue ??
39
- '',
40
- getNullableFirstElement(this.storeSubstitutions)?.substitute.hashValue ??
41
- '',
37
+ this.included.valueForSerialization ?? '',
38
+ getNullableFirstElement(this.storeSubstitutions)?.original
39
+ .valueForSerialization ?? '',
40
+ getNullableFirstElement(this.storeSubstitutions)?.substitute
41
+ .valueForSerialization ?? '',
42
42
  ]);
43
43
  }
44
44
  }
@@ -30,8 +30,8 @@ import type { AggregationAwarePropertyMapping } from './aggregationAware/Aggrega
30
30
  import type { XStorePropertyMapping } from './xStore/XStorePropertyMapping.js';
31
31
  import type { LocalMappingPropertyInfo } from './LocalMappingPropertyInfo.js';
32
32
 
33
- /* @MARKER: NEW CLASS MAPPING TYPE SUPPORT --- consider adding class mapping type handler here whenever support for a new one is added to the app */
34
33
  export interface PropertyMappingVisitor<T> {
34
+ visit_PropertyMapping(propertyMapping: PropertyMapping): T;
35
35
  visit_PurePropertyMapping(propertyMapping: PurePropertyMapping): T;
36
36
  visit_FlatDataPropertyMapping(propertyMapping: FlatDataPropertyMapping): T;
37
37
  visit_EmbeddedFlatDataPropertyMapping(
@@ -92,7 +92,7 @@ export abstract class SetImplementation
92
92
  return hashArray([
93
93
  CORE_HASH_STRUCTURE.SET_IMPLEMENTATION,
94
94
  this.id.valueForSerialization ?? '',
95
- this.class.hashValue,
95
+ this.class.valueForSerialization ?? '',
96
96
  this.root.valueForSerialization.toString(),
97
97
  this.superSetImplementationId ?? '',
98
98
  ]);
@@ -59,7 +59,7 @@ export class StoreConnections implements Hashable {
59
59
  CORE_HASH_STRUCTURE.STORE_CONNECTIONS,
60
60
  hashElementPointer(
61
61
  PackageableElementPointerType.STORE,
62
- this.store.hashValue,
62
+ this.store.valueForSerialization ?? '',
63
63
  ),
64
64
  hashArray(this.storeConnections),
65
65
  ]);
@@ -81,7 +81,7 @@ export class EngineRuntime extends Runtime implements Hashable {
81
81
  this.mappings.map((mapping) =>
82
82
  hashElementPointer(
83
83
  PackageableElementPointerType.MAPPING,
84
- mapping.hashValue,
84
+ mapping.valueForSerialization ?? '',
85
85
  ),
86
86
  ),
87
87
  ),
@@ -108,7 +108,7 @@ export class RuntimePointer extends Runtime implements Hashable {
108
108
  get hashCode(): string {
109
109
  return hashArray([
110
110
  CORE_HASH_STRUCTURE.RUNTIME_POINTER,
111
- this.packageableRuntime.hashValue,
111
+ this.packageableRuntime.valueForSerialization ?? '',
112
112
  ]);
113
113
  }
114
114
  }
@@ -36,7 +36,7 @@ export abstract class Section implements Hashable {
36
36
  return hashArray([
37
37
  CORE_HASH_STRUCTURE.SECTION,
38
38
  this.parserName,
39
- hashArray(this.elements.map((e) => e.hashValue)),
39
+ hashArray(this.elements.map((e) => e.valueForSerialization ?? '')),
40
40
  ]);
41
41
  }
42
42
  }
@@ -48,7 +48,7 @@ export class ImportAwareCodeSection extends Section {
48
48
  return hashArray([
49
49
  CORE_HASH_STRUCTURE.IMPORT_AWARE_CODE_SECTION,
50
50
  super.hashCode,
51
- hashArray(this.imports.map((e) => e.hashValue)),
51
+ hashArray(this.imports.map((e) => e.valueForSerialization ?? '')),
52
52
  ]);
53
53
  }
54
54
  }
@@ -66,7 +66,7 @@ export class PureSingleExecution extends PureExecution implements Hashable {
66
66
  return hashArray([
67
67
  CORE_HASH_STRUCTURE.SERVICE_PURE_SINGLE_EXECUTION,
68
68
  super.hashCode,
69
- this.mapping.hashValue,
69
+ this.mapping.valueForSerialization ?? '',
70
70
  this.runtime,
71
71
  ]);
72
72
  }
@@ -93,7 +93,7 @@ export class KeyedExecutionParameter implements Hashable {
93
93
  return hashArray([
94
94
  CORE_HASH_STRUCTURE.SERVICE_KEYED_EXECUTION_PARAMETER,
95
95
  this.key,
96
- this.mapping.hashValue,
96
+ this.mapping.valueForSerialization ?? '',
97
97
  this.runtime,
98
98
  ]);
99
99
  }
@@ -43,7 +43,7 @@ export class FlatDataConnection extends Connection implements Hashable {
43
43
  get hashCode(): string {
44
44
  return hashArray([
45
45
  CORE_HASH_STRUCTURE.FLAT_DATA_CONNECTION,
46
- this.store.hashValue,
46
+ this.store.valueForSerialization ?? '',
47
47
  this.url,
48
48
  ]);
49
49
  }
@@ -88,6 +88,7 @@ export class EmbeddedFlatDataPropertyMapping
88
88
  this.propertyMappings.filter(
89
89
  // TODO: we should also handle of other property mapping types
90
90
  // using some form of extension mechanism
91
+ // This is a rather optimistic check as we make assumption on the type of property mapping included here
91
92
  (propertyMapping) => {
92
93
  if (propertyMapping instanceof FlatDataPropertyMapping) {
93
94
  // TODO: use `isStubbed_RawLambda` when we move this out of the metamodel
@@ -42,7 +42,7 @@ export class FlatDataInputData extends InputData implements Hashable {
42
42
  CORE_HASH_STRUCTURE.FLAT_DATA_INPUT_DATA,
43
43
  hashElementPointer(
44
44
  PackageableElementPointerType.STORE,
45
- this.sourceFlatData.hashValue,
45
+ this.sourceFlatData.valueForSerialization ?? '',
46
46
  ),
47
47
  this.data,
48
48
  ]);
@@ -56,13 +56,14 @@ export class FlatDataInstanceSetImplementation
56
56
  return hashArray([
57
57
  CORE_HASH_STRUCTURE.FLAT_DATA_INSTANCE_SET_IMPLEMENTATION,
58
58
  super.hashCode,
59
- this.sourceRootRecordType.ownerReference.hashValue,
59
+ this.sourceRootRecordType.ownerReference.valueForSerialization ?? '',
60
60
  this.sourceRootRecordType.value._OWNER.name,
61
61
  this.filter ?? '',
62
62
  hashArray(
63
63
  this.propertyMappings.filter(
64
64
  // TODO: we should also handle of other property mapping types
65
65
  // using some form of extension mechanism
66
+ // This is a rather optimistic check as we make assumption on the type of property mapping included here
66
67
  (propertyMapping) => {
67
68
  if (propertyMapping instanceof FlatDataPropertyMapping) {
68
69
  // TODO: use `isStubbed_RawLambda` when we move this out of the metamodel