Package oracle.kv.table

# Interface FieldValue

All Superinterfaces:
  `Comparable<FieldValue>`

All Known Subinterfaces:
  `ArrayValue`, `BinaryValue`, `BooleanValue`, `DoubleValue`, `EnumValue`, `FixedBinaryValue`, `FloatValue`, `IndexKey`, `IntegerValue`, `LongValue`, `MapValue`, `NumberValue`, `PrimaryKey`, `RecordValue`, `ReturnRow`, `Row`, `StringValue`, `TimestampValue`

public interface FieldValue extends Comparable<FieldValue>
FieldValue represents an item, that is, a value and its associated type. Values can be atomic or complex. An atomic value is a single, indivisible unit of data. A complex value is a value that contains or consists of other values and provides access to its nested values.

FieldValue is the building block of row values in a table.

The FieldValue interface defines casting and interrogation methods common to all implementing classes. Each implementing type has its own interface which is an extension of FieldValue. In most cases interfaces that extend FieldValue have corresponding classes that extend `FieldDef`. The exceptions are `Row`, `PrimaryKey` and `IndexKey`. These all extend `RecordValue` as they are specialized instances of records.

By default, fields can be nullable, which means that a special null value can be assigned to them. A null value is a FieldValue instance that returns true for `isNull()` and will throw exceptions for most other operations that require an actual instance of a type. This means that callers who might reasonably expect a null value should first check to see if the value is null before using the value.

FieldValue instances are not thread safe.

Since:
  3.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ArrayValue`
  `asArray()`
  Casts to ArrayValue.
  `BinaryValue`
  `asBinary()`
  Casts to BinaryValue.
  `BooleanValue`
  `asBoolean()`
  Casts to BooleanValue.
  `DoubleValue`
  `asDouble()`
  Casts to DoubleValue.
  `EnumValue`
  `asEnum()`
  Casts to EnumValue.
  `FixedBinaryValue`
  `asFixedBinary()`
  Casts to FixedBinaryValue.
  `FloatValue`
  `asFloat()`
  Casts to FloatValue.
  `IndexKey`
  `asIndexKey()`
  Casts to IndexKey.
  `IntegerValue`
  `asInteger()`
  Casts to IntegerValue.
  `LongValue`
  `asLong()`
  Casts to LongValue.
  `MapValue`
  `asMap()`
  Casts to MapValue.
  `NumberValue`
  `asNumber()`
  Casts to NumberValue.
  `PrimaryKey`
  `asPrimaryKey()`
  Casts to PrimaryKey.
  `RecordValue`
  `asRecord()`
  Casts to RecordValue.
  `Row`
  `asRow()`
  Casts to Row.
  `StringValue`
  `asString()`
  Casts to StringValue.
  `TimestampValue`
  `asTimestamp()`
  Casts to TimestampValue.
  `FieldValue`
  `clone()`
  Create a deep copy of this object.
  `FieldDef`
  `getDefinition()`
  Returns the type associated with this value.
  `FieldDef.Type`
  `getType()`
  Returns the kind of the type associated with this value.
  `boolean`
  `isArray()`
  Returns true if this is an `ArrayValue`.
  `boolean`
  `isAtomic()`
  Returns true if this is an atomic value.
  `boolean`
  `isBinary()`
  Returns true if this is a `BinaryValue`.
  `boolean`
  `isBoolean()`
  Returns true if this is a `BooleanValue`.
  `boolean`
  `isComplex()`
  Returns true if this is a complex value.
  `boolean`
  `isDouble()`
  Returns true if this is a `DoubleValue`.
  `boolean`
  `isEMPTY()`
  Returns true if this is an EMPTY value instance.
  `boolean`
  `isEnum()`
  Returns true if this is an `EnumValue`.
  `boolean`
  `isFixedBinary()`
  Returns true if this is a `FixedBinaryValue`.
  `boolean`
  `isFloat()`
  Returns true if this is a `FloatValue`.
  `boolean`
  `isIndexKey()`
  Returns true if this is an `IndexKey`.
  `boolean`
  `isInteger()`
  Returns true if this is an `IntegerValue`.
  `boolean`
  `isJsonNull()`
  Returns true if this is a null value in a JSON field.
  `boolean`
  `isLong()`
  Returns true if this is a `LongValue`.
  `boolean`
  `isMap()`
  Returns true if this is a `MapValue`.
  `boolean`
  `isNull()`
  Returns true if this is a null value instance.
  `boolean`
  `isNumber()`
  Returns true if this is a `NumberValue`.
  `boolean`
  `isNumeric()`
  Returns true if this is numeric value.
  `boolean`
  `isPrimaryKey()`
  Returns true if this is a `PrimaryKey`.
  `boolean`
  `isRecord()`
  Returns true if this is a `RecordValue`.
  `boolean`
  `isRow()`
  Returns true if this is a `Row`.
  `boolean`
  `isString()`
  Returns true if this is a `StringValue`.
  `boolean`
  `isTimestamp()`
  Returns true if this is a `TimestampValue`.
  `String`
  `toJsonString(boolean prettyPrint)`
  Create a JSON representation of the value.

  ### Methods inherited from interface java.lang.Comparable

  `compareTo`

- ## Method Details

  - ### clone

    FieldValue clone()
    Create a deep copy of this object.
    Returns:
      a new copy

  - ### getType

    FieldDef.Type getType()
    Returns the kind of the type associated with this value. The method will never return any of the "wildcard" types (ANY, ANY_ATOMIC, ANY_RECORD).
    Returns:
      the type of this value
    Throws:
      `UnsupportedOperationException` - if this is the NullValue

  - ### getDefinition

    FieldDef getDefinition()
    Returns the type associated with this value.
    Returns:
      the FieldDef
    Throws:
      `UnsupportedOperationException` - if this is the NullValue

  - ### isBoolean

    boolean isBoolean()
    Returns true if this is a `BooleanValue`.
    Returns:
      true if this is a BooleanValue, false otherwise

  - ### isBinary

    boolean isBinary()
    Returns true if this is a `BinaryValue`.
    Returns:
      true if this is a BinaryValue, false otherwise

  - ### isDouble

    boolean isDouble()
    Returns true if this is a `DoubleValue`.
    Returns:
      true if this is a DoubleValue, false otherwise

  - ### isEnum

    boolean isEnum()
    Returns true if this is an `EnumValue`.
    Returns:
      true if this is an EnumValue, false otherwise

  - ### isFixedBinary

    boolean isFixedBinary()
    Returns true if this is a `FixedBinaryValue`.
    Returns:
      true if this is a FixedBinaryValue, false otherwise

  - ### isFloat

    boolean isFloat()
    Returns true if this is a `FloatValue`.
    Returns:
      true if this is a FloatValue, false otherwise

  - ### isInteger

    boolean isInteger()
    Returns true if this is an `IntegerValue`.
    Returns:
      true if this is an IntegerValue, false otherwise

  - ### isLong

    boolean isLong()
    Returns true if this is a `LongValue`.
    Returns:
      true if this is a LongValue, false otherwise

  - ### isNumber

    boolean isNumber()
    Returns true if this is a `NumberValue`.
    Returns:
      true if this is a NumberValue, false otherwise
    Since:
      4.4

  - ### isString

    boolean isString()
    Returns true if this is a `StringValue`.
    Returns:
      true if this is a StringValue, false otherwise

  - ### isTimestamp

    boolean isTimestamp()
    Returns true if this is a `TimestampValue`.
    Returns:
      true if this is a TimestampValue, false otherwise
    Since:
      4.3

  - ### isArray

    boolean isArray()
    Returns true if this is an `ArrayValue`.
    Returns:
      true if this is an ArrayValue, false otherwise

  - ### isMap

    boolean isMap()
    Returns true if this is a `MapValue`.
    Returns:
      true if this is a MapValue, false otherwise

  - ### isRecord

    boolean isRecord()
    Returns true if this is a `RecordValue`.
    Returns:
      true if this is a RecordValue, false otherwise

  - ### isRow

    boolean isRow()
    Returns true if this is a `Row`. Row also returns true for `isRecord()`.
    Returns:
      true if this is a Row}, false otherwise

  - ### isPrimaryKey

    boolean isPrimaryKey()
    Returns true if this is a `PrimaryKey`. PrimaryKey also returns true for `isRecord()` and `isRow()`.
    Returns:
      true if this is a PrimaryKey}, false otherwise

  - ### isIndexKey

    boolean isIndexKey()
    Returns true if this is an `IndexKey`. IndexKey also returns true for `isRecord()`.
    Returns:
      true if this is an IndexKey}, false otherwise

  - ### isJsonNull

    boolean isJsonNull()
    Returns true if this is a null value in a JSON field. This is different from a null that is assigned in the absence of a value in a nullable field, as indicated by `isNull()`.
    Returns:
      true if this is a JSON null value, false otherwise.
    Since:
      4.2

  - ### isNull

    boolean isNull()
    Returns true if this is a null value instance.
    Returns:
      true if this is a null value, false otherwise.

  - ### isEMPTY

    boolean isEMPTY()
    Returns true if this is an EMPTY value instance.

    An EMPTY value is used internally to represent cases where an expression returns an empty result. Applications do not normally have to deal with EMPTY values. The only exception is in IndexKey instances: when a TableIterator is used to scan an index and return index keys, the EMPTY value may appear in the returned IndexKey instances. This method can be used to check if the value of an IndexKey field is EMPTY. Applications may also use the `IndexKey.putEMPTY(int)` or `IndexKey.putEMPTY(String)` method to search an index for entries containing the EMPTY value in one or more of their fields.

    Returns:
      true if this is an EMPTY value, false otherwise.
    Since:
      4.4

  - ### isAtomic

    boolean isAtomic()
    Returns true if this is an atomic value.
    Returns:
      true if this is an atomic value, false otherwise
    Since:
      4.0

  - ### isNumeric

    boolean isNumeric()
    Returns true if this is numeric value.
    Returns:
      true if this is a numeric value, false otherwise
    Since:
      4.0

  - ### isComplex

    boolean isComplex()
    Returns true if this is a complex value.
    Returns:
      true if this is a complex value, false otherwise
    Since:
      4.0

  - ### asBinary

    BinaryValue asBinary()
    Casts to BinaryValue.
    Returns:
      a BinaryValue
    Throws:
      `ClassCastException` - if this is not a BinaryValue

  - ### asNumber

    NumberValue asNumber()
    Casts to NumberValue.
    Returns:
      a NumberValue
    Throws:
      `ClassCastException` - if this is not a NumberValue
    Since:
      4.4

  - ### asBoolean

    BooleanValue asBoolean()
    Casts to BooleanValue.
    Returns:
      a BooleanValue
    Throws:
      `ClassCastException` - if this is not a BooleanValue

  - ### asDouble

    DoubleValue asDouble()
    Casts to DoubleValue.
    Returns:
      a DoubleValue
    Throws:
      `ClassCastException` - if this is not a DoubleValue

  - ### asEnum

    EnumValue asEnum()
    Casts to EnumValue.
    Returns:
      an EnumValue
    Throws:
      `ClassCastException` - if this is not an EnumValue

  - ### asFixedBinary

    FixedBinaryValue asFixedBinary()
    Casts to FixedBinaryValue.
    Returns:
      a FixedBinaryValue
    Throws:
      `ClassCastException` - if this is not a FixedBinaryValue

  - ### asFloat

    FloatValue asFloat()
    Casts to FloatValue.
    Returns:
      a FloatValue
    Throws:
      `ClassCastException` - if this is not a FloatValue

  - ### asInteger

    IntegerValue asInteger()
    Casts to IntegerValue.
    Returns:
      an IntegerValue
    Throws:
      `ClassCastException` - if this is not an IntegerValue

  - ### asLong

    LongValue asLong()
    Casts to LongValue.
    Returns:
      a LongValue
    Throws:
      `ClassCastException` - if this is not a LongValue

  - ### asString

    StringValue asString()
    Casts to StringValue.
    Returns:
      a StringValue
    Throws:
      `ClassCastException` - if this is not a StringValue

  - ### asTimestamp

    TimestampValue asTimestamp()
    Casts to TimestampValue.
    Returns:
      a TimestampValue
    Throws:
      `ClassCastException` - if this is not a TimestampValue
    Since:
      4.3

  - ### asArray

    ArrayValue asArray()
    Casts to ArrayValue.
    Returns:
      an ArrayValue
    Throws:
      `ClassCastException` - if this is not an ArrayValue

  - ### asMap

    MapValue asMap()
    Casts to MapValue.
    Returns:
      a MapValue
    Throws:
      `ClassCastException` - if this is not a MapValue

  - ### asRecord

    RecordValue asRecord()
    Casts to RecordValue.
    Returns:
      a RecordValue
    Throws:
      `ClassCastException` - if this is not a RecordValue

  - ### asRow

    Row asRow()
    Casts to Row.
    Returns:
      a Row
    Throws:
      `ClassCastException` - if this is not a Row.

  - ### asPrimaryKey

    PrimaryKey asPrimaryKey()
    Casts to PrimaryKey.
    Returns:
      a PrimaryKey
    Throws:
      `ClassCastException` - if this is not a PrimaryKey

  - ### asIndexKey

    IndexKey asIndexKey()
    Casts to IndexKey.
    Returns:
      an IndexKey
    Throws:
      `ClassCastException` - if this is not an IndexKey

  - ### toJsonString

    String toJsonString(boolean prettyPrint)
    Create a JSON representation of the value.
    Parameters:
      `prettyPrint` - set to true for a nicely formatted JSON string, with indentation and carriage returns, otherwise the string will be a single line
    Returns:
      a JSON representation of the value