FieldDefBuilder

Builder for constructing field definitions in a configuration schema.

This class provides a DSL for defining field-level validation, default values, custom loaders, and other configuration metadata. It supports both method chaining and block-style configuration.

Usage Examples

Method Chaining

override fun configure(def: FieldDefBuilder<AppConfig>) {
def.field(AppConfig::port)
.default(8080)
.range(1..65535)
.validate { require(it > 0) }
}

Block Style

override fun configure(def: FieldDefBuilder<AppConfig>) {
def.field(AppConfig::apiKey) {
required()
notBlank()
}
}

Mixed Style

override fun configure(def: FieldDefBuilder<AppConfig>) {
def.field(AppConfig::timeout)
.default(30)
.range(1L..300L)

def.field(AppConfig::debugMode) {
default(false)
}
}

Parameters

T

the configuration data class type

Constructors

Link copied to clipboard
constructor()

Functions

Link copied to clipboard

Builds the final map of field definitions.

Link copied to clipboard

Starts defining a field configuration using method chaining.

fun <V> field(prop: KProperty1<T, V>, block: FieldConfigScope<V>.() -> Unit)

Defines a field configuration using a DSL block.