CollectionOptionBuilder

Abstract base class for collection option builders (List and Set).

This class provides shared functionality for both OptionListBuilder and OptionSetBuilder, including common constructor parameters, constraint handling, and property delegation logic.

Inheritors

Functions

Link copied to clipboard

Requires this collection option to have at least the specified number of values. This constraint is validated after parsing completes.

Link copied to clipboard
open fun atLeastOneWith(vararg refs: KProperty<*>): CollectionOptionBuilder<T, C>

Creates an "at least one" constraint with other options. At least one option from this group (including this option) must be provided.

Link copied to clipboard
open fun atMostOneWith(vararg refs: KProperty<*>): CollectionOptionBuilder<T, C>

Creates an "at most one" constraint with other options. At most one option from this group (including this option) may be provided.

Link copied to clipboard
open fun conflictsWith(vararg refs: KProperty<*>): CollectionOptionBuilder<T, C>

Specifies that this collection option conflicts with other options. If this option is provided along with any of the conflicting options, parsing will fail with an error.

Link copied to clipboard
open fun exactlyOneWith(vararg refs: KProperty<*>): CollectionOptionBuilder<T, C>

Creates an "exactly one" constraint with other options. Exactly one option from this group (including this option) must be provided.

Link copied to clipboard

Sets the help text for this collection option. The help text is displayed when the user requests help information.

Link copied to clipboard

Marks this collection option as hidden from help output. Hidden options are not displayed in help text but remain functional.

Link copied to clipboard
open fun onlyInDomains(vararg refs: KProperty<*>): CollectionOptionBuilder<T, C>

Restricts this collection option to only be available in specific domains. When specified, this option will only be recognized when one of the referenced domains is active.

Link copied to clipboard
fun onValue(callback: (T) -> Unit): CollectionOptionBuilder<T, C>

Registers a callback to be executed when this collection option's values are found during parsing. The callback receives each converted value and is executed after all parsing and validation completes. For collection options, the callback is called once for each element in the collection.

Link copied to clipboard
open operator override fun provideDelegate(thisRef: Arguments, property: KProperty<*>): ReadOnlyProperty<Arguments, C>

Provides the property delegate implementation for collection options. This method is called automatically by Kotlin's property delegation system. It registers the option with the Arguments instance and returns a delegate that provides access to the parsed collection value.

Link copied to clipboard

Makes this collection option required if all of the referenced options are present. This creates a conditional requirement where providing all of the trigger options makes this option mandatory.

Link copied to clipboard

Makes this collection option required if any of the referenced options are present. This creates a conditional requirement where providing any of the trigger options makes this option mandatory.

Link copied to clipboard
open fun validate(message: String, predicate: (T) -> Boolean): CollectionOptionBuilder<T, C>

Adds validation for individual elements in the collection. The validation is applied to each element that is added to the collection.

Link copied to clipboard
open fun validateCollection(message: String, predicate: (C) -> Boolean): CollectionOptionBuilder<T, C>

Adds validation for the entire collection after all elements are parsed. This validation is applied to the complete collection, allowing validation of collection-level properties like size, uniqueness, etc.