![JAR search and dependency download from the Maven repository](/logo.png)
de.lancom.openapi.field.Field.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openapi-parser Show documentation
Show all versions of openapi-parser Show documentation
This open-source project provides an OpenAPI 3.0 Parser implemented in Kotlin, utilizing immutable data classes
package de.lancom.openapi.field
sealed interface Field {
val optional: Field
val isDefined: Boolean
val orNull: T?
fun getOrError(): T
fun getOrElse(default: () -> T): T
fun orDefault(default: () -> T): Field
fun orElse(fallback: () -> Field): Field
fun map(mapper: (T) -> E): Field
fun flatMap(mapper: (T) -> Field): Field
fun mapField(mapper: (Field) -> E): Field
fun takeUnlessField(predicate: (T) -> Boolean): Field {
return flatMap { value ->
if (predicate(value)) {
unset()
} else {
this
}
}
}
companion object {
fun unset(): Field {
return unsetField()
}
operator fun invoke(value: T): Field {
return setField(value)
}
fun unsetIfNull(value: T?): Field {
return if (value == null) {
unset()
} else {
Field(value)
}
}
fun takeUnlessEmpty(value: Map?): Field
© 2015 - 2025 Weber Informatics LLC | Privacy Policy