@finos/legend-extension-dsl-data-quality 1.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 (260) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -0
  3. package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts +46 -0
  4. package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts.map +1 -0
  5. package/lib/components/DSL_DataQuality_ClassElementDriver.js +116 -0
  6. package/lib/components/DSL_DataQuality_ClassElementDriver.js.map +1 -0
  7. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts +30 -0
  8. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts.map +1 -0
  9. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js +161 -0
  10. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js.map +1 -0
  11. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.d.ts +25 -0
  12. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.d.ts.map +1 -0
  13. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.js +2 -0
  14. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.js.map +1 -0
  15. package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts +27 -0
  16. package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts.map +1 -0
  17. package/lib/components/DSL_DataQuality_ServiceElementDriver.js +41 -0
  18. package/lib/components/DSL_DataQuality_ServiceElementDriver.js.map +1 -0
  19. package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts +19 -0
  20. package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts.map +1 -0
  21. package/lib/components/DSL_NewDataQualityClassValidationElement.js +64 -0
  22. package/lib/components/DSL_NewDataQualityClassValidationElement.js.map +1 -0
  23. package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts +19 -0
  24. package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts.map +1 -0
  25. package/lib/components/DSL_NewDataQualityServiceValidationElement.js +41 -0
  26. package/lib/components/DSL_NewDataQualityServiceValidationElement.js.map +1 -0
  27. package/lib/components/DataQualityClassValidationEditor.d.ts +19 -0
  28. package/lib/components/DataQualityClassValidationEditor.d.ts.map +1 -0
  29. package/lib/components/DataQualityClassValidationEditor.js +29 -0
  30. package/lib/components/DataQualityClassValidationEditor.js.map +1 -0
  31. package/lib/components/DataQualityConstraintsSelection.d.ts +39 -0
  32. package/lib/components/DataQualityConstraintsSelection.d.ts.map +1 -0
  33. package/lib/components/DataQualityConstraintsSelection.js +133 -0
  34. package/lib/components/DataQualityConstraintsSelection.js.map +1 -0
  35. package/lib/components/DataQualityDataSpaceBuilder.d.ts +22 -0
  36. package/lib/components/DataQualityDataSpaceBuilder.d.ts.map +1 -0
  37. package/lib/components/DataQualityDataSpaceBuilder.js +101 -0
  38. package/lib/components/DataQualityDataSpaceBuilder.js.map +1 -0
  39. package/lib/components/DataQualityExplorerPanel.d.ts +29 -0
  40. package/lib/components/DataQualityExplorerPanel.d.ts.map +1 -0
  41. package/lib/components/DataQualityExplorerPanel.js +185 -0
  42. package/lib/components/DataQualityExplorerPanel.js.map +1 -0
  43. package/lib/components/DataQualityFilterPanel.d.ts +24 -0
  44. package/lib/components/DataQualityFilterPanel.d.ts.map +1 -0
  45. package/lib/components/DataQualityFilterPanel.js +32 -0
  46. package/lib/components/DataQualityFilterPanel.js.map +1 -0
  47. package/lib/components/DataQualityMappingAndRuntimeBuilder.d.ts +22 -0
  48. package/lib/components/DataQualityMappingAndRuntimeBuilder.d.ts.map +1 -0
  49. package/lib/components/DataQualityMappingAndRuntimeBuilder.js +98 -0
  50. package/lib/components/DataQualityMappingAndRuntimeBuilder.js.map +1 -0
  51. package/lib/components/DataQualityResultPanel.d.ts +22 -0
  52. package/lib/components/DataQualityResultPanel.d.ts.map +1 -0
  53. package/lib/components/DataQualityResultPanel.js +110 -0
  54. package/lib/components/DataQualityResultPanel.js.map +1 -0
  55. package/lib/components/DataQualityResultValues.d.ts +24 -0
  56. package/lib/components/DataQualityResultValues.d.ts.map +1 -0
  57. package/lib/components/DataQualityResultValues.js +31 -0
  58. package/lib/components/DataQualityResultValues.js.map +1 -0
  59. package/lib/components/DataQualityServiceValidationEditor.d.ts +19 -0
  60. package/lib/components/DataQualityServiceValidationEditor.d.ts.map +1 -0
  61. package/lib/components/DataQualityServiceValidationEditor.js +29 -0
  62. package/lib/components/DataQualityServiceValidationEditor.js.map +1 -0
  63. package/lib/components/DataQualitySideBar.d.ts +40 -0
  64. package/lib/components/DataQualitySideBar.d.ts.map +1 -0
  65. package/lib/components/DataQualitySideBar.js +78 -0
  66. package/lib/components/DataQualitySideBar.js.map +1 -0
  67. package/lib/components/DataQualityStructuralValidationsPanel.d.ts +22 -0
  68. package/lib/components/DataQualityStructuralValidationsPanel.d.ts.map +1 -0
  69. package/lib/components/DataQualityStructuralValidationsPanel.js +50 -0
  70. package/lib/components/DataQualityStructuralValidationsPanel.js.map +1 -0
  71. package/lib/components/DataQualityTabs.d.ts +22 -0
  72. package/lib/components/DataQualityTabs.d.ts.map +1 -0
  73. package/lib/components/DataQualityTabs.js +58 -0
  74. package/lib/components/DataQualityTabs.js.map +1 -0
  75. package/lib/components/DataQualityValidationEditor.d.ts +23 -0
  76. package/lib/components/DataQualityValidationEditor.d.ts.map +1 -0
  77. package/lib/components/DataQualityValidationEditor.js +24 -0
  78. package/lib/components/DataQualityValidationEditor.js.map +1 -0
  79. package/lib/components/constants/DataQualityConstants.d.ts +24 -0
  80. package/lib/components/constants/DataQualityConstants.d.ts.map +1 -0
  81. package/lib/components/constants/DataQualityConstants.js +25 -0
  82. package/lib/components/constants/DataQualityConstants.js.map +1 -0
  83. package/lib/components/index.d.ts +19 -0
  84. package/lib/components/index.d.ts.map +1 -0
  85. package/lib/components/index.js +19 -0
  86. package/lib/components/index.js.map +1 -0
  87. package/lib/components/states/ConstraintState.d.ts +30 -0
  88. package/lib/components/states/ConstraintState.d.ts.map +1 -0
  89. package/lib/components/states/ConstraintState.js +55 -0
  90. package/lib/components/states/ConstraintState.js.map +1 -0
  91. package/lib/components/states/DataQualityClassValidationState.d.ts +43 -0
  92. package/lib/components/states/DataQualityClassValidationState.d.ts.map +1 -0
  93. package/lib/components/states/DataQualityClassValidationState.js +162 -0
  94. package/lib/components/states/DataQualityClassValidationState.js.map +1 -0
  95. package/lib/components/states/DataQualityGraphFetchTreeState.d.ts +34 -0
  96. package/lib/components/states/DataQualityGraphFetchTreeState.d.ts.map +1 -0
  97. package/lib/components/states/DataQualityGraphFetchTreeState.js +70 -0
  98. package/lib/components/states/DataQualityGraphFetchTreeState.js.map +1 -0
  99. package/lib/components/states/DataQualityQueryBuilderState.d.ts +19 -0
  100. package/lib/components/states/DataQualityQueryBuilderState.d.ts.map +1 -0
  101. package/lib/components/states/DataQualityQueryBuilderState.js +19 -0
  102. package/lib/components/states/DataQualityQueryBuilderState.js.map +1 -0
  103. package/lib/components/states/DataQualityResultState.d.ts +44 -0
  104. package/lib/components/states/DataQualityResultState.d.ts.map +1 -0
  105. package/lib/components/states/DataQualityResultState.js +154 -0
  106. package/lib/components/states/DataQualityResultState.js.map +1 -0
  107. package/lib/components/states/DataQualityServiceValidationState.d.ts +25 -0
  108. package/lib/components/states/DataQualityServiceValidationState.d.ts.map +1 -0
  109. package/lib/components/states/DataQualityServiceValidationState.js +33 -0
  110. package/lib/components/states/DataQualityServiceValidationState.js.map +1 -0
  111. package/lib/components/states/DataQualityState.d.ts +67 -0
  112. package/lib/components/states/DataQualityState.d.ts.map +1 -0
  113. package/lib/components/states/DataQualityState.js +204 -0
  114. package/lib/components/states/DataQualityState.js.map +1 -0
  115. package/lib/components/utils/DataQualityGraphFetchTreeUtil.d.ts +51 -0
  116. package/lib/components/utils/DataQualityGraphFetchTreeUtil.d.ts.map +1 -0
  117. package/lib/components/utils/DataQualityGraphFetchTreeUtil.js +321 -0
  118. package/lib/components/utils/DataQualityGraphFetchTreeUtil.js.map +1 -0
  119. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts +29 -0
  120. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts.map +1 -0
  121. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js +30 -0
  122. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js.map +1 -0
  123. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts +22 -0
  124. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts.map +1 -0
  125. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js +31 -0
  126. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js.map +1 -0
  127. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.d.ts +26 -0
  128. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.d.ts.map +1 -0
  129. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js +44 -0
  130. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js.map +1 -0
  131. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts +47 -0
  132. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts.map +1 -0
  133. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js +75 -0
  134. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js.map +1 -0
  135. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts +20 -0
  136. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts.map +1 -0
  137. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js +20 -0
  138. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js.map +1 -0
  139. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.d.ts +20 -0
  140. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.d.ts.map +1 -0
  141. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.js +30 -0
  142. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.js.map +1 -0
  143. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts +26 -0
  144. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts.map +1 -0
  145. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js +57 -0
  146. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js.map +1 -0
  147. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts +7 -0
  148. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts.map +1 -0
  149. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js +42 -0
  150. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js.map +1 -0
  151. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts +24 -0
  152. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts.map +1 -0
  153. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js +98 -0
  154. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js.map +1 -0
  155. package/lib/graph-manager/index.d.ts +19 -0
  156. package/lib/graph-manager/index.d.ts.map +1 -0
  157. package/lib/graph-manager/index.js +19 -0
  158. package/lib/graph-manager/index.js.map +1 -0
  159. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts +27 -0
  160. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts.map +1 -0
  161. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js +21 -0
  162. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js.map +1 -0
  163. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts +25 -0
  164. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts.map +1 -0
  165. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js +140 -0
  166. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js.map +1 -0
  167. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.d.ts +18 -0
  168. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.d.ts.map +1 -0
  169. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js +20 -0
  170. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js.map +1 -0
  171. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts +41 -0
  172. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts.map +1 -0
  173. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js +95 -0
  174. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js.map +1 -0
  175. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts +46 -0
  176. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts.map +1 -0
  177. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js +76 -0
  178. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js.map +1 -0
  179. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.d.ts +22 -0
  180. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.d.ts.map +1 -0
  181. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.js +32 -0
  182. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.js.map +1 -0
  183. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.d.ts +22 -0
  184. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.d.ts.map +1 -0
  185. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js +31 -0
  186. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js.map +1 -0
  187. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.d.ts +24 -0
  188. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -0
  189. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.js +92 -0
  190. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.js.map +1 -0
  191. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.d.ts +20 -0
  192. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.d.ts.map +1 -0
  193. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.js +56 -0
  194. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.js.map +1 -0
  195. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.d.ts +22 -0
  196. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.d.ts.map +1 -0
  197. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.js +70 -0
  198. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.js.map +1 -0
  199. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts +29 -0
  200. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts.map +1 -0
  201. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js +80 -0
  202. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js.map +1 -0
  203. package/lib/index.css +17 -0
  204. package/lib/index.css.map +1 -0
  205. package/lib/package.json +87 -0
  206. package/package.json +87 -0
  207. package/src/components/DSL_DataQuality_ClassElementDriver.tsx +175 -0
  208. package/src/components/DSL_DataQuality_LegendStudioApplicationPlugin.tsx +220 -0
  209. package/src/components/DSL_DataQuality_LegendStudioPlugin_Extension.ts +39 -0
  210. package/src/components/DSL_DataQuality_ServiceElementDriver.tsx +57 -0
  211. package/src/components/DSL_NewDataQualityClassValidationElement.tsx +156 -0
  212. package/src/components/DSL_NewDataQualityServiceValidationElement.tsx +74 -0
  213. package/src/components/DataQualityClassValidationEditor.tsx +49 -0
  214. package/src/components/DataQualityConstraintsSelection.tsx +376 -0
  215. package/src/components/DataQualityDataSpaceBuilder.tsx +274 -0
  216. package/src/components/DataQualityExplorerPanel.tsx +584 -0
  217. package/src/components/DataQualityFilterPanel.tsx +50 -0
  218. package/src/components/DataQualityMappingAndRuntimeBuilder.tsx +224 -0
  219. package/src/components/DataQualityResultPanel.tsx +335 -0
  220. package/src/components/DataQualityResultValues.tsx +61 -0
  221. package/src/components/DataQualityServiceValidationEditor.tsx +49 -0
  222. package/src/components/DataQualitySideBar.tsx +216 -0
  223. package/src/components/DataQualityStructuralValidationsPanel.tsx +105 -0
  224. package/src/components/DataQualityTabs.tsx +104 -0
  225. package/src/components/DataQualityValidationEditor.tsx +52 -0
  226. package/src/components/constants/DataQualityConstants.ts +24 -0
  227. package/src/components/index.ts +19 -0
  228. package/src/components/states/ConstraintState.ts +70 -0
  229. package/src/components/states/DataQualityClassValidationState.ts +308 -0
  230. package/src/components/states/DataQualityGraphFetchTreeState.ts +125 -0
  231. package/src/components/states/DataQualityQueryBuilderState.ts +19 -0
  232. package/src/components/states/DataQualityResultState.ts +217 -0
  233. package/src/components/states/DataQualityServiceValidationState.ts +56 -0
  234. package/src/components/states/DataQualityState.ts +354 -0
  235. package/src/components/utils/DataQualityGraphFetchTreeUtil.ts +592 -0
  236. package/src/graph/metamodel/DSL_DataQuality_HashUtils.ts +29 -0
  237. package/src/graph/metamodel/DSL_DataQuality_PureGraphPlugin.ts +36 -0
  238. package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.ts +55 -0
  239. package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.ts +107 -0
  240. package/src/graph-manager/DSL_DataQuality_GraphManagerHelper.ts +46 -0
  241. package/src/graph-manager/DSL_DataQuality_GraphManagerPreset.ts +31 -0
  242. package/src/graph-manager/DSL_DataQuality_GraphModifierHelper.ts +113 -0
  243. package/src/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.ts +59 -0
  244. package/src/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.ts +153 -0
  245. package/src/graph-manager/index.ts +19 -0
  246. package/src/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.ts +59 -0
  247. package/src/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.ts +283 -0
  248. package/src/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.ts +27 -0
  249. package/src/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.ts +246 -0
  250. package/src/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.ts +103 -0
  251. package/src/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.ts +37 -0
  252. package/src/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.ts +36 -0
  253. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.ts +241 -0
  254. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.ts +113 -0
  255. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.ts +139 -0
  256. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.ts +186 -0
  257. package/style/_data-quality-validation-builder.scss +1660 -0
  258. package/style/index.scss +67 -0
  259. package/tsconfig.json +137 -0
  260. package/tsconfig.package.json +9 -0
@@ -0,0 +1,283 @@
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 packageJson from '../../../../package.json';
18
+ import { type PlainObject, assertType } from '@finos/legend-shared';
19
+ import {
20
+ V1_DataQualityClassValidationsConfiguration,
21
+ V1_DataQualityServiceValidationsConfiguration,
22
+ } from './v1/V1_DataQualityConstraintsConfiguration.js';
23
+ import {
24
+ DataQualityClassValidationsConfiguration,
25
+ DataQualityServiceValidationConfiguration,
26
+ } from '../../../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
27
+ import {
28
+ getOwnDataQualityClassValidationsConfiguration,
29
+ getOwnDataQualityServiceValidationsConfiguration,
30
+ } from '../../DSL_DataQuality_GraphManagerHelper.js';
31
+ import {
32
+ V1_DATA_QUALITY_PROTOCOL_TYPE,
33
+ V1_DATA_QUALITY_SERVICE_PROTOCOL_TYPE,
34
+ V1_deserializeDataQualityClassValidation,
35
+ V1_deserializeDataQualityServiceValidation,
36
+ V1_serializeDataQualityClassValidation,
37
+ V1_serializeDataQualityServiceValidation,
38
+ } from './v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js';
39
+ import {
40
+ V1_transformDataQualityExecutionContext,
41
+ V1_transformDataQualityGraphFetchTree,
42
+ } from './v1/transformation/V1_ValueSpecificationTransformer.js';
43
+ import {
44
+ V1_buildDataQualityExecutionContext,
45
+ V1_buildDataQualityGraphFetchTree,
46
+ } from './v1/transformation/V1_ValueSpecificationBuilderHelper.js';
47
+ import type { V1_DataQualityRootGraphFetchTree } from './v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js';
48
+ import {
49
+ type V1_ElementProtocolClassifierPathGetter,
50
+ type V1_ElementProtocolDeserializer,
51
+ type V1_ElementProtocolSerializer,
52
+ type V1_ElementTransformer,
53
+ type V1_GraphBuilderContext,
54
+ type V1_GraphTransformerContext,
55
+ type V1_PackageableElement,
56
+ type PackageableElement,
57
+ V1_buildFullPath,
58
+ V1_buildRawLambdaWithResolvedPaths,
59
+ V1_initPackageableElement,
60
+ V1_transformRawLambda,
61
+ V1_ElementBuilder,
62
+ V1_ProcessingContext,
63
+ PureProtocolProcessorPlugin,
64
+ } from '@finos/legend-graph';
65
+ import type { DataQualityRootGraphFetchTree } from '../../../graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js';
66
+
67
+ const DATA_QUALITY_CLASSIFIER_PATH =
68
+ 'meta::pure::metamodel::dataquality::DataQuality';
69
+
70
+ export class DSL_DataQuality_PureProtocolProcessorPlugin extends PureProtocolProcessorPlugin {
71
+ constructor() {
72
+ super(
73
+ packageJson.extensions.pureProtocolProcessorPlugin,
74
+ packageJson.version,
75
+ );
76
+ }
77
+
78
+ override V1_getExtraElementBuilders(): V1_ElementBuilder<V1_PackageableElement>[] {
79
+ return [
80
+ new V1_ElementBuilder<V1_DataQualityClassValidationsConfiguration>({
81
+ elementClassName: V1_DATA_QUALITY_PROTOCOL_TYPE,
82
+ _class: V1_DataQualityClassValidationsConfiguration,
83
+ firstPass: (
84
+ elementProtocol: V1_PackageableElement,
85
+ context: V1_GraphBuilderContext,
86
+ ): PackageableElement => {
87
+ assertType(
88
+ elementProtocol,
89
+ V1_DataQualityClassValidationsConfiguration,
90
+ );
91
+ const element = new DataQualityClassValidationsConfiguration(
92
+ elementProtocol.name,
93
+ );
94
+ const path = V1_buildFullPath(
95
+ elementProtocol.package,
96
+ elementProtocol.name,
97
+ );
98
+ context.currentSubGraph.setOwnElementInExtension(
99
+ path,
100
+ element,
101
+ DataQualityClassValidationsConfiguration,
102
+ );
103
+ return element;
104
+ },
105
+ secondPass: (
106
+ elementProtocol: V1_PackageableElement,
107
+ context: V1_GraphBuilderContext,
108
+ ): void => {
109
+ assertType(
110
+ elementProtocol,
111
+ V1_DataQualityClassValidationsConfiguration,
112
+ );
113
+ const path = V1_buildFullPath(
114
+ elementProtocol.package,
115
+ elementProtocol.name,
116
+ );
117
+ const element = getOwnDataQualityClassValidationsConfiguration(
118
+ path,
119
+ context.currentSubGraph,
120
+ );
121
+ element.context = V1_buildDataQualityExecutionContext(
122
+ elementProtocol.context,
123
+ context,
124
+ );
125
+ element.dataQualityRootGraphFetchTree =
126
+ elementProtocol.dataQualityRootGraphFetchTree
127
+ ? (V1_buildDataQualityGraphFetchTree(
128
+ elementProtocol.dataQualityRootGraphFetchTree,
129
+ context,
130
+ undefined,
131
+ [],
132
+ new V1_ProcessingContext(''),
133
+ true,
134
+ ) as DataQualityRootGraphFetchTree)
135
+ : undefined;
136
+ element.filter = elementProtocol.filter
137
+ ? V1_buildRawLambdaWithResolvedPaths(
138
+ elementProtocol.filter.parameters,
139
+ elementProtocol.filter.body,
140
+ context,
141
+ )
142
+ : undefined;
143
+ },
144
+ }),
145
+ //TODO handle service validations
146
+ new V1_ElementBuilder<V1_DataQualityServiceValidationsConfiguration>({
147
+ elementClassName: 'dataQualityServiceValidations',
148
+ _class: V1_DataQualityServiceValidationsConfiguration,
149
+ firstPass: (
150
+ elementProtocol: V1_PackageableElement,
151
+ context: V1_GraphBuilderContext,
152
+ ): PackageableElement => {
153
+ assertType(
154
+ elementProtocol,
155
+ V1_DataQualityServiceValidationsConfiguration,
156
+ );
157
+ const element = new DataQualityServiceValidationConfiguration(
158
+ elementProtocol.name,
159
+ );
160
+ const path = V1_buildFullPath(
161
+ elementProtocol.package,
162
+ elementProtocol.name,
163
+ );
164
+ context.currentSubGraph.setOwnElementInExtension(
165
+ path,
166
+ element,
167
+ DataQualityServiceValidationConfiguration,
168
+ );
169
+ return element;
170
+ },
171
+ secondPass: (
172
+ elementProtocol: V1_PackageableElement,
173
+ context: V1_GraphBuilderContext,
174
+ ): void => {
175
+ assertType(
176
+ elementProtocol,
177
+ V1_DataQualityServiceValidationsConfiguration,
178
+ );
179
+ const path = V1_buildFullPath(
180
+ elementProtocol.package,
181
+ elementProtocol.name,
182
+ );
183
+ const element = getOwnDataQualityServiceValidationsConfiguration(
184
+ path,
185
+ context.currentSubGraph,
186
+ );
187
+ element.contextName = elementProtocol.contextName;
188
+ element.serviceName = elementProtocol.serviceName;
189
+ element.dataQualityRootGraphFetchTree =
190
+ elementProtocol.dataQualityRootGraphFetchTree
191
+ ? (V1_buildDataQualityGraphFetchTree(
192
+ elementProtocol.dataQualityRootGraphFetchTree,
193
+ context,
194
+ undefined,
195
+ [],
196
+ new V1_ProcessingContext(''),
197
+ true,
198
+ ) as DataQualityRootGraphFetchTree)
199
+ : undefined;
200
+ },
201
+ }),
202
+ ];
203
+ }
204
+
205
+ override V1_getExtraElementClassifierPathGetters(): V1_ElementProtocolClassifierPathGetter[] {
206
+ return [
207
+ (protocol: V1_PackageableElement): string | undefined => {
208
+ if (protocol instanceof V1_DataQualityClassValidationsConfiguration) {
209
+ return DATA_QUALITY_CLASSIFIER_PATH;
210
+ }
211
+ return undefined;
212
+ },
213
+ ];
214
+ }
215
+
216
+ override V1_getExtraElementProtocolSerializers(): V1_ElementProtocolSerializer[] {
217
+ return [
218
+ (
219
+ protocol: V1_PackageableElement,
220
+ plugins: PureProtocolProcessorPlugin[],
221
+ ): PlainObject<V1_PackageableElement> | undefined => {
222
+ if (protocol instanceof V1_DataQualityClassValidationsConfiguration) {
223
+ return V1_serializeDataQualityClassValidation(protocol);
224
+ }
225
+ if (protocol instanceof V1_DataQualityServiceValidationsConfiguration) {
226
+ return V1_serializeDataQualityServiceValidation(protocol);
227
+ }
228
+ return undefined;
229
+ },
230
+ ];
231
+ }
232
+
233
+ override V1_getExtraElementProtocolDeserializers(): V1_ElementProtocolDeserializer[] {
234
+ return [
235
+ (
236
+ json: PlainObject<V1_PackageableElement>,
237
+ plugins: PureProtocolProcessorPlugin[],
238
+ ): V1_PackageableElement | undefined => {
239
+ if (json._type === V1_DATA_QUALITY_PROTOCOL_TYPE) {
240
+ return V1_deserializeDataQualityClassValidation(json);
241
+ }
242
+ if (json._type === V1_DATA_QUALITY_SERVICE_PROTOCOL_TYPE) {
243
+ return V1_deserializeDataQualityServiceValidation(json);
244
+ }
245
+ return undefined;
246
+ },
247
+ ];
248
+ }
249
+
250
+ override V1_getExtraElementTransformers(): V1_ElementTransformer[] {
251
+ return [
252
+ (
253
+ metamodel: PackageableElement,
254
+ context: V1_GraphTransformerContext,
255
+ ): V1_PackageableElement | undefined => {
256
+ if (metamodel instanceof DataQualityClassValidationsConfiguration) {
257
+ const protocol = new V1_DataQualityClassValidationsConfiguration();
258
+ V1_initPackageableElement(protocol, metamodel);
259
+ protocol.name = metamodel.name;
260
+ protocol.package = metamodel.package?.path ?? '';
261
+ protocol.dataQualityRootGraphFetchTree =
262
+ metamodel.dataQualityRootGraphFetchTree
263
+ ? (V1_transformDataQualityGraphFetchTree(
264
+ metamodel.dataQualityRootGraphFetchTree,
265
+ [],
266
+ new Map<string, unknown[]>(),
267
+ false,
268
+ false,
269
+ ) as V1_DataQualityRootGraphFetchTree)
270
+ : undefined;
271
+ protocol.context = V1_transformDataQualityExecutionContext(
272
+ metamodel.context,
273
+ );
274
+ protocol.filter = metamodel.filter
275
+ ? V1_transformRawLambda(metamodel.filter, context)
276
+ : undefined;
277
+ return protocol;
278
+ }
279
+ return undefined;
280
+ },
281
+ ];
282
+ }
283
+ }
@@ -0,0 +1,27 @@
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 type {
18
+ AbstractPureGraphManager,
19
+ AbstractPureGraphManagerExtension,
20
+ } from '@finos/legend-graph';
21
+ import { V1_DSL_Data_Quality_PureGraphManagerExtension } from './v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js';
22
+
23
+ export const DSL_DataQuality_buildGraphManagerExtension = (
24
+ graphManager: AbstractPureGraphManager,
25
+ ): AbstractPureGraphManagerExtension =>
26
+ // NOTE: until we support more client versions, we always default to return V1
27
+ new V1_DSL_Data_Quality_PureGraphManagerExtension(graphManager);
@@ -0,0 +1,246 @@
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 AbstractPureGraphManager,
19
+ type RawExecutionPlan,
20
+ type ExecutionResult,
21
+ type PureModel,
22
+ type RootGraphFetchTree,
23
+ type GraphDataOrigin,
24
+ type V1_RootGraphFetchTree,
25
+ type V1_PureModelContext,
26
+ LegendSDLC,
27
+ PureClientVersion,
28
+ V1_GraphBuilderContextBuilder,
29
+ V1_LegendSDLC,
30
+ V1_ProcessingContext,
31
+ V1_Protocol,
32
+ V1_PureGraphManager,
33
+ V1_PureModelContextPointer,
34
+ V1_pureModelContextPropSchema,
35
+ } from '@finos/legend-graph';
36
+ import { createModelSchema, optional, primitive } from 'serializr';
37
+ import {
38
+ guaranteeType,
39
+ SerializationFactory,
40
+ UnsupportedOperationError,
41
+ } from '@finos/legend-shared';
42
+ import { DSL_DataQuality_PureGraphManagerExtension } from '../DSL_DataQuality_PureGraphManagerExtension.js';
43
+ import {
44
+ V1_transformRootGraphFetchTreeToDataQualityRootGraphFetchTree,
45
+ V1_buildDataQualityGraphFetchTree,
46
+ } from './transformation/V1_ValueSpecificationBuilderHelper.js';
47
+ import type { DataQualityRootGraphFetchTree } from '../../../../graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js';
48
+
49
+ const DQ_GENERATE_EXECUTION_PLAN = 'generate execution plan';
50
+ const DQ_EXECUTE_PLAN = 'execute plan';
51
+ const DQ_DEBUG_EXECUTION_PLAN = 'debug execution plan';
52
+ const DQ_FETCH_PROPERTY_PATH_TREE = 'dq fetch property path tree';
53
+
54
+ export class V1_DQExecuteInput {
55
+ clientVersion: string | undefined;
56
+ model!: V1_PureModelContext;
57
+ packagePath!: string;
58
+ queryLimit: number | undefined;
59
+
60
+ static readonly serialization = new SerializationFactory(
61
+ createModelSchema(V1_DQExecuteInput, {
62
+ clientVersion: optional(primitive()),
63
+ model: V1_pureModelContextPropSchema,
64
+ packagePath: primitive(),
65
+ queryLimit: optional(primitive()),
66
+ }),
67
+ );
68
+ }
69
+
70
+ export class V1_DSL_Data_Quality_PureGraphManagerExtension extends DSL_DataQuality_PureGraphManagerExtension {
71
+ declare graphManager: V1_PureGraphManager;
72
+ static readonly DEV_PROTOCOL_VERSION = PureClientVersion.VX_X_X;
73
+
74
+ constructor(graphManager: AbstractPureGraphManager) {
75
+ super(graphManager);
76
+ this.graphManager = guaranteeType(graphManager, V1_PureGraphManager);
77
+ }
78
+
79
+ getSupportedProtocolVersion(): string {
80
+ return PureClientVersion.V1_0_0;
81
+ }
82
+
83
+ private buildPureModelSDLCPointer(
84
+ origin: GraphDataOrigin,
85
+ clientVersion: string | undefined,
86
+ ): V1_PureModelContextPointer {
87
+ if (origin instanceof LegendSDLC) {
88
+ return new V1_PureModelContextPointer(
89
+ clientVersion
90
+ ? new V1_Protocol(
91
+ V1_PureGraphManager.PURE_PROTOCOL_NAME,
92
+ clientVersion,
93
+ )
94
+ : undefined,
95
+ new V1_LegendSDLC(origin.groupId, origin.artifactId, origin.versionId),
96
+ );
97
+ }
98
+ throw new UnsupportedOperationError('Unsupported graph origin');
99
+ }
100
+
101
+ createExecutionInput(
102
+ graph: PureModel,
103
+ packagePath: string,
104
+ clientVersion: string | undefined,
105
+ previewLimit: number | undefined,
106
+ dqExecuteInput: V1_DQExecuteInput,
107
+ ): V1_DQExecuteInput {
108
+ dqExecuteInput.clientVersion = clientVersion;
109
+ dqExecuteInput.model = graph.origin
110
+ ? this.buildPureModelSDLCPointer(graph.origin, undefined)
111
+ : this.graphManager.getFullGraphModelData(graph);
112
+ dqExecuteInput.packagePath = packagePath;
113
+ dqExecuteInput.queryLimit = previewLimit;
114
+ return dqExecuteInput;
115
+ }
116
+
117
+ generatePlan = async (
118
+ graph: PureModel,
119
+ packagePath: string,
120
+ ): Promise<RawExecutionPlan> => {
121
+ const input = this.createExecutionInput(
122
+ graph,
123
+ packagePath,
124
+ V1_DSL_Data_Quality_PureGraphManagerExtension.DEV_PROTOCOL_VERSION,
125
+ undefined,
126
+ new V1_DQExecuteInput(),
127
+ );
128
+
129
+ const serializedInput = V1_DQExecuteInput.serialization.toJson(input);
130
+
131
+ const engineServerClient = this.graphManager.engine.getEngineServerClient();
132
+
133
+ return engineServerClient.postWithTracing(
134
+ engineServerClient.getTraceData(DQ_GENERATE_EXECUTION_PLAN),
135
+ `${engineServerClient._pure()}/dataquality/generatePlan`,
136
+ serializedInput,
137
+ {},
138
+ undefined,
139
+ undefined,
140
+ { enableCompression: true },
141
+ );
142
+ };
143
+
144
+ execute = async (
145
+ graph: PureModel,
146
+ packagePath: string,
147
+ previewLimit: number,
148
+ ): Promise<ExecutionResult> => {
149
+ const input = this.createExecutionInput(
150
+ graph,
151
+ packagePath,
152
+ V1_DSL_Data_Quality_PureGraphManagerExtension.DEV_PROTOCOL_VERSION,
153
+ previewLimit,
154
+ new V1_DQExecuteInput(),
155
+ );
156
+
157
+ const serializedInput = V1_DQExecuteInput.serialization.toJson(input);
158
+ const engineServerClient = this.graphManager.engine.getEngineServerClient();
159
+
160
+ return engineServerClient.postWithTracing(
161
+ engineServerClient.getTraceData(DQ_EXECUTE_PLAN),
162
+ `${engineServerClient._pure()}/dataquality/execute`,
163
+ serializedInput,
164
+ {},
165
+ undefined,
166
+ undefined,
167
+ { enableCompression: true },
168
+ );
169
+ };
170
+
171
+ debugExecutionPlanGeneration = async (
172
+ graph: PureModel,
173
+ packagePath: string,
174
+ ): Promise<{ plan: RawExecutionPlan; debug: string }> => {
175
+ const input = this.createExecutionInput(
176
+ graph,
177
+ packagePath,
178
+ V1_DSL_Data_Quality_PureGraphManagerExtension.DEV_PROTOCOL_VERSION,
179
+ undefined,
180
+ new V1_DQExecuteInput(),
181
+ );
182
+
183
+ const serializedInput = V1_DQExecuteInput.serialization.toJson(input);
184
+ const engineServerClient = this.graphManager.engine.getEngineServerClient();
185
+
186
+ const result: { plan: RawExecutionPlan; debug: string[] } =
187
+ await engineServerClient.postWithTracing(
188
+ engineServerClient.getTraceData(DQ_DEBUG_EXECUTION_PLAN),
189
+ `${engineServerClient._pure()}/dataquality/debugPlan`,
190
+ serializedInput,
191
+ {},
192
+ undefined,
193
+ undefined,
194
+ { enableCompression: true },
195
+ );
196
+ return {
197
+ plan: result.plan,
198
+ debug: result.debug.join('\n'),
199
+ };
200
+ };
201
+
202
+ fetchStructuralValidations = async (
203
+ graph: PureModel,
204
+ packagePath: string,
205
+ ): Promise<RootGraphFetchTree> => {
206
+ const engineServerClient = this.graphManager.engine.getEngineServerClient();
207
+ const input = this.createExecutionInput(
208
+ graph,
209
+ packagePath,
210
+ V1_DSL_Data_Quality_PureGraphManagerExtension.DEV_PROTOCOL_VERSION,
211
+ undefined,
212
+ new V1_DQExecuteInput(),
213
+ );
214
+
215
+ const serializedInput = V1_DQExecuteInput.serialization.toJson(input);
216
+ const V1_rootGraphFetchTree: V1_RootGraphFetchTree =
217
+ await engineServerClient.postWithTracing(
218
+ engineServerClient.getTraceData(DQ_FETCH_PROPERTY_PATH_TREE),
219
+ `${engineServerClient._pure()}/dataquality/propertyPathTree`,
220
+ serializedInput,
221
+ {},
222
+ undefined,
223
+ undefined,
224
+ { enableCompression: true },
225
+ );
226
+
227
+ const V1_dataQualityRootGraphFetchTree =
228
+ V1_transformRootGraphFetchTreeToDataQualityRootGraphFetchTree(
229
+ V1_rootGraphFetchTree,
230
+ );
231
+ const context = new V1_GraphBuilderContextBuilder(
232
+ graph,
233
+ graph,
234
+ this.graphManager.graphBuilderExtensions,
235
+ this.graphManager.logService,
236
+ ).build();
237
+ return V1_buildDataQualityGraphFetchTree(
238
+ V1_dataQualityRootGraphFetchTree,
239
+ context,
240
+ undefined,
241
+ [],
242
+ new V1_ProcessingContext(''),
243
+ true,
244
+ ) as DataQualityRootGraphFetchTree;
245
+ };
246
+ }
@@ -0,0 +1,103 @@
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 V1_PackageableElementVisitor,
19
+ type V1_PackageableElementPointer,
20
+ type V1_RawLambda,
21
+ V1_PackageableElement,
22
+ } from '@finos/legend-graph';
23
+ import { type Hashable, hashArray } from '@finos/legend-shared';
24
+ import { DATA_QUALITY_HASH_STRUCTURE } from '../../../../graph/metamodel/DSL_DataQuality_HashUtils.js';
25
+ import { type V1_DataQualityRootGraphFetchTree } from './model/graphFetch/V1_DataQualityRootGraphFetchTree.js';
26
+
27
+ export abstract class V1_DataQualityExecutionContext implements Hashable {
28
+ abstract get hashCode(): string;
29
+ }
30
+
31
+ export class V1_DataSpaceDataQualityExecutionContext extends V1_DataQualityExecutionContext {
32
+ context!: string;
33
+ dataSpace!: V1_PackageableElementPointer;
34
+
35
+ override get hashCode(): string {
36
+ return hashArray([
37
+ DATA_QUALITY_HASH_STRUCTURE.DATA_QUALTIY_DATASPACE_EXECUTION_CONTEXT,
38
+ this.context,
39
+ this.dataSpace.path,
40
+ ]);
41
+ }
42
+ }
43
+
44
+ export class V1_MappingAndRuntimeDataQualityExecutionContext extends V1_DataQualityExecutionContext {
45
+ mapping!: V1_PackageableElementPointer;
46
+ runtime!: V1_PackageableElementPointer;
47
+
48
+ override get hashCode(): string {
49
+ return hashArray([
50
+ DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_MAPPING_AND_RUNTIME_EXECUTION_CONTEXT,
51
+ this.mapping.path,
52
+ this.runtime.path,
53
+ ]);
54
+ }
55
+ }
56
+
57
+ export class V1_DataQualityClassValidationsConfiguration
58
+ extends V1_PackageableElement
59
+ implements Hashable
60
+ {
61
+ context!: V1_DataQualityExecutionContext;
62
+ dataQualityRootGraphFetchTree: V1_DataQualityRootGraphFetchTree | undefined;
63
+ filter?: V1_RawLambda | undefined;
64
+
65
+ override get hashCode(): string {
66
+ return hashArray([
67
+ DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_CONSTRAINTS_CONFIGURATION,
68
+ this.context,
69
+ this.filter ?? '',
70
+ this.dataQualityRootGraphFetchTree ?? '',
71
+ ]);
72
+ }
73
+
74
+ accept_PackageableElementVisitor<T>(
75
+ visitor: V1_PackageableElementVisitor<T>,
76
+ ): T {
77
+ return visitor.visit_PackageableElement(this);
78
+ }
79
+ }
80
+
81
+ export class V1_DataQualityServiceValidationsConfiguration
82
+ extends V1_PackageableElement
83
+ implements Hashable
84
+ {
85
+ contextName?: string | undefined;
86
+ serviceName?: string | undefined;
87
+ dataQualityRootGraphFetchTree?: V1_DataQualityRootGraphFetchTree | undefined;
88
+
89
+ override get hashCode(): string {
90
+ return hashArray([
91
+ DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_SERVICE_VALIDATION_CONFIGURATION,
92
+ this.contextName ?? '',
93
+ this.serviceName ?? '',
94
+ this.dataQualityRootGraphFetchTree ?? '',
95
+ ]);
96
+ }
97
+
98
+ accept_PackageableElementVisitor<T>(
99
+ visitor: V1_PackageableElementVisitor<T>,
100
+ ): T {
101
+ return visitor.visit_PackageableElement(this);
102
+ }
103
+ }
@@ -0,0 +1,37 @@
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 { V1_PropertyGraphFetchTree } from '@finos/legend-graph';
18
+ import { type Hashable, hashArray } from '@finos/legend-shared';
19
+ import { DATA_QUALITY_HASH_STRUCTURE } from '../../../../../../graph/metamodel/DSL_DataQuality_HashUtils.js';
20
+
21
+ export class V1_DataQualityPropertyGraphFetchTree
22
+ extends V1_PropertyGraphFetchTree
23
+ implements Hashable
24
+ {
25
+ constraints: string[] = [];
26
+
27
+ override get hashCode(): string {
28
+ return hashArray([
29
+ DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_PROPERTY_GRAPH_FETCH_TREE,
30
+ hashArray(this.subTrees),
31
+ this.property,
32
+ this.alias ?? '',
33
+ this.subType ?? '',
34
+ hashArray(this.constraints),
35
+ ]);
36
+ }
37
+ }