UNPKG

@finos/legend-extension-dsl-data-quality

Version:
102 lines 3.48 kB
/** * Copyright (c) 2026-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { uuid } from '@finos/legend-shared'; import { DataQualityLambdaParameterExtractorVisitor } from './DataQualityLambdaParameterExtractorVisitor.js'; import { DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS } from '../constants/DataQualityConstants.js'; export class DataQualityValidationFunction { type = ''; id = uuid(); createParameterFromLambda(lambdaBody, graph, observerContext) { const dataQualityLambdaParameterExtractorVisitor = new DataQualityLambdaParameterExtractorVisitor(lambdaBody, graph, observerContext); this.accept(dataQualityLambdaParameterExtractorVisitor); } } export class DataQualityValidationFilterFunction extends DataQualityValidationFunction { name = 'filter'; parameters; lambdaBodyVariableDeclaration; constructor(parameters) { super(); this.parameters = parameters; } accept(visitor) { return visitor.visitFilter(this); } } class AbstractDataQualityValidationFilterCondition extends DataQualityValidationFunction { name; parameters; constructor(name, parameters) { super(); this.name = name; this.parameters = parameters; } } export class DataQualityValidationFilterCondition extends AbstractDataQualityValidationFilterCondition { accept(visitor) { return visitor.visitFilterCondition(this); } } export class DataQualityValidationPropertyGuarantee extends AbstractDataQualityValidationFilterCondition { accept(visitor, context) { return visitor.visitPropertyGuarantee(this, context); } } export class DataQualityValidationLogicalGroupFunction extends DataQualityValidationFunction { name; parameters; constructor(name, parameters) { super(); this.name = name; this.parameters = parameters; } changeName() { if (this.name === DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS.AND) { this.name = DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS.OR; } else { this.name = DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS.AND; } } accept(visitor) { return visitor.visitLogicalGroup(this); } } export class DataQualityValidationCustomHelperFunction extends DataQualityValidationFunction { name; parameters; constructor(name, parameters) { super(); this.name = name; this.parameters = parameters; } accept(visitor) { return visitor.visitCustomHelper(this); } } export class DataQualityValidationAssertionFunction extends DataQualityValidationFunction { name; parameters; constructor(name, parameters) { super(); this.name = name; this.parameters = parameters; } accept(visitor) { return visitor.visitAssertion(this); } } //# sourceMappingURL=DataQualityValidationFunction.js.map