Schema

Basic schema used to validate values against a set of validation rules.

Description

The Schema class provides a basic schema to validate values against a set of validation rules.

Important points

  • This schema is used as a basis for specific schemas to validate objects, project properties, arrays and maps.

Constructors

Creates a new instance of validation schema and sets its values.

See IValidationRule

public constructor(required?: boolean, rules?: IValidationRule[])

  • required: boolean - (optional) true to always require non-null values.
  • rules: IValidationRule[] - (optional) a list with validation rules.

Instance methods

getRules

Gets validation rules to check values against.

public getRules(): IValidationRule[]

isRequired

Gets a flag that always requires non-null values. For null values it raises a validation error.

public isRequired(): boolean

  • returns: boolean - true to always require non-null values and false to allow null values.

makeOptional

Makes validated values optional. Validation for null values will be skipped. This method returns reference to this exception to implement Builder pattern to chain additional calls.

public makeOptional(): Schema

  • returns: Schema - this validation schema

makeRequired

Makes validated values always required (non-null). For null values the schema will raise errors. This method returns reference to this exception to implement Builder pattern to chain additional calls.

public makeRequired(): Schema

  • returns: Schema - this validation schema

performTypeValidation

Validates a given value to match specified type. The type can be defined as a Schema, type, a type name or TypeCode When type is a Schema, it executes validation recursively against that Schema.

protected performTypeValidation(path: string, type: any, value: any, results: ValidationResult[]): void

  • path: string - a dot notation path to the value.
  • type: any - a type to match the value type
  • value: any - a value to be validated.
  • results: ValidationResult[] - a list with validation results to add new results.

performValidation

Validates a given value against the schema and configured validation rules.

protected performValidation(path: string, value: any, results: ValidationResult[]): void

  • path: string - a dot notation path to the value.
  • value: any - a value to be validated.
  • results: ValidationResult[] - a list with validation results to add new results.

setRequired

Sets a flag that always requires non-null values.

public setRequired(value: boolean): void

  • value: boolean - true to always require non-null values and false to allow null values.

setRules

Sets validation rules to check values against.

public setRules(value: IValidationRule[]): void

validate

Validates the given value and results validation results. See ValidationResult

public validate(value: any): ValidationResult[]

  • value: any - a value to be validated.
  • returns: ValidationResult[] - a list with validation results.

validateAndReturnException

Validates the given value and returns a ValidationException if errors were found.

public validateAndReturnException(correlationId: string, value: any, strict: boolean = false): ValidationException

  • correlationId: string - (optional) transaction id to trace execution through call chain.
  • value: any - a value to be validated.
  • strict: boolean - true to treat warnings as errors.
  • returns: ValidationException - validation exception.

validateAndThrowException

Validates the given value and throws a ValidationException if errors were found.
See ValidationException.throwExceptionIfNeeded

public validateAndThrowException(correlationId: string, value: any, strict: boolean = false): void

  • correlationId: string - (optional) transaction id to trace execution through call chain.
  • value: any - a value to be validated.
  • strict: boolean - true to treat warnings as errors.

withRule

Adds validation rule to this schema. This method returns reference to this exception to implement Builder pattern to chain additional calls.

public withRule(rule: IValidationRule): Schema

See also