Interface Inspector

All Superinterfaces:
Inspectable
All Known Implementing Classes:
MatchFeatureData.HitValue, SlimeAdapter, Value, Value.ArrayValue, Value.BoolValue, Value.DataValue, Value.DoubleValue, Value.EmptyValue, Value.LongValue, Value.ObjectValue, Value.StringValue

public interface Inspector extends Inspectable
This is a generic API for accessing structured, generic, schemaless data. An inspector is a handle to a value that has one of 8 specific types: EMPTY, the 5 scalar types BOOL, LONG, DOUBLE, STRING, or DATA, the simple list-like ARRAY container and the struct-like OBJECT container. Instrospection methods are available, but you can also use accessors with a default value if you expect a certain type and just want your default value if some field doesn't exist or was of the wrong type.
Author:
havardpe
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Access the inspector's value if it's a BOOLEAN; otherwise throws exception
    boolean
    asBool(boolean defaultValue)
    Get the inspector's value (or the supplied default), never throws
    byte[]
    Access the inspector's value if it's DATA; otherwise throws exception
    byte[]
    asData(byte[] defaultValue)
    Get the inspector's value (or the supplied default), never throws
    double
    Access the inspector's value if it's a DOUBLE (or LONG); otherwise throws exception
    double
    asDouble(double defaultValue)
    Get the inspector's value (or the supplied default), never throws
    long
    Access the inspector's value if it's a LONG (or DOUBLE); otherwise throws exception
    long
    asLong(long defaultValue)
    Get the inspector's value (or the supplied default), never throws
    Access the inspector's value if it's a STRING; otherwise throws exception
    asString(String defaultValue)
    Get the inspector's value (or the supplied default), never throws
    byte[]
    Access the inspector's value (in utf-8 representation) if it's a STRING; otherwise throws exception
    byte[]
    asUtf8(byte[] defaultValue)
    Get the inspector's value (or the supplied default), never throws
    Convert an array to an iterable list.
    entry(int idx)
    Access an array entry.
    int
    Get the number of entries in an ARRAY (always returns 0 for non-arrays)
    field(String name)
    Access an field in an object.
    int
    Get the number of fields in an OBJECT (always returns 0 for non-objects)
    Convert an object to an iterable list of (name, value) pairs.
    void
    Traverse an array value, performing callbacks for each entry.
    void
    Traverse an object value, performing callbacks for each field.
    Get the type of an inspector
    boolean
    Check if the inspector is valid.

    Methods inherited from interface com.yahoo.data.access.Inspectable

    inspect
  • Method Details

    • valid

      boolean valid()
      Check if the inspector is valid. If you try to access a field or array entry that does not exist, you will get an invalid Inspector returned.
    • type

      Type type()
      Get the type of an inspector
    • entryCount

      int entryCount()
      Get the number of entries in an ARRAY (always returns 0 for non-arrays)
    • fieldCount

      int fieldCount()
      Get the number of fields in an OBJECT (always returns 0 for non-objects)
    • asBool

      boolean asBool()
      Access the inspector's value if it's a BOOLEAN; otherwise throws exception
    • asLong

      long asLong()
      Access the inspector's value if it's a LONG (or DOUBLE); otherwise throws exception
    • asDouble

      double asDouble()
      Access the inspector's value if it's a DOUBLE (or LONG); otherwise throws exception
    • asString

      String asString()
      Access the inspector's value if it's a STRING; otherwise throws exception
    • asUtf8

      byte[] asUtf8()
      Access the inspector's value (in utf-8 representation) if it's a STRING; otherwise throws exception
    • asData

      byte[] asData()
      Access the inspector's value if it's DATA; otherwise throws exception
    • asBool

      boolean asBool(boolean defaultValue)
      Get the inspector's value (or the supplied default), never throws
    • asLong

      long asLong(long defaultValue)
      Get the inspector's value (or the supplied default), never throws
    • asDouble

      double asDouble(double defaultValue)
      Get the inspector's value (or the supplied default), never throws
    • asString

      String asString(String defaultValue)
      Get the inspector's value (or the supplied default), never throws
    • asUtf8

      byte[] asUtf8(byte[] defaultValue)
      Get the inspector's value (or the supplied default), never throws
    • asData

      byte[] asData(byte[] defaultValue)
      Get the inspector's value (or the supplied default), never throws
    • traverse

      void traverse(ArrayTraverser at)
      Traverse an array value, performing callbacks for each entry. If the current Inspector is connected to an array value, perform callbacks to the given traverser for each entry contained in the array. Otherwise a no-op.
      Parameters:
      at - traverser callback object
    • traverse

      void traverse(ObjectTraverser ot)
      Traverse an object value, performing callbacks for each field. If the current Inspector is connected to an object value, perform callbacks to the given traverser for each field contained in the object. Otherwise a no-op.
      Parameters:
      ot - traverser callback object
    • entry

      Inspector entry(int idx)
      Access an array entry. If the current Inspector doesn't connect to an array value, or the given array index is out of bounds, the returned Inspector will be invalid.
      Parameters:
      idx - array index
      Returns:
      a new Inspector for the entry value
    • field

      Inspector field(String name)
      Access an field in an object. If the current Inspector doesn't connect to an object value, or the object value does not contain a field with the given symbol name, the returned Inspector will be invalid.
      Parameters:
      name - symbol name
      Returns:
      a new Inspector for the field value
    • entries

      Iterable<Inspector> entries()
      Convert an array to an iterable list. Other types will just return an empty list.
    • fields

      Convert an object to an iterable list of (name, value) pairs. Other types will just return an empty list.