ScopedStatefulValidation

abstract class ScopedStatefulValidation<in T, TState, TScope> @JvmOverloads constructor(scopeExternalContextName: String = ScopedValidation.DEFAULT_SCOPE_EXTERNAL_CONTEXT_NAME) : StatefulValidation<T, TState> (source)

A scoped stateful validation is a stateful validation that should only run when the current "validation scope" is allowed by the provided scopes.

The current validation scope is obtained via an external context with a name defaulting to ScopedValidation.DEFAULT_SCOPE_EXTERNAL_CONTEXT_NAME (which can be overriden during class construction).

Constructors

Link copied to clipboard
constructor(scopeExternalContextName: String = ScopedValidation.DEFAULT_SCOPE_EXTERNAL_CONTEXT_NAME)

Properties

Link copied to clipboard

Dependencies of the validation. Mapping of keys to the paths this validation depends on. Keys can be used within a ValidationContext to access the value of the dependencies.

Link copied to clipboard
open val dependsOnDescendants: Boolean = false

Whether the form manager should reevaluate this validation whenever a descendant of the value being validated changes. This is false by default.

Link copied to clipboard

Set of external context dependencies of the validation.

Link copied to clipboard
open override val observers: List<Observer<Any?, TState>>

List of observers.

Link copied to clipboard

Schema of the value being validated.

Link copied to clipboard

Current validation scope.

Link copied to clipboard

Validation scopes of this validation.

Link copied to clipboard
protected val ValidationContext.value: T

Value being validated.

Functions

Link copied to clipboard
@JvmName(name = "reifiedAddDependency")
protected inline fun <TDependency> addDependency(dependencyKey: String, path: String)
protected fun addDependency(dependencyKey: String, path: String)
@JvmName(name = "reifiedAddDependency")
protected inline fun <TDependency> addDependency(dependencyKey: String, path: Path)
protected fun addDependency(dependencyKey: String, path: Path)

Declares a dependency to path, accessible in the validation's context via key dependencyKey.

Link copied to clipboard
protected fun addExternalContextDependency(externalContextName: String)

Declares an external context dependency to externalContextName.

Link copied to clipboard
protected fun <TValue> addObserver(observer: Observer<TValue, TState>)

Adds an observer to the path observer.toObserve to update the validation state via observer.updateState whenever an event with a path matching observer.toObserve occurs.

protected fun <TValue> addObserver(pathToObserve: String, updateState: UpdateStateFn<TValue, TState>)
protected fun <TValue> addObserver(pathToObserve: Path, updateState: UpdateStateFn<TValue, TState>)

Adds an observer to the path pathToObserve to update the validation state via updateState whenever an event with a path matching pathToObserve occurs.

Link copied to clipboard

Function used to declare a dependency to a path and delegate access to its value within a ValidationContext.

Link copied to clipboard

Function used to declare a dependency to a path and delegate access to its value within a ValidationContext.

Link copied to clipboard
open suspend override fun destroyState(state: TState)

Destroys the validation state.

Link copied to clipboard

Function used to declare a dependency to an external context and delegate access to its value within a ValidationContext.

Link copied to clipboard

Function used to declare a dependency to an external context and delegate access to its value within a ValidationContext.

Link copied to clipboard
abstract suspend override fun ValidationContext.initState(): TState

Initialises and returns the validation's state, given the value to validate within a ValidationContext containing the values of all declared dependencies.

Link copied to clipboard

Function used to observe the path pathToObserve and update the validation state via updateState whenever an event with a path matching pathToObserve occurs.

Link copied to clipboard

Runs the scoped validation (when the current "validation scope" is allowed by the provided scopes) within a ValidationContext containing the value being validated and the value of all declared dependencies. Returns a flow over all found issues.

Link copied to clipboard

Runs the scoped stateful validation (when the current "validation scope" is allowed by the provided scopes), given its state, within a ValidationContext containing the value being validated and the value of all declared dependencies. Returns a flow over all found issues.

Link copied to clipboard

Runs the validation within a ValidationContext containing the value being validated and the value of all declared dependencies. Returns a flow over all found issues.

Link copied to clipboard

Runs the validation, given its state, within a ValidationContext containing the value being validated and the value of all declared dependencies. Returns a flow over all found issues.