|
1 | | -import { AstNode, type ValidationChecks, ValidationRegistry } from 'langium' |
| 1 | +import { ValidationAcceptor, type ValidationChecks, ValidationRegistry } from 'langium' |
2 | 2 | import { ContextMappingModelValidator } from './validation/ContextMappingModelValidator.js' |
3 | 3 | import { ValueValidator } from './validation/ValueValidator.js' |
4 | | -import { AbstractContextMapperValidator } from './validation/AbstractContextMapperValidator.js' |
5 | | -import type { ContextMapperDslAstType } from './generated/ast.js' |
6 | | - |
7 | | -const validators: AbstractContextMapperValidator<AstNode>[] = [ |
8 | | - new ContextMappingModelValidator(), |
9 | | - new ValueValidator() |
10 | | -] |
| 4 | +import type { ContextMapperDslAstType, ContextMappingModel, Value } from './generated/ast.js' |
11 | 5 |
|
12 | 6 | /** |
13 | 7 | * Register custom validation checks. |
14 | 8 | */ |
15 | 9 | export function registerValidationChecks (registry: ValidationRegistry, validator: ContextMapperDslValidator) { |
16 | | - const validatorChecks: ValidationChecks<ContextMapperDslAstType>[] = [] |
17 | | - for (const validator of validators) { |
18 | | - validatorChecks.push(validator.getChecks()) |
| 10 | + const checks: ValidationChecks<ContextMapperDslAstType> = { |
| 11 | + ContextMappingModel: validator.checkContextMappingModel, |
| 12 | + Value: validator.checkValue |
19 | 13 | } |
20 | | - const checks: ValidationChecks<ContextMapperDslAstType> = Object.assign({}, ...validatorChecks) |
21 | 14 | registry.register(checks, validator) |
22 | 15 | } |
23 | 16 |
|
24 | 17 | export class ContextMapperDslValidator { |
| 18 | + private contextMappingModelValidator = new ContextMappingModelValidator() |
| 19 | + private valueValidator = new ValueValidator() |
| 20 | + |
| 21 | + checkContextMappingModel (model: ContextMappingModel, acceptor: ValidationAcceptor) { |
| 22 | + this.contextMappingModelValidator.validate(model, acceptor) |
| 23 | + } |
25 | 24 |
|
| 25 | + checkValue (value: Value, acceptor: ValidationAcceptor) { |
| 26 | + this.valueValidator.validate(value, acceptor) |
| 27 | + } |
26 | 28 | } |
0 commit comments