conditional

protected open fun <I, O> conditional(initial: I, beforeGet: DslValue<O, *>.(I) -> Boolean = { true }, beforeSet: DslValue<O, *>.(O) -> Boolean = { true }, getTransform: (I) -> O, setTransform: (O) -> I, validateGet: KProperty<*>.(O) -> Boolean = { true }, validateSet: KProperty<*>.(I) -> Boolean = { true }, getBypassedHooksValue: (DslValue.BypassedHooks<O>) -> Unit = {}, messageBuilder: KProperty<*>.() -> Any = { "Invalid value for property $name." }): ValueProperty<I, O>(source)

Creates a property delegate with validation and transformation logic.

Parameters

initial

The initial value.

beforeGet

Pre-check before getting the value.

beforeSet

Pre-check before setting the value.

getTransform

Transformation applied on get.

setTransform

Transformation applied on set.

validateGet

Validation for get operation after transformation.

validateSet

Validation for set operation after transformation.

getBypassedHooksValue

Function to get the DslValue.BypassedHooks instance.

messageBuilder

Error message builder.