RebuildableKpaStruct

A KpaStruct that can reconstruct itself after mutation via a KpaElementFactory.

Read-only adapters implement plain KpaStruct; adapter families that support mutation (e.g. kpointer-kxs, kpointer-yamlkt) implement this interface. The mutate extension is available only on RebuildableKpaStruct receivers, so mutation cannot accidentally be applied to a read-only adapter.

Inheritors

Properties

Link copied to clipboard

The factory that knows how to produce primitives and rebuild structs/lists in this adapter family.

Link copied to clipboard
abstract val keys: Set<String>

The set of keys present in this struct.

Functions

Link copied to clipboard

Returns the boolean value at pointer, or null if the path is absent or the value is not a boolean primitive.

Parses path via KPointer.from and returns the boolean value at that path, or null if absent or not a boolean.

Link copied to clipboard
abstract operator fun contains(key: String): Boolean

Returns whether key is present in this struct.

Link copied to clipboard

Returns the numeric value as Double at pointer, or null if the path is absent or the value is not a numeric primitive.

Parses path via KPointer.from and returns the numeric value as Double at that path, or null if absent or not numeric.

Link copied to clipboard
abstract operator fun get(key: String): KpaElement?

Returns the value associated with key, or null if absent.

Link copied to clipboard
operator fun KpaStruct.get(pointer: KPointer): KpaElement?

Returns the KpaElement at the path identified by pointer, or null if a key along the path is absent. Returns the receiver if pointer is the root pointer.

Link copied to clipboard

Returns the KpaList at pointer, or null if the path is absent or the value is not a list.

Parses path via KPointer.from and returns the KpaList at that path, or null if absent or not a list.

Link copied to clipboard
fun KpaStruct.longAt(pointer: KPointer): Long?

Returns the numeric value as Long at pointer, or null if the path is absent, the value is not a numeric primitive, or the value has a fractional component.

Parses path via KPointer.from and returns the numeric value as Long at that path, or null if absent, not numeric, or has a fractional component.

Link copied to clipboard

Creates a new KpaStruct by applying pointer-based mutations within block.

Link copied to clipboard

Returns the KpaPrimitive at pointer, or null if the path is absent or the value is not a primitive.

Parses path via KPointer.from and returns the KpaPrimitive at that path, or null if absent or not a primitive.

Link copied to clipboard
inline fun <B : Any> KpaElement.requireBacking(libraryName: String): B

Unwraps this KpaElement to its native backing value of type B, or throws if this element is not a BackedKpaElement whose backing is of type B.

Link copied to clipboard

Returns the string value at pointer, or null if the path is absent or the value is not a string primitive.

Parses path via KPointer.from and returns the string value at that path, or null if absent or not a string.

Link copied to clipboard

Returns the KpaStruct at pointer, or null if the path is absent or the value is not a struct.

Parses path via KPointer.from and returns the KpaStruct at that path, or null if absent or not a struct.

Link copied to clipboard
abstract fun toMap(): Map<String, KpaElement>

Returns a snapshot of this struct as a plain Map.