@finos/legend-extension-dsl-data-quality 1.0.61 → 2.0.1
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.
- package/lib/components/{DSL_DataQuality_ClassElementDriver.d.ts → DSL_DataQuality_ElementDriver.d.ts} +17 -7
- package/lib/components/DSL_DataQuality_ElementDriver.d.ts.map +1 -0
- package/lib/components/{DSL_DataQuality_ClassElementDriver.js → DSL_DataQuality_ElementDriver.js} +70 -23
- package/lib/components/DSL_DataQuality_ElementDriver.js.map +1 -0
- package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts.map +1 -1
- package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js +20 -39
- package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js.map +1 -1
- package/lib/components/{DSL_NewDataQualityClassValidationElement.d.ts → DSL_NewDataQualityValidationElement.d.ts} +2 -2
- package/lib/components/DSL_NewDataQualityValidationElement.d.ts.map +1 -0
- package/lib/components/DSL_NewDataQualityValidationElement.js +80 -0
- package/lib/components/DSL_NewDataQualityValidationElement.js.map +1 -0
- package/lib/components/DataQualityRelationTrialRuns.d.ts +22 -0
- package/lib/components/DataQualityRelationTrialRuns.d.ts.map +1 -0
- package/lib/components/DataQualityRelationTrialRuns.js +87 -0
- package/lib/components/DataQualityRelationTrialRuns.js.map +1 -0
- package/lib/components/{DSL_NewDataQualityServiceValidationElement.d.ts → DataQualityRelationValidationConfigurationEditor.d.ts} +2 -2
- package/lib/components/DataQualityRelationValidationConfigurationEditor.d.ts.map +1 -0
- package/lib/components/DataQualityRelationValidationConfigurationEditor.js +99 -0
- package/lib/components/DataQualityRelationValidationConfigurationEditor.js.map +1 -0
- package/lib/components/DataQualityRelationValidationEditor.d.ts +30 -0
- package/lib/components/DataQualityRelationValidationEditor.d.ts.map +1 -0
- package/lib/components/DataQualityRelationValidationEditor.js +89 -0
- package/lib/components/DataQualityRelationValidationEditor.js.map +1 -0
- package/lib/components/DataQualityResultPanel.d.ts.map +1 -1
- package/lib/components/DataQualityResultPanel.js +1 -1
- package/lib/components/DataQualityResultPanel.js.map +1 -1
- package/lib/components/DataQualityResultValues.d.ts +0 -2
- package/lib/components/DataQualityResultValues.d.ts.map +1 -1
- package/lib/components/DataQualityResultValues.js.map +1 -1
- package/lib/components/DataQualitySideBar.js +2 -2
- package/lib/components/DataQualitySideBar.js.map +1 -1
- package/lib/components/DataQualityValidationDetailPanel.d.ts +36 -0
- package/lib/components/DataQualityValidationDetailPanel.d.ts.map +1 -0
- package/lib/components/DataQualityValidationDetailPanel.js +39 -0
- package/lib/components/DataQualityValidationDetailPanel.js.map +1 -0
- package/lib/components/DataQualityValidationParametersEditor.d.ts +15 -0
- package/lib/components/DataQualityValidationParametersEditor.d.ts.map +1 -0
- package/lib/components/DataQualityValidationParametersEditor.js +129 -0
- package/lib/components/DataQualityValidationParametersEditor.js.map +1 -0
- package/lib/components/states/ConstraintState.d.ts +2 -0
- package/lib/components/states/ConstraintState.d.ts.map +1 -1
- package/lib/components/states/ConstraintState.js +2 -0
- package/lib/components/states/ConstraintState.js.map +1 -1
- package/lib/components/states/DataQualityClassValidationState.d.ts +2 -2
- package/lib/components/states/DataQualityClassValidationState.d.ts.map +1 -1
- package/lib/components/states/DataQualityClassValidationState.js +4 -4
- package/lib/components/states/DataQualityClassValidationState.js.map +1 -1
- package/lib/components/states/DataQualityRelationResultState.d.ts +46 -0
- package/lib/components/states/DataQualityRelationResultState.d.ts.map +1 -0
- package/lib/components/states/DataQualityRelationResultState.js +194 -0
- package/lib/components/states/DataQualityRelationResultState.js.map +1 -0
- package/lib/components/states/DataQualityRelationValidationConfigurationState.d.ts +73 -0
- package/lib/components/states/DataQualityRelationValidationConfigurationState.d.ts.map +1 -0
- package/lib/components/states/DataQualityRelationValidationConfigurationState.js +255 -0
- package/lib/components/states/DataQualityRelationValidationConfigurationState.js.map +1 -0
- package/lib/components/states/DataQualityRelationValidationLambdaEditorState.d.ts +32 -0
- package/lib/components/states/DataQualityRelationValidationLambdaEditorState.d.ts.map +1 -0
- package/lib/components/states/DataQualityRelationValidationLambdaEditorState.js +79 -0
- package/lib/components/states/DataQualityRelationValidationLambdaEditorState.js.map +1 -0
- package/lib/components/states/DataQualityRelationValidationState.d.ts +38 -0
- package/lib/components/states/DataQualityRelationValidationState.d.ts.map +1 -0
- package/lib/components/states/DataQualityRelationValidationState.js +119 -0
- package/lib/components/states/DataQualityRelationValidationState.js.map +1 -0
- package/lib/components/states/DataQualityResultState.d.ts.map +1 -1
- package/lib/components/states/DataQualityResultState.js +6 -3
- package/lib/components/states/DataQualityResultState.js.map +1 -1
- package/lib/components/states/DataQualityState.js +1 -1
- package/lib/components/states/DataQualityState.js.map +1 -1
- package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts +5 -1
- package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts.map +1 -1
- package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js +4 -0
- package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js.map +1 -1
- package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts.map +1 -1
- package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js +2 -1
- package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js.map +1 -1
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts +36 -3
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts.map +1 -1
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js +58 -4
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js.map +1 -1
- package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts +2 -1
- package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts.map +1 -1
- package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js +2 -1
- package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js.map +1 -1
- package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts +13 -2
- package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts.map +1 -1
- package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js +36 -2
- package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js.map +1 -1
- package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts.map +1 -1
- package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js +5 -2
- package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js.map +1 -1
- package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts +5 -1
- package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts.map +1 -1
- package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js +29 -2
- package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts +6 -5
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js +34 -40
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts +8 -6
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js +19 -12
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/{V1_DataQualityConstraintsConfiguration.d.ts → V1_DataQualityValidationConfiguration.d.ts} +26 -4
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationConfiguration.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/{V1_DataQualityConstraintsConfiguration.js → V1_DataQualityValidationConfiguration.js} +49 -4
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationConfiguration.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationBuilderHelper.d.ts +7 -3
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationBuilderHelper.js +43 -3
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationTransformer.d.ts +6 -3
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationTransformer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationTransformer.js +39 -2
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationTransformer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts +5 -2
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js +27 -9
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/package.json +7 -7
- package/src/components/{DSL_DataQuality_ClassElementDriver.tsx → DSL_DataQuality_ElementDriver.tsx} +87 -18
- package/src/components/DSL_DataQuality_LegendStudioApplicationPlugin.tsx +33 -48
- package/src/components/DSL_NewDataQualityValidationElement.tsx +208 -0
- package/src/components/DataQualityRelationTrialRuns.tsx +288 -0
- package/src/components/DataQualityRelationValidationConfigurationEditor.tsx +364 -0
- package/src/components/DataQualityRelationValidationEditor.tsx +290 -0
- package/src/components/DataQualityResultPanel.tsx +1 -4
- package/src/components/DataQualityResultValues.tsx +1 -5
- package/src/components/DataQualitySideBar.tsx +2 -2
- package/src/components/DataQualityValidationDetailPanel.tsx +182 -0
- package/src/components/DataQualityValidationParametersEditor.tsx +355 -0
- package/src/components/states/ConstraintState.ts +2 -0
- package/src/components/states/DataQualityClassValidationState.ts +5 -5
- package/src/components/states/DataQualityRelationResultState.ts +274 -0
- package/src/components/states/DataQualityRelationValidationConfigurationState.ts +429 -0
- package/src/components/states/DataQualityRelationValidationLambdaEditorState.ts +138 -0
- package/src/components/states/DataQualityRelationValidationState.ts +180 -0
- package/src/components/states/DataQualityResultState.ts +6 -8
- package/src/components/states/DataQualityState.ts +1 -1
- package/src/graph/metamodel/DSL_DataQuality_HashUtils.ts +4 -0
- package/src/graph/metamodel/DSL_DataQuality_PureGraphPlugin.ts +2 -0
- package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.ts +79 -3
- package/src/graph-manager/DSL_DataQuality_GraphManagerHelper.ts +13 -0
- package/src/graph-manager/DSL_DataQuality_GraphModifierHelper.ts +107 -0
- package/src/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.ts +8 -0
- package/src/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.ts +54 -1
- package/src/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.ts +5 -3
- package/src/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.ts +72 -81
- package/src/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.ts +20 -23
- package/src/graph-manager/protocol/pure/v1/{V1_DataQualityConstraintsConfiguration.ts → V1_DataQualityValidationConfiguration.ts} +63 -4
- package/src/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationBuilderHelper.ts +116 -2
- package/src/graph-manager/protocol/pure/v1/transformation/V1_DSL_DataQuality_ValueSpecificationTransformer.ts +78 -1
- package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.ts +55 -8
- package/style/_data-quality-relation-validation-builder.scss +454 -0
- package/style/index.scss +6 -0
- package/tsconfig.json +13 -6
- package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts.map +0 -1
- package/lib/components/DSL_DataQuality_ClassElementDriver.js.map +0 -1
- package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts +0 -27
- package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts.map +0 -1
- package/lib/components/DSL_DataQuality_ServiceElementDriver.js +0 -41
- package/lib/components/DSL_DataQuality_ServiceElementDriver.js.map +0 -1
- package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts.map +0 -1
- package/lib/components/DSL_NewDataQualityClassValidationElement.js +0 -64
- package/lib/components/DSL_NewDataQualityClassValidationElement.js.map +0 -1
- package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts.map +0 -1
- package/lib/components/DSL_NewDataQualityServiceValidationElement.js +0 -41
- package/lib/components/DSL_NewDataQualityServiceValidationElement.js.map +0 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts.map +0 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js.map +0 -1
- package/src/components/DSL_DataQuality_ServiceElementDriver.tsx +0 -57
- package/src/components/DSL_NewDataQualityClassValidationElement.tsx +0 -156
- package/src/components/DSL_NewDataQualityServiceValidationElement.tsx +0 -74
@@ -0,0 +1,180 @@
|
|
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
|
+
import {
|
17
|
+
type DataQualityRelationValidation,
|
18
|
+
RelationValidationType,
|
19
|
+
} from '../../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
20
|
+
import { type EditorStore } from '@finos/legend-application-studio';
|
21
|
+
import { action, makeObservable, observable } from 'mobx';
|
22
|
+
import {
|
23
|
+
type GeneratorFn,
|
24
|
+
assertErrorThrown,
|
25
|
+
hashArray,
|
26
|
+
LogEvent,
|
27
|
+
} from '@finos/legend-shared';
|
28
|
+
import {
|
29
|
+
type RawLambda,
|
30
|
+
buildSourceInformationSourceId,
|
31
|
+
GRAPH_MANAGER_EVENT,
|
32
|
+
isStubbed_RawLambda,
|
33
|
+
ParserError,
|
34
|
+
stub_RawLambda,
|
35
|
+
} from '@finos/legend-graph';
|
36
|
+
import { LambdaEditorState } from '@finos/legend-query-builder';
|
37
|
+
import { VALIDATION_SOURCE_ID_LABEL } from './ConstraintState.js';
|
38
|
+
import {
|
39
|
+
dataQualityRelationValidation_setAssertion,
|
40
|
+
dataQualityRelationValidation_setType,
|
41
|
+
} from '../../graph-manager/DSL_DataQuality_GraphModifierHelper.js';
|
42
|
+
import { DATA_QUALITY_HASH_STRUCTURE } from '../../graph/metamodel/DSL_DataQuality_HashUtils.js';
|
43
|
+
import { DataQualityRelationValidationLambdaEditorState } from './DataQualityRelationValidationLambdaEditorState.js';
|
44
|
+
import type { SelectOption } from '@finos/legend-art';
|
45
|
+
|
46
|
+
export class DataQualityRelationValidationState extends LambdaEditorState {
|
47
|
+
relationValidation: DataQualityRelationValidation;
|
48
|
+
editorStore: EditorStore;
|
49
|
+
isValidationDialogOpen = false;
|
50
|
+
rowMapFunctionLambdaEditorState:
|
51
|
+
| DataQualityRelationValidationLambdaEditorState
|
52
|
+
| undefined;
|
53
|
+
constructor(
|
54
|
+
relationValidation: DataQualityRelationValidation,
|
55
|
+
editorStore: EditorStore,
|
56
|
+
) {
|
57
|
+
super('true', '');
|
58
|
+
|
59
|
+
makeObservable(this, {
|
60
|
+
relationValidation: observable,
|
61
|
+
editorStore: observable,
|
62
|
+
isValidationDialogOpen: observable,
|
63
|
+
setIsValidationDialogOpen: action,
|
64
|
+
onValidationTypeChange: action,
|
65
|
+
});
|
66
|
+
|
67
|
+
this.relationValidation = relationValidation;
|
68
|
+
this.editorStore = editorStore;
|
69
|
+
this.rowMapFunctionLambdaEditorState =
|
70
|
+
relationValidation.type === RelationValidationType.AGGREGATE
|
71
|
+
? new DataQualityRelationValidationLambdaEditorState(
|
72
|
+
relationValidation,
|
73
|
+
editorStore,
|
74
|
+
)
|
75
|
+
: undefined;
|
76
|
+
}
|
77
|
+
|
78
|
+
get lambdaId(): string {
|
79
|
+
return buildSourceInformationSourceId([
|
80
|
+
VALIDATION_SOURCE_ID_LABEL,
|
81
|
+
this.relationValidation.name,
|
82
|
+
this.uuid, // in case of duplications
|
83
|
+
]);
|
84
|
+
}
|
85
|
+
|
86
|
+
setIsValidationDialogOpen(isValidationDialogOpen: boolean): void {
|
87
|
+
this.isValidationDialogOpen = isValidationDialogOpen;
|
88
|
+
}
|
89
|
+
|
90
|
+
onValidationTypeChange(val: SelectOption): void {
|
91
|
+
dataQualityRelationValidation_setType(
|
92
|
+
this.relationValidation,
|
93
|
+
val.value as RelationValidationType,
|
94
|
+
);
|
95
|
+
if (val.value === RelationValidationType.AGGREGATE) {
|
96
|
+
this.rowMapFunctionLambdaEditorState =
|
97
|
+
new DataQualityRelationValidationLambdaEditorState(
|
98
|
+
this.relationValidation,
|
99
|
+
this.editorStore,
|
100
|
+
);
|
101
|
+
} else {
|
102
|
+
this.rowMapFunctionLambdaEditorState = undefined;
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
*convertLambdaGrammarStringToObject(): GeneratorFn<void> {
|
107
|
+
const emptyFunctionDefinition = stub_RawLambda();
|
108
|
+
if (this.lambdaString) {
|
109
|
+
try {
|
110
|
+
const lambda =
|
111
|
+
(yield this.editorStore.graphManagerState.graphManager.pureCodeToLambda(
|
112
|
+
this.fullLambdaString,
|
113
|
+
this.lambdaId,
|
114
|
+
)) as RawLambda;
|
115
|
+
this.setParserError(undefined);
|
116
|
+
dataQualityRelationValidation_setAssertion(
|
117
|
+
this.relationValidation,
|
118
|
+
lambda,
|
119
|
+
);
|
120
|
+
} catch (error) {
|
121
|
+
assertErrorThrown(error);
|
122
|
+
if (error instanceof ParserError) {
|
123
|
+
this.setParserError(error);
|
124
|
+
}
|
125
|
+
this.editorStore.applicationStore.logService.error(
|
126
|
+
LogEvent.create(GRAPH_MANAGER_EVENT.PARSING_FAILURE),
|
127
|
+
error,
|
128
|
+
);
|
129
|
+
}
|
130
|
+
} else {
|
131
|
+
this.clearErrors();
|
132
|
+
dataQualityRelationValidation_setAssertion(
|
133
|
+
this.relationValidation,
|
134
|
+
emptyFunctionDefinition,
|
135
|
+
);
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
*convertLambdaObjectToGrammarString(options?: {
|
140
|
+
pretty?: boolean | undefined;
|
141
|
+
preserveCompilationError?: boolean | undefined;
|
142
|
+
}): GeneratorFn<void> {
|
143
|
+
if (!isStubbed_RawLambda(this.relationValidation.assertion)) {
|
144
|
+
try {
|
145
|
+
const lambdas = new Map<string, RawLambda>();
|
146
|
+
lambdas.set(this.lambdaId, this.relationValidation.assertion);
|
147
|
+
const isolatedLambdas =
|
148
|
+
(yield this.editorStore.graphManagerState.graphManager.lambdasToPureCode(
|
149
|
+
lambdas,
|
150
|
+
options?.pretty,
|
151
|
+
)) as Map<string, string>;
|
152
|
+
const grammarText = isolatedLambdas.get(this.lambdaId);
|
153
|
+
this.setLambdaString(
|
154
|
+
grammarText !== undefined
|
155
|
+
? this.extractLambdaString(grammarText)
|
156
|
+
: '',
|
157
|
+
);
|
158
|
+
this.clearErrors({
|
159
|
+
preserveCompilationError: options?.preserveCompilationError,
|
160
|
+
});
|
161
|
+
} catch (error) {
|
162
|
+
assertErrorThrown(error);
|
163
|
+
this.editorStore.applicationStore.logService.error(
|
164
|
+
LogEvent.create(GRAPH_MANAGER_EVENT.PARSING_FAILURE),
|
165
|
+
error,
|
166
|
+
);
|
167
|
+
}
|
168
|
+
} else {
|
169
|
+
this.clearErrors();
|
170
|
+
this.setLambdaString('');
|
171
|
+
}
|
172
|
+
}
|
173
|
+
|
174
|
+
get hashCode(): string {
|
175
|
+
return hashArray([
|
176
|
+
DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_RELATION_VALIDATION,
|
177
|
+
this.lambdaString,
|
178
|
+
]);
|
179
|
+
}
|
180
|
+
}
|
@@ -116,12 +116,10 @@ export class DataQualityResultState {
|
|
116
116
|
|
117
117
|
promise = getDataQualityPureGraphManagerExtension(
|
118
118
|
this.dataQualityState.graphManagerState.graphManager,
|
119
|
-
).execute(
|
120
|
-
|
121
|
-
this.
|
122
|
-
|
123
|
-
this.previewLimit,
|
124
|
-
);
|
119
|
+
).execute(model, packagePath, {
|
120
|
+
lambdaParameterValues: this.dataQualityState.lambdaParameterValues,
|
121
|
+
previewLimit: this.previewLimit,
|
122
|
+
});
|
125
123
|
|
126
124
|
this.setQueryRunPromise(promise);
|
127
125
|
const result = (yield promise) as ExecutionResult;
|
@@ -179,7 +177,7 @@ export class DataQualityResultState {
|
|
179
177
|
if (debug) {
|
180
178
|
const debugResult = (yield getDataQualityPureGraphManagerExtension(
|
181
179
|
this.dataQualityState.graphManagerState.graphManager,
|
182
|
-
).debugExecutionPlanGeneration(model, packagePath)) as {
|
180
|
+
).debugExecutionPlanGeneration(model, packagePath, {})) as {
|
183
181
|
plan: RawExecutionPlan;
|
184
182
|
debug: string;
|
185
183
|
};
|
@@ -191,7 +189,7 @@ export class DataQualityResultState {
|
|
191
189
|
);
|
192
190
|
rawPlan = (yield getDataQualityPureGraphManagerExtension(
|
193
191
|
this.dataQualityState.graphManagerState.graphManager,
|
194
|
-
).generatePlan(model, packagePath)) as RawExecutionPlan;
|
192
|
+
).generatePlan(model, packagePath, {})) as RawExecutionPlan;
|
195
193
|
}
|
196
194
|
|
197
195
|
stopWatch.record();
|
@@ -271,7 +271,7 @@ export abstract class DataQualityState extends ElementEditorState {
|
|
271
271
|
const model = this.graphManagerState.graph;
|
272
272
|
const rootGraphFetchTree = (yield getDataQualityPureGraphManagerExtension(
|
273
273
|
this.graphManagerState.graphManager,
|
274
|
-
).fetchStructuralValidations(model, packagePath)) as RootGraphFetchTree;
|
274
|
+
).fetchStructuralValidations(model, packagePath, {})) as RootGraphFetchTree;
|
275
275
|
this.initializeStructuralValidationsGraphFetchTreeState(
|
276
276
|
rootGraphFetchTree as DataQualityRootGraphFetchTree,
|
277
277
|
);
|
@@ -17,6 +17,7 @@
|
|
17
17
|
export enum DATA_QUALITY_HASH_STRUCTURE {
|
18
18
|
DATA_QUALITY_CONSTRAINTS_CONFIGURATION = 'DATA_QUALITY_CONSTRAINTS_CONFIGURATION',
|
19
19
|
DATA_QUALITY_SERVICE_VALIDATION_CONFIGURATION = 'DATA_QUALITY_SERVICE_VALIDATION_CONFIGURATION',
|
20
|
+
DATA_QUALITY_RELATION_VALIDATION_CONFIGURATION = 'DATA_QUALITY_RELATION_VALIDATION_CONFIGURATION',
|
20
21
|
DATA_QUALTIY_DATASPACE_EXECUTION_CONTEXT = 'DATA_QUALITY_DATASPACE_EXECUTION_CONTEXT',
|
21
22
|
DATA_QUALITY_MAPPING_AND_RUNTIME_EXECUTION_CONTEXT = 'DATA_QUALITY_MAPPING_AND_RUNTIME_EXECUTION_CONTEXT',
|
22
23
|
DATA_QUALITY_GRAPH_FETCH_STATE = 'DATA_QUALITY_GRAPH_FETCH_STATE',
|
@@ -26,4 +27,7 @@ export enum DATA_QUALITY_HASH_STRUCTURE {
|
|
26
27
|
DATA_QUALITY_SUBTYPE_GRAPH_FETCH_TREE = 'DATA_QUALITY_SUBTYPE_GRAPH_FETCH_TREE',
|
27
28
|
DATA_QUALITY_GRAPH_FETCH_TREE_NODE_DATA = 'DATA_QUALITY_GRAPH_FETCH_TREE_NODE_DATA',
|
28
29
|
DATA_QUALITY_STATE = 'DATA_QUALITY_STATE',
|
30
|
+
DATA_QUALITY_RELATION_VALIDATION = 'DATA_QUALITY_RELATION_VALIDATION',
|
31
|
+
DATA_QUALITY_RELATION_FUNCTION_DEFINITION = 'DATA_QUALITY_RELATION_FUNCTION_DEFINITION',
|
32
|
+
DATA_QUALITY_RELATION_VALIDATION_QUERY = 'DATA_QUALITY_RELATION_VALIDATION_QUERY',
|
29
33
|
}
|
@@ -20,6 +20,7 @@ import packageJson from '../../../package.json';
|
|
20
20
|
import {
|
21
21
|
DataQualityClassValidationsConfiguration,
|
22
22
|
DataQualityServiceValidationConfiguration,
|
23
|
+
DataQualityRelationValidationConfiguration,
|
23
24
|
} from './pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
24
25
|
|
25
26
|
export class DSL_DataQuality_PureGraphPlugin extends PureGraphPlugin {
|
@@ -31,6 +32,7 @@ export class DSL_DataQuality_PureGraphPlugin extends PureGraphPlugin {
|
|
31
32
|
return [
|
32
33
|
DataQualityClassValidationsConfiguration,
|
33
34
|
DataQualityServiceValidationConfiguration,
|
35
|
+
DataQualityRelationValidationConfiguration,
|
34
36
|
];
|
35
37
|
}
|
36
38
|
}
|
@@ -21,13 +21,27 @@ import {
|
|
21
21
|
type PackageableElementReference,
|
22
22
|
type PackageableRuntime,
|
23
23
|
type RawLambda,
|
24
|
+
type ParameterValue,
|
25
|
+
type RawVariableExpression,
|
24
26
|
PackageableElement,
|
27
|
+
hashRawLambda,
|
25
28
|
} from '@finos/legend-graph';
|
26
|
-
import { type Hashable, hashArray } from '@finos/legend-shared';
|
29
|
+
import { type Hashable, hashArray, uuid } from '@finos/legend-shared';
|
27
30
|
import { DATA_QUALITY_HASH_STRUCTURE } from '../../../DSL_DataQuality_HashUtils.js';
|
28
31
|
import type { DataSpace } from '@finos/legend-extension-dsl-data-space/graph';
|
29
32
|
import type { DataQualityRootGraphFetchTree } from './DataQualityGraphFetchTree.js';
|
30
33
|
|
34
|
+
export enum RelationValidationType {
|
35
|
+
ROW_LEVEL = 'ROW_LEVEL',
|
36
|
+
AGGREGATE = 'AGGREGATE',
|
37
|
+
}
|
38
|
+
export interface DQExecuteInputOptions {
|
39
|
+
lambdaParameterValues?: ParameterValue[];
|
40
|
+
clientVersion?: string | undefined;
|
41
|
+
validationName?: string | undefined;
|
42
|
+
previewLimit?: number | undefined;
|
43
|
+
}
|
44
|
+
|
31
45
|
export abstract class DataQualityExecutionContext implements Hashable {
|
32
46
|
abstract get hashCode(): string;
|
33
47
|
}
|
@@ -58,8 +72,10 @@ export class MappingAndRuntimeDataQualityExecutionContext extends DataQualityExe
|
|
58
72
|
}
|
59
73
|
}
|
60
74
|
|
75
|
+
export abstract class DataQualityValidationConfiguration extends PackageableElement {}
|
76
|
+
|
61
77
|
export class DataQualityClassValidationsConfiguration
|
62
|
-
extends
|
78
|
+
extends DataQualityValidationConfiguration
|
63
79
|
implements Hashable
|
64
80
|
{
|
65
81
|
context!: DataQualityExecutionContext;
|
@@ -83,7 +99,7 @@ export class DataQualityClassValidationsConfiguration
|
|
83
99
|
}
|
84
100
|
|
85
101
|
export class DataQualityServiceValidationConfiguration
|
86
|
-
extends
|
102
|
+
extends DataQualityValidationConfiguration
|
87
103
|
implements Hashable
|
88
104
|
{
|
89
105
|
serviceName: string | undefined;
|
@@ -105,3 +121,63 @@ export class DataQualityServiceValidationConfiguration
|
|
105
121
|
return visitor.visit_PackageableElement(this);
|
106
122
|
}
|
107
123
|
}
|
124
|
+
|
125
|
+
export class DataQualityRelationQueryLambda implements Hashable {
|
126
|
+
body?: object | undefined;
|
127
|
+
parameters: RawVariableExpression[] = [];
|
128
|
+
|
129
|
+
get hashCode(): string {
|
130
|
+
return hashArray([
|
131
|
+
DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_RELATION_VALIDATION_QUERY,
|
132
|
+
hashArray(this.parameters),
|
133
|
+
hashRawLambda(undefined, this.body),
|
134
|
+
]);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
export class DataQualityRelationValidation implements Hashable {
|
139
|
+
readonly _UUID = uuid();
|
140
|
+
name: string;
|
141
|
+
description: string | undefined;
|
142
|
+
assertion: RawLambda;
|
143
|
+
type: RelationValidationType = RelationValidationType.ROW_LEVEL;
|
144
|
+
rowMapFunction: RawLambda | undefined;
|
145
|
+
|
146
|
+
constructor(name: string, assertion: RawLambda) {
|
147
|
+
this.name = name;
|
148
|
+
this.assertion = assertion;
|
149
|
+
}
|
150
|
+
|
151
|
+
get hashCode(): string {
|
152
|
+
return hashArray([
|
153
|
+
DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_RELATION_VALIDATION,
|
154
|
+
this.name,
|
155
|
+
this.type,
|
156
|
+
this.description ?? '',
|
157
|
+
this.assertion,
|
158
|
+
this.rowMapFunction ?? '',
|
159
|
+
]);
|
160
|
+
}
|
161
|
+
}
|
162
|
+
|
163
|
+
export class DataQualityRelationValidationConfiguration
|
164
|
+
extends DataQualityValidationConfiguration
|
165
|
+
implements Hashable
|
166
|
+
{
|
167
|
+
query!: DataQualityRelationQueryLambda;
|
168
|
+
validations: DataQualityRelationValidation[] = [];
|
169
|
+
|
170
|
+
protected override get _elementHashCode(): string {
|
171
|
+
return hashArray([
|
172
|
+
DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_RELATION_VALIDATION_CONFIGURATION,
|
173
|
+
this.query,
|
174
|
+
hashArray(this.validations),
|
175
|
+
]);
|
176
|
+
}
|
177
|
+
|
178
|
+
accept_PackageableElementVisitor<T>(
|
179
|
+
visitor: PackageableElementVisitor<T>,
|
180
|
+
): T {
|
181
|
+
return visitor.visit_PackageableElement(this);
|
182
|
+
}
|
183
|
+
}
|
@@ -19,6 +19,7 @@ import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
19
19
|
import {
|
20
20
|
DataQualityClassValidationsConfiguration,
|
21
21
|
DataQualityServiceValidationConfiguration,
|
22
|
+
DataQualityRelationValidationConfiguration,
|
22
23
|
} from '../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
23
24
|
|
24
25
|
export const getOwnDataQualityClassValidationsConfiguration = (
|
@@ -44,3 +45,15 @@ export const getOwnDataQualityServiceValidationsConfiguration = (
|
|
44
45
|
),
|
45
46
|
`Can't find data quality service validation element on '${path}'`,
|
46
47
|
);
|
48
|
+
|
49
|
+
export const getOwnDataQualityRelationValidationsConfiguration = (
|
50
|
+
path: string,
|
51
|
+
graph: BasicModel,
|
52
|
+
): DataQualityRelationValidationConfiguration =>
|
53
|
+
guaranteeNonNullable(
|
54
|
+
graph.getOwnNullableExtensionElement(
|
55
|
+
path,
|
56
|
+
DataQualityRelationValidationConfiguration,
|
57
|
+
),
|
58
|
+
`Can't find data quality tds validation element on '${path}'`,
|
59
|
+
);
|
@@ -18,6 +18,9 @@ import { action } from 'mobx';
|
|
18
18
|
import {
|
19
19
|
type DataQualityClassValidationsConfiguration,
|
20
20
|
type DataQualityExecutionContext,
|
21
|
+
type DataQualityRelationValidation,
|
22
|
+
type DataQualityRelationValidationConfiguration,
|
23
|
+
type RelationValidationType,
|
21
24
|
DataSpaceDataQualityExecutionContext,
|
22
25
|
MappingAndRuntimeDataQualityExecutionContext,
|
23
26
|
} from '../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
@@ -28,15 +31,19 @@ import {
|
|
28
31
|
type PackageableRuntime,
|
29
32
|
type RawLambda,
|
30
33
|
type ObserverContext,
|
34
|
+
type RawVariableExpression,
|
31
35
|
observe_PackageableRuntime,
|
32
36
|
observe_RawLambda,
|
33
37
|
PackageableElementExplicitReference,
|
38
|
+
observe_RawVariableExpression,
|
34
39
|
} from '@finos/legend-graph';
|
35
40
|
import {
|
36
41
|
observe_DataQualityRootGraphFetchTree,
|
42
|
+
observe_DataQualityRelationValidation,
|
37
43
|
observe_DataSpaceDataQualityExecutionContext,
|
38
44
|
observe_MappingAndRuntimeDataQualityExecutionContext,
|
39
45
|
} from './action/changeDetection/DSL_DataQuality_ObserverHelper.js';
|
46
|
+
import { addUniqueEntry, deleteEntry, swapEntry } from '@finos/legend-shared';
|
40
47
|
|
41
48
|
export const dataQualityClassValidation_setDataQualityGraphFetchTree = action(
|
42
49
|
(
|
@@ -111,3 +118,103 @@ export const dataQualityGraphFetchTree_removeConstraints = action(
|
|
111
118
|
}
|
112
119
|
},
|
113
120
|
);
|
121
|
+
|
122
|
+
export const dataQualityRelationValidation_setAssertion = action(
|
123
|
+
(_constraint: DataQualityRelationValidation, assertion: RawLambda): void => {
|
124
|
+
_constraint.assertion = observe_RawLambda(assertion);
|
125
|
+
},
|
126
|
+
);
|
127
|
+
|
128
|
+
export const dataQualityRelationValidation_setName = action(
|
129
|
+
(_constraint: DataQualityRelationValidation, name: string): void => {
|
130
|
+
_constraint.name = name;
|
131
|
+
},
|
132
|
+
);
|
133
|
+
|
134
|
+
export const dataQualityRelationValidation_setDescription = action(
|
135
|
+
(_constraint: DataQualityRelationValidation, description: string): void => {
|
136
|
+
_constraint.description = description;
|
137
|
+
},
|
138
|
+
);
|
139
|
+
|
140
|
+
export const dataQualityRelationValidation_setType = action(
|
141
|
+
(
|
142
|
+
_constraint: DataQualityRelationValidation,
|
143
|
+
type: RelationValidationType,
|
144
|
+
): void => {
|
145
|
+
_constraint.type = type;
|
146
|
+
},
|
147
|
+
);
|
148
|
+
|
149
|
+
export const dataQualityRelationValidation_setRowMapFunction = action(
|
150
|
+
(
|
151
|
+
_constraint: DataQualityRelationValidation,
|
152
|
+
rowMapFunction: RawLambda,
|
153
|
+
): void => {
|
154
|
+
_constraint.rowMapFunction = observe_RawLambda(rowMapFunction);
|
155
|
+
},
|
156
|
+
);
|
157
|
+
|
158
|
+
export const dataQualityRelationValidation_addValidation = action(
|
159
|
+
(
|
160
|
+
_relationValidation: DataQualityRelationValidationConfiguration,
|
161
|
+
val: DataQualityRelationValidation,
|
162
|
+
): void => {
|
163
|
+
addUniqueEntry(
|
164
|
+
_relationValidation.validations,
|
165
|
+
observe_DataQualityRelationValidation(val),
|
166
|
+
);
|
167
|
+
},
|
168
|
+
);
|
169
|
+
|
170
|
+
export const dataQualityRelationValidation_deleteValidation = action(
|
171
|
+
(
|
172
|
+
_relationValidation: DataQualityRelationValidationConfiguration,
|
173
|
+
val: DataQualityRelationValidation,
|
174
|
+
): void => {
|
175
|
+
deleteEntry(
|
176
|
+
_relationValidation.validations,
|
177
|
+
observe_DataQualityRelationValidation(val),
|
178
|
+
);
|
179
|
+
},
|
180
|
+
);
|
181
|
+
|
182
|
+
export const dataQualityRelationValidation_swapValidations = action(
|
183
|
+
(
|
184
|
+
_relationValidation: DataQualityRelationValidationConfiguration,
|
185
|
+
sourceValidation: DataQualityRelationValidation,
|
186
|
+
targetValidation: DataQualityRelationValidation,
|
187
|
+
): void => {
|
188
|
+
swapEntry(
|
189
|
+
_relationValidation.validations,
|
190
|
+
sourceValidation,
|
191
|
+
targetValidation,
|
192
|
+
);
|
193
|
+
},
|
194
|
+
);
|
195
|
+
|
196
|
+
export const dataQualityRelationValidation_addParameter = action(
|
197
|
+
(_parameters: RawVariableExpression[], val: RawVariableExpression): void => {
|
198
|
+
addUniqueEntry(_parameters, observe_RawVariableExpression(val));
|
199
|
+
},
|
200
|
+
);
|
201
|
+
|
202
|
+
export const dataQualityRelationValidation_deleteParameter = action(
|
203
|
+
(_parameters: RawVariableExpression[], val: RawVariableExpression): void => {
|
204
|
+
deleteEntry(_parameters, val);
|
205
|
+
},
|
206
|
+
);
|
207
|
+
|
208
|
+
export const dataQualityRelationValidation_swapParameters = action(
|
209
|
+
(
|
210
|
+
_parameters: RawVariableExpression[],
|
211
|
+
sourceParameter: RawVariableExpression,
|
212
|
+
targetParameter: RawVariableExpression,
|
213
|
+
): void => {
|
214
|
+
swapEntry(
|
215
|
+
_parameters,
|
216
|
+
observe_RawVariableExpression(sourceParameter),
|
217
|
+
observe_RawVariableExpression(targetParameter),
|
218
|
+
);
|
219
|
+
},
|
220
|
+
);
|
@@ -24,10 +24,12 @@ import {
|
|
24
24
|
import {
|
25
25
|
DataQualityClassValidationsConfiguration,
|
26
26
|
DataQualityServiceValidationConfiguration,
|
27
|
+
DataQualityRelationValidationConfiguration,
|
27
28
|
} from '../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
28
29
|
import {
|
29
30
|
observe_DataQualityConstraintsConfiguration,
|
30
31
|
observe_DataQualityServiceValidationConfiguration,
|
32
|
+
observe_DataQualityRelationValidationConfiguration,
|
31
33
|
} from './action/changeDetection/DSL_DataQuality_ObserverHelper.js';
|
32
34
|
import { DSL_DataQuality_buildGraphManagerExtension } from './protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js';
|
33
35
|
|
@@ -48,6 +50,12 @@ export class DSL_DataQuality_PureGraphManagerPlugin extends PureGraphManagerPlug
|
|
48
50
|
if (element instanceof DataQualityServiceValidationConfiguration) {
|
49
51
|
return observe_DataQualityServiceValidationConfiguration(element);
|
50
52
|
}
|
53
|
+
if (element instanceof DataQualityRelationValidationConfiguration) {
|
54
|
+
return observe_DataQualityRelationValidationConfiguration(
|
55
|
+
element,
|
56
|
+
context,
|
57
|
+
);
|
58
|
+
}
|
51
59
|
return undefined;
|
52
60
|
},
|
53
61
|
];
|
@@ -15,17 +15,22 @@
|
|
15
15
|
*/
|
16
16
|
|
17
17
|
import {
|
18
|
+
type ObserverContext,
|
18
19
|
observe_Abstract_PackageableElement,
|
19
20
|
observe_Class,
|
20
21
|
observe_PackageableElementReference,
|
21
22
|
observe_PropertyReference,
|
22
23
|
observe_RawLambda,
|
23
24
|
skipObserved,
|
25
|
+
skipObservedWithContext,
|
24
26
|
} from '@finos/legend-graph';
|
25
|
-
import { makeObservable, observable, override } from 'mobx';
|
27
|
+
import { computed, makeObservable, observable, override } from 'mobx';
|
26
28
|
import {
|
27
29
|
type DataQualityClassValidationsConfiguration,
|
28
30
|
type DataQualityServiceValidationConfiguration,
|
31
|
+
type DataQualityRelationValidation,
|
32
|
+
type DataQualityRelationValidationConfiguration,
|
33
|
+
type DataQualityRelationQueryLambda,
|
29
34
|
DataSpaceDataQualityExecutionContext,
|
30
35
|
MappingAndRuntimeDataQualityExecutionContext,
|
31
36
|
} from '../../../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
@@ -151,3 +156,51 @@ export const observe_DataQualityServiceValidationConfiguration = skipObserved(
|
|
151
156
|
return metamodel;
|
152
157
|
},
|
153
158
|
);
|
159
|
+
|
160
|
+
export const observe_DataQualityRelationValidation = skipObserved(
|
161
|
+
(metamodel: DataQualityRelationValidation): DataQualityRelationValidation => {
|
162
|
+
makeObservable(metamodel, {
|
163
|
+
name: observable,
|
164
|
+
assertion: observable,
|
165
|
+
description: observable,
|
166
|
+
type: observable,
|
167
|
+
rowMapFunction: observable,
|
168
|
+
});
|
169
|
+
|
170
|
+
observe_RawLambda(metamodel.assertion);
|
171
|
+
return metamodel;
|
172
|
+
},
|
173
|
+
);
|
174
|
+
|
175
|
+
export const observe_DataQualityRelationQueryLambda = skipObserved(
|
176
|
+
(metamodel: DataQualityRelationQueryLambda): DataQualityRelationQueryLambda =>
|
177
|
+
makeObservable(metamodel, {
|
178
|
+
body: observable.ref, // only observe the reference, the object itself is not observed
|
179
|
+
parameters: observable,
|
180
|
+
hashCode: computed,
|
181
|
+
}),
|
182
|
+
);
|
183
|
+
|
184
|
+
export const observe_DataQualityRelationValidationConfiguration =
|
185
|
+
skipObservedWithContext(
|
186
|
+
(
|
187
|
+
metamodel: DataQualityRelationValidationConfiguration,
|
188
|
+
context: ObserverContext,
|
189
|
+
): DataQualityRelationValidationConfiguration => {
|
190
|
+
observe_Abstract_PackageableElement(metamodel);
|
191
|
+
|
192
|
+
makeObservable<
|
193
|
+
DataQualityRelationValidationConfiguration,
|
194
|
+
'_elementHashCode'
|
195
|
+
>(metamodel, {
|
196
|
+
_elementHashCode: override,
|
197
|
+
query: observable,
|
198
|
+
validations: observable,
|
199
|
+
});
|
200
|
+
metamodel.validations.forEach((value) =>
|
201
|
+
observe_DataQualityRelationValidation(value),
|
202
|
+
);
|
203
|
+
observe_DataQualityRelationQueryLambda(metamodel.query);
|
204
|
+
return metamodel;
|
205
|
+
},
|
206
|
+
);
|
@@ -20,32 +20,34 @@ import {
|
|
20
20
|
type ExecutionResult,
|
21
21
|
type PureModel,
|
22
22
|
type RootGraphFetchTree,
|
23
|
-
type ParameterValue,
|
24
23
|
AbstractPureGraphManagerExtension,
|
25
24
|
} from '@finos/legend-graph';
|
26
25
|
import { guaranteeNonNullable } from '@finos/legend-shared';
|
26
|
+
import type { DQExecuteInputOptions } from '../../../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
27
27
|
|
28
28
|
export abstract class DSL_DataQuality_PureGraphManagerExtension extends AbstractPureGraphManagerExtension {
|
29
29
|
abstract generatePlan(
|
30
30
|
graph: PureModel,
|
31
31
|
packagePath: string,
|
32
|
+
options: DQExecuteInputOptions,
|
32
33
|
): Promise<RawExecutionPlan>;
|
33
34
|
|
34
35
|
abstract execute(
|
35
36
|
graph: PureModel,
|
36
|
-
lambdaParameterValues: ParameterValue[],
|
37
37
|
packagePath: string,
|
38
|
-
|
38
|
+
options: DQExecuteInputOptions,
|
39
39
|
): Promise<ExecutionResult>;
|
40
40
|
|
41
41
|
abstract debugExecutionPlanGeneration(
|
42
42
|
graph: PureModel,
|
43
43
|
packagePath: string,
|
44
|
+
options: DQExecuteInputOptions,
|
44
45
|
): Promise<{ plan: RawExecutionPlan; debug: string }>;
|
45
46
|
|
46
47
|
abstract fetchStructuralValidations(
|
47
48
|
graph: PureModel,
|
48
49
|
packagePath: string,
|
50
|
+
options: DQExecuteInputOptions,
|
49
51
|
): Promise<RootGraphFetchTree>;
|
50
52
|
}
|
51
53
|
|