UNPKG

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

Version:
105 lines 5.52 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 type { PureModel, ObserverContext, AbstractPropertyExpression, PrimitiveInstanceValue, CollectionInstanceValue, VariableExpression, ColSpecArrayInstance, ColSpecInstanceValue } from '@finos/legend-graph'; import type { LambdaBody } from './DataQualityLambdaParameterParser.js'; import { DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS } from '../constants/DataQualityConstants.js'; export interface VariableDeclaration { value: string; type: string; } export interface BaseValidationParameters { variableDeclaration?: VariableExpression; } export interface AssertionValidationParameters extends BaseValidationParameters { columns: ColSpecArrayInstance; otherParam?: DataQualityValidationFilterFunction | DataQualityValidationCustomHelperFunction; } export interface CustomHelperValidationParameters extends BaseValidationParameters { column: ColSpecInstanceValue; otherParams: Array<PrimitiveInstanceValue | CollectionInstanceValue>; } export interface FilterValidationParameters extends BaseValidationParameters { lambda: { body: DataQualityValidationFilterCondition | DataQualityValidationLogicalGroupFunction; } & BaseValidationParameters; } export interface FilterConditionParameters { property: AbstractPropertyExpression | DataQualityValidationPropertyGuarantee; otherParams: (PrimitiveInstanceValue | CollectionInstanceValue)[]; } export interface PropertyGuaranteeParameters { property: AbstractPropertyExpression; } export interface LogicalGroupValidationParameters { left: DataQualityValidationFilterCondition | DataQualityValidationLogicalGroupFunction; right: DataQualityValidationFilterCondition | DataQualityValidationLogicalGroupFunction; } export declare abstract class DataQualityValidationFunction<T> { protected type: string; abstract name: string; abstract parameters: T; abstract accept<R>(visitor: DataQualityValidationFunctionVisitor<R>): R; id: string; createParameterFromLambda(lambdaBody: LambdaBody, graph: PureModel, observerContext: ObserverContext): void; } export interface DataQualityValidationFunctionVisitor<T> { visitAssertion(func: DataQualityValidationAssertionFunction): T; visitFilter(func: DataQualityValidationFilterFunction): T; visitCustomHelper(func: DataQualityValidationCustomHelperFunction): T; visitFilterCondition(func: DataQualityValidationFilterCondition): T; visitLogicalGroup(func: DataQualityValidationLogicalGroupFunction): T; visitPropertyGuarantee(func: DataQualityValidationPropertyGuarantee, context?: unknown): T; } export declare class DataQualityValidationFilterFunction extends DataQualityValidationFunction<FilterValidationParameters> { readonly name = "filter"; parameters: FilterValidationParameters; lambdaBodyVariableDeclaration: VariableDeclaration | undefined; constructor(parameters: FilterValidationParameters); accept<R>(visitor: DataQualityValidationFunctionVisitor<R>): R; } declare abstract class AbstractDataQualityValidationFilterCondition<T> extends DataQualityValidationFunction<T> { name: string; parameters: T; constructor(name: string, parameters: T); abstract accept<R>(visitor: DataQualityValidationFunctionVisitor<R>): R; } export declare class DataQualityValidationFilterCondition extends AbstractDataQualityValidationFilterCondition<FilterConditionParameters> { accept<R>(visitor: DataQualityValidationFunctionVisitor<R>): R; } export declare class DataQualityValidationPropertyGuarantee extends AbstractDataQualityValidationFilterCondition<PropertyGuaranteeParameters> { accept<R>(visitor: DataQualityValidationFunctionVisitor<R>, context?: unknown): R; } export declare class DataQualityValidationLogicalGroupFunction extends DataQualityValidationFunction<LogicalGroupValidationParameters> { name: DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS; parameters: LogicalGroupValidationParameters; constructor(name: DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS, parameters: LogicalGroupValidationParameters); changeName(): void; accept<R>(visitor: DataQualityValidationFunctionVisitor<R>): R; } export declare class DataQualityValidationCustomHelperFunction extends DataQualityValidationFunction<CustomHelperValidationParameters> { name: string; parameters: CustomHelperValidationParameters; constructor(name: string, parameters: CustomHelperValidationParameters); accept<R>(visitor: DataQualityValidationFunctionVisitor<R>): R; } export declare class DataQualityValidationAssertionFunction extends DataQualityValidationFunction<AssertionValidationParameters> { name: string; parameters: AssertionValidationParameters; constructor(name: string, parameters: AssertionValidationParameters); accept<R>(visitor: DataQualityValidationFunctionVisitor<R>): R; } export {}; //# sourceMappingURL=DataQualityValidationFunction.d.ts.map