conditional

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

Creates a property delegate with validation and transformation logic.

Parameters

defaultValue

The initial value.

getTransform

Transformation applied on get.

setTransform

Transformation applied on set.

validateGet

Validation for get operation.

validateSet

Validation for set operation.

messageBuilder

Error message builder.