Package com.yahoo.data.access
Interface Inspector
- All Superinterfaces:
Inspectable
- All Known Implementing Classes:
SlimeAdapter
,Value
,Value.ArrayValue
,Value.BoolValue
,Value.DataValue
,Value.DoubleValue
,Value.EmptyValue
,Value.LongValue
,Value.ObjectValue
,Value.StringValue
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 TypeMethodDescriptionboolean
asBool()
Access the inspector's value if it's a BOOLEAN; otherwise throws exceptionboolean
asBool
(boolean defaultValue) Get the inspector's value (or the supplied default), never throwsbyte[]
asData()
Access the inspector's value if it's DATA; otherwise throws exceptionbyte[]
asData
(byte[] defaultValue) Get the inspector's value (or the supplied default), never throwsdouble
asDouble()
Access the inspector's value if it's a DOUBLE (or LONG); otherwise throws exceptiondouble
asDouble
(double defaultValue) Get the inspector's value (or the supplied default), never throwslong
asLong()
Access the inspector's value if it's a LONG (or DOUBLE); otherwise throws exceptionlong
asLong
(long defaultValue) Get the inspector's value (or the supplied default), never throwsasString()
Access the inspector's value if it's a STRING; otherwise throws exceptionGet the inspector's value (or the supplied default), never throwsbyte[]
asUtf8()
Access the inspector's value (in utf-8 representation) if it's a STRING; otherwise throws exceptionbyte[]
asUtf8
(byte[] defaultValue) Get the inspector's value (or the supplied default), never throwsentries()
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)Access an field in an object.int
Get the number of fields in an OBJECT (always returns 0 for non-objects)fields()
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.type()
Get the type of an inspectorboolean
valid()
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
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
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
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
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
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
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.
-