DataObject

The DataObject represents a map of restricted data types which are wrappable by DataItem, to ensure that all data passed to the SDK can be used correctly and without unexpected behaviours when converting to Strings.

Instances of DataObject are immutable. When requiring updates, the copy method is available to use, which is prepopulate a Builder with the existing set of DataItems

This class will serialize to a JSON object - { ... } - when calling toString.

See also

Types

Link copied to clipboard
class Builder @JvmOverloads constructor(copy: DataObject = EMPTY_OBJECT)
Link copied to clipboard
object Companion
Link copied to clipboard

Properties

Link copied to clipboard
val size: Int

Returns the number of top level entries stored in this DataObject.

Functions

Link copied to clipboard
open override fun asDataItem(): DataItem

Should return an instance of a DataItem that represents all required properties of the implementing class, such that it could be:

Link copied to clipboard
Link copied to clipboard

Takes a copy of this DataObject and builds the necessary path according to the given path in order to store the given item.

Link copied to clipboard

Convenience method to create a new Builder containing all the values in this DataObject

Link copied to clipboard
inline fun copy(block: DataObject.Builder.() -> Unit = {}): DataObject

Copies the existing DataObject into a new Builder instance that can be used to add/remove entries and create a new instance of the DataObject

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun extract(jsonPath: JsonPath<JsonPath.Component.Key>): DataItem?

Extracts a nested DataItem according to the given jsonPath.

open fun <T> extract(jsonPath: JsonPath<JsonPath.Component.Key>, converter: DataItemConverter<T>): T?

Extracts a nested DataItem according to the given jsonPath, and attempts to convert it to the type T using the given converter

Link copied to clipboard

Extracts a nested Boolean according to the given jsonPath.

Link copied to clipboard

Extracts a nested DataList according to the given jsonPath.

Link copied to clipboard

Extracts a nested DataObject according to the given jsonPath.

Link copied to clipboard

Extracts a nested Double according to the given jsonPath.

Link copied to clipboard

Extracts a nested Int according to the given jsonPath.

Link copied to clipboard

Extracts a nested Long according to the given jsonPath.

Link copied to clipboard

Extracts a nested String according to the given jsonPath.

Link copied to clipboard
open fun <T> get(key: String, converter: DataItemConverter<T>): T?

Gets the DataItem stored at the given key if there is one, and uses the given converter to translate it into an instance of type T

open override fun get(key: String): DataItem?

Gets the DataItem stored at the given key if it exists regardless of it's underlying type.

Link copied to clipboard

Returns all entries stored in the DataObject

Link copied to clipboard
open fun getBoolean(key: String): Boolean?

Gets the Boolean stored at the given key if there is one

Link copied to clipboard
open fun getDataList(key: String): DataList?

Gets the DataList stored at the given key if there is one

Link copied to clipboard

Gets the DataObject stored at the given key if there is one

Link copied to clipboard
open fun getDouble(key: String): Double?

Gets the Double stored at the given key if there is one

Link copied to clipboard
open fun getInt(key: String): Int?

Gets the Int stored at the given key if there is one

Link copied to clipboard
open fun getLong(key: String): Long?

Gets the Long stored at the given key if there is one

Link copied to clipboard
open fun getString(key: String): String?

Gets the String stored at the given key if there is one

Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open operator override fun iterator(): Iterator<Map.Entry<String, DataItem>>

Returns the Iterator in order to iterate over the collection.

Link copied to clipboard
inline fun <T> DataObject.mapValues(transform: (DataItem) -> T): Map<String, T>

Maps the Map.Entry.value component only, keeping the Map.Entry.key the same.

Link copied to clipboard
inline fun <T> DataObject.mapValuesNotNull(transform: (DataItem) -> T?): Map<String, T>

Maps the Map.Entry.value component only, keeping the Map.Entry.key the same.

Link copied to clipboard
fun merge(other: DataObject, depth: Int = Int.MAX_VALUE): DataObject

Deep merges two DataObjects together, returning a new DataObject containing the merged data.

Link copied to clipboard

Convenience method for merging a Iterable group of Observables of the same type.

Link copied to clipboard
operator fun DataObject.plus(other: DataObject): DataObject

Merges two DataObject objects together.

Link copied to clipboard
open override fun toString(): String