Value

sealed trait Value

Value represents the base sealed trait for all representable types in fabric.

Companion:
object
class Any
class Arr
class Bool
trait Null
object Null.type
trait Num
class NumDec
class NumInt
class Obj
class Str

Type members

Types

type Type

Value members

Abstract methods

The type of value

The type of value

def isEmpty: Boolean

Concrete methods

final def apply(lookup: String): Value

Looks up a Value by name in the children.

Looks up a Value by name in the children.

Throws an exception if invoked on anything except Obj

final def apply(path: Path): Value

Looks up a Value based on Path

Looks up a Value based on Path

Example: val v = someValue("first" \ "second" \ "third")

def asArr: Arr

Casts to Arr or throws an exception if not an Arr

Casts to Arr or throws an exception if not an Arr

def asBigDecimal: BigDecimal

Convenience method for asNum.value

Convenience method for asNum.value

Casts to Bool or throws an exception if not a Bool

Casts to Bool or throws an exception if not a Bool

def asBoolean: Boolean

Convenience method for asBool.value

Convenience method for asBool.value

def asByte: Byte
def asDouble: Double
def asFloat: Float
def asInt: Int
def asLong: Long
def asMap: Map[String, Value]

Convenience method for asObj.value

Convenience method for asObj.value

def asNum: Num

Casts to Num or throws an exception if not a Num

Casts to Num or throws an exception if not a Num

Casts to NumDec or throws an exception if not a NumDec

Casts to NumDec or throws an exception if not a NumDec

Casts to NumInt or throws an exception if not a NumInt

Casts to NumInt or throws an exception if not a NumInt

def asObj: Obj

Casts to Obj or throws an exception if not an Obj

Casts to Obj or throws an exception if not an Obj

def asShort: Short
def asStr: Str

Casts to Str or throws an exception if not a Str

Casts to Str or throws an exception if not a Str

def asString: String

Convenience method for asStr.value

Convenience method for asStr.value

def asValue[V <: Value](`type`: ValueType[V]): V

Safely casts this Value as the specified ValueType. Throws an exception if not a match.

Safely casts this Value as the specified ValueType. Throws an exception if not a match.

Type parameters:
V

the return type

Value parameters:
`type`

the type to cast this ValueType as

def asVector: Vector[Value]

Convenience method for asArr.value

Convenience method for asArr.value

def filter(filter: ValueFilter): Option[Value]

Applies the filter recursively to this value beginning on the leafs working backward up the tree back to the root.

Applies the filter recursively to this value beginning on the leafs working backward up the tree back to the root.

Value parameters:
filter

the filter to apply

Returns:

Option[Value]

final def get(lookup: String): Option[Value]

Looks up a Value by name in the children.

Looks up a Value by name in the children.

final def get(path: Path): Option[Value]

Looks up a Value based on Path

Looks up a Value based on Path

Example: val o: Option[Value] = someValue("first" \ "second" \ "third")

def getArr: Option[Arr]

Casts to Arr if it's of Arr type or returns None

Casts to Arr if it's of Arr type or returns None

def getBigDecimal: Option[BigDecimal]

Convenience method for getNum.map(_.value)

Convenience method for getNum.map(_.value)

def getBool: Option[Bool]

Casts to Bool if it's of Bool type or returns None

Casts to Bool if it's of Bool type or returns None

def getBoolean: Option[Boolean]

Convenience method for getBool.map(_.value)

Convenience method for getBool.map(_.value)

def getByte: Option[Byte]
def getDouble: Option[Double]
def getFloat: Option[Float]
def getInt: Option[Int]
def getLong: Option[Long]
def getMap: Option[Map[String, Value]]

Convenience method for getObj.map(_.value)

Convenience method for getObj.map(_.value)

def getNum: Option[Num]

Casts to Num if it's of Num type or returns None

Casts to Num if it's of Num type or returns None

def getObj: Option[Obj]

Casts to Obj if it's of Obj type or returns None

Casts to Obj if it's of Obj type or returns None

final def getOrCreate(lookup: String): Value

Looks up a Value by name in the children or creates a new Obj if it doesn't exist.

Looks up a Value by name in the children or creates a new Obj if it doesn't exist.

def getShort: Option[Short]
def getStr: Option[Str]

Casts to Str if it's of Str type or returns None

Casts to Str if it's of Str type or returns None

def getString: Option[String]

Convenience method for getStr.map(_.value)

Convenience method for getStr.map(_.value)

final def getValue[V <: Value](`type`: ValueType[V]): Option[V]

Safely casts this Value as the specified ValueType. Returns None if it's a different type.

Safely casts this Value as the specified ValueType. Returns None if it's a different type.

Type parameters:
V

the value type

Value parameters:
`type`

the value type of value you want.

Returns:

Option[V]

def getVector: Option[Vector[Value]]

Convenience method for getArr.map(_.value)

Convenience method for getArr.map(_.value)

def isArr: Boolean

True if this is an Arr

True if this is an Arr

def isBool: Boolean

True if this is a Bool

True if this is a Bool

def isNull: Boolean

True if this is a Null

True if this is a Null

def isNum: Boolean

True if this is a Num

True if this is a Num

def isNumDec: Boolean
def isNumInt: Boolean
def isObj: Boolean

True if this is an Obj

True if this is an Obj

def isStr: Boolean

True if this is a Str

True if this is a Str

def merge(value: Value, path: Path, `type`: MergeType): Value

Merges a Value at the specified path

Merges a Value at the specified path

Value parameters:
`type`

the merge type (defaults to MergeType.Overwrite)

path

the path (defaults to Path.empty)

value

the value to merge

Returns:

root Value after merge

def modify(path: Path)(f: Value => Value): Value

Modifies the value at the specified path and returns back a new root Value with the modified path.

Modifies the value at the specified path and returns back a new root Value with the modified path.

Note: We use the term "modify" here from an immutable standpoint. The original Value will not change.

Value parameters:
f

the function that takes the current Value and returns the modified Value

path

the path to modify

Returns:

new root Value representing the changes

def nonEmpty: Boolean
def remove(path: Path): Value

Convenience functionality for #modify to remove the value at a specific path.

Convenience functionality for #modify to remove the value at a specific path.

Value parameters:
path

the path to remove

Returns:

new root Value representing the changes

def set(path: Path, value: Value): Value

Convenience functionality for #modify to set a specific value at a path.

Convenience functionality for #modify to set a specific value at a path.

Value parameters:
path

the path to replace

value

the new value to set

Returns:

new root Value representing the changes