public interface GettableByIndexData
Modifier and Type | Method and Description |
---|---|
<T> T |
get(int i,
Class<T> targetClass)
Returns the
i th value converted to the given Java type. |
<T> T |
get(int i,
TypeCodec<T> codec)
Returns the
i th value converted using the given TypeCodec . |
<T> T |
get(int i,
com.google.common.reflect.TypeToken<T> targetType)
Returns the
i th value converted to the given Java type. |
boolean |
getBool(int i)
Returns the
i th value as a boolean. |
byte |
getByte(int i)
Returns the
i th value as a byte. |
ByteBuffer |
getBytes(int i)
Returns the
i th value as a byte array. |
ByteBuffer |
getBytesUnsafe(int i)
Returns the
i th value as a ByteBuffer . |
LocalDate |
getDate(int i)
Returns the
i th value as a date (without time). |
BigDecimal |
getDecimal(int i)
Returns the
i th value as a variable length decimal. |
double |
getDouble(int i)
Returns the
i th value as a double. |
float |
getFloat(int i)
Returns the
i th value as a float. |
InetAddress |
getInet(int i)
Returns the
i th value as an InetAddress. |
int |
getInt(int i)
Returns the
i th value as an integer. |
<T> List<T> |
getList(int i,
Class<T> elementsClass)
Returns the
i th value as a list. |
<T> List<T> |
getList(int i,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the
i th value as a list. |
long |
getLong(int i)
Returns the
i th value as a long. |
<K,V> Map<K,V> |
getMap(int i,
Class<K> keysClass,
Class<V> valuesClass)
Returns the
i th value as a map. |
<K,V> Map<K,V> |
getMap(int i,
com.google.common.reflect.TypeToken<K> keysType,
com.google.common.reflect.TypeToken<V> valuesType)
Returns the
i th value as a map. |
Object |
getObject(int i)
Returns the
i th value as the Java type matching its CQL type. |
<T> Set<T> |
getSet(int i,
Class<T> elementsClass)
Returns the
i th value as a set. |
<T> Set<T> |
getSet(int i,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the
i th value as a set. |
short |
getShort(int i)
Returns the
i th value as a short. |
String |
getString(int i)
Returns the
i th value as a string. |
long |
getTime(int i)
Returns the
i th value as a long in nanoseconds since midnight. |
Date |
getTimestamp(int i)
Returns the
i th value as a date. |
TupleValue |
getTupleValue(int i)
Return the
i th value as a tuple value. |
UDTValue |
getUDTValue(int i)
Return the
i th value as a UDT value. |
UUID |
getUUID(int i)
Returns the
i th value as a UUID. |
BigInteger |
getVarint(int i)
Returns the
i th value as a variable length integer. |
boolean |
isNull(int i)
Returns whether the
i th value is NULL. |
boolean isNull(int i)
i
th value is NULL.i
- the index (0 <= i < size()
) of the value to check.i
th value is NULL.IndexOutOfBoundsException
- if i
is not a valid index for
this object.boolean getBool(int i)
i
th value as a boolean.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java boolean
(for CQL type boolean
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element. If the value is NULL, false
is returned.
If you need to distinguish NULL and false values, check first with isNull(int)
or use get(i, Boolean.class)
.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a boolean.byte getByte(int i)
i
th value as a byte.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java byte
(for CQL type tinyint
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a byte. If the value is NULL, 0
is returned.
If you need to distinguish NULL and 0, check first with isNull(int)
or use get(i, Byte.class)
.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a byte.short getShort(int i)
i
th value as a short.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java short
(for CQL type smallint
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a short. If the value is NULL, 0
is returned.
If you need to distinguish NULL and 0, check first with isNull(int)
or use get(i, Short.class)
.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a short.int getInt(int i)
i
th value as an integer.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java int
(for CQL type int
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as an integer. If the value is NULL, 0
is returned.
If you need to distinguish NULL and 0, check first with isNull(int)
or use get(i, Integer.class)
.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to an int.long getLong(int i)
i
th value as a long.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java byte
(for CQL types bigint
and counter
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a long. If the value is NULL, 0L
is returned.
If you need to distinguish NULL and 0L, check first with isNull(int)
or use get(i, Long.class)
.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a long.Date getTimestamp(int i)
i
th value as a date.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Date
(for CQL type timestamp
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a data. If the
value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a Date
.LocalDate getDate(int i)
i
th value as a date (without time).
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a LocalDate
(for CQL type date
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as an date. If the
value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a LocalDate
.long getTime(int i)
i
th value as a long in nanoseconds since midnight.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java long
(for CQL type time
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a long. If the
value is NULL, 0L
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a long.float getFloat(int i)
i
th value as a float.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java float
(for CQL type float
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a float. If the value is NULL, 0.0f
is returned.
If you need to distinguish NULL and 0.0f, check first with isNull(int)
or use get(i, Float.class)
.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a float.double getDouble(int i)
i
th value as a double.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java double
(for CQL type double
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a double. If the value is NULL, 0.0
is returned.
If you need to distinguish NULL and 0.0, check first with isNull(int)
or use get(i, Double.class)
.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a double.ByteBuffer getBytesUnsafe(int i)
i
th value as a ByteBuffer
.
This method does not use any codec; it returns a copy of the binary representation of the value. It is up to the
caller to convert the returned value appropriately.i
- the index (0 <= i < size()
) to retrieve.i
th element as a ByteBuffer. If the
value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.ByteBuffer getBytes(int i)
i
th value as a byte array.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java ByteBuffer
(for CQL type blob
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a byte array. If the
value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a ByteBuffer
.String getString(int i)
i
th value as a string.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a Java string
(for CQL types text
, varchar
and ascii
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a string. If the
value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a string.BigInteger getVarint(int i)
i
th value as a variable length integer.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a BigInteger
(for CQL type varint
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a variable
length integer. If the value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a BigInteger
.BigDecimal getDecimal(int i)
i
th value as a variable length decimal.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a BigDecimal
(for CQL type decimal
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a variable
length decimal. If the value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a BigDecimal
.UUID getUUID(int i)
i
th value as a UUID.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a UUID
(for CQL types uuid
and timeuuid
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as a UUID.
If the value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a UUID
.InetAddress getInet(int i)
i
th value as an InetAddress.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to an InetAddress
(for CQL type inet
, this will be the built-in codec).i
- the index (0 <= i < size()
) to retrieve.i
th element as an InetAddress.
If the value is NULL, null
is returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a InetAddress
.<T> List<T> getList(int i, Class<T> elementsClass)
i
th value as a list.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a list of the specified type.
If the type of the elements is generic, use getList(int, TypeToken)
.
Implementation note: the actual List
implementation will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent. By default, the driver will return mutable instances, and
a CQL NULL
will be mapped to an empty collection (note that Cassandra
makes no distinction between NULL
and an empty collection).i
- the index (0 <= i < size()
) to retrieve.elementsClass
- the class for the elements of the list to retrieve.i
th element as a list of
T
objects.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a list.<T> List<T> getList(int i, com.google.common.reflect.TypeToken<T> elementsType)
i
th value as a list.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a list of the specified type.
Use this variant with nested collections, which produce a generic element type:
List<List<String>> l = row.getList(1, new TypeToken<List<String>>() {});
Implementation note: the actual List
implementation will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent. By default, the driver will return mutable instances, and
a CQL NULL
will mapped to an empty collection (note that Cassandra
makes no distinction between NULL
and an empty collection).i
- the index (0 <= i < size()
) to retrieve.elementsType
- the type of the elements of the list to retrieve.i
th element as a list of
T
objects.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a list.<T> Set<T> getSet(int i, Class<T> elementsClass)
i
th value as a set.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a set of the specified type.
If the type of the elements is generic, use getSet(int, TypeToken)
.
Implementation note: the actual Set
implementation will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent. By default, the driver will return mutable instances, and
a CQL NULL
will mapped to an empty collection (note that Cassandra
makes no distinction between NULL
and an empty collection).i
- the index (0 <= i < size()
) to retrieve.elementsClass
- the class for the elements of the set to retrieve.i
th element as a set of
T
objects.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a set.<T> Set<T> getSet(int i, com.google.common.reflect.TypeToken<T> elementsType)
i
th value as a set.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a set of the specified type.
Use this variant with nested collections, which produce a generic element type:
Set<List<String>> l = row.getSet(1, new TypeToken<List<String>>() {});
Implementation note: the actual Set
implementation will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent. By default, the driver will return mutable instances, and
a CQL NULL
will mapped to an empty collection (note that Cassandra
makes no distinction between NULL
and an empty collection).i
- the index (0 <= i < size()
) to retrieve.elementsType
- the type for the elements of the set to retrieve.i
th element as a set of
T
objects.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a set.<K,V> Map<K,V> getMap(int i, Class<K> keysClass, Class<V> valuesClass)
i
th value as a map.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a map of the specified types.
If the type of the keys and/or values is generic, use getMap(int, TypeToken, TypeToken)
.
Implementation note: the actual Map
implementation will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent. By default, the driver will return mutable instances, and
a CQL NULL
will mapped to an empty collection (note that Cassandra
makes no distinction between NULL
and an empty collection).i
- the index (0 <= i < size()
) to retrieve.keysClass
- the class for the keys of the map to retrieve.valuesClass
- the class for the values of the map to retrieve.i
th element as a map of
K
to V
objects.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a map.<K,V> Map<K,V> getMap(int i, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)
i
th value as a map.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a map of the specified types.
Use this variant with nested collections, which produce a generic element type:
Map<Int, List<String>> l = row.getMap(1, TypeToken.of(Integer.class), new TypeToken<List<String>>() {});
Implementation note: the actual Map
implementation will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent. By default, the driver will return mutable instances, and
a CQL NULL
will mapped to an empty collection (note that Cassandra
makes no distinction between NULL
and an empty collection).i
- the index (0 <= i < size()
) to retrieve.keysType
- the type for the keys of the map to retrieve.valuesType
- the type for the values of the map to retrieve.i
th element as a map of
K
to V
objects.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a map.UDTValue getUDTValue(int i)
i
th value as a UDT value.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a UDTValue
(if the CQL type is a UDT, the registry will generate a codec automatically).i
- the index (0 <= i < size()
) to retrieve.i
th element as a UDT value. If the value is NULL,
then null
will be returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a UDTValue
.TupleValue getTupleValue(int i)
i
th value as a tuple value.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to a TupleValue
(if the CQL type is a tuple, the registry will generate a codec automatically).i
- the index (0 <= i < size()
) to retrieve.i
th element as a tuple value. If the value is NULL,
then null
will be returned.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to a TupleValue
.Object getObject(int i)
i
th value as the Java type matching its CQL type.
This method uses the CodecRegistry
to find the first codec that handles the underlying CQL type. The Java type
of the returned object will be determined by the codec that was selected.
Use this method to dynamically inspect elements when types aren't known in advance, for instance if you're writing a
generic row logger. If you know the target Java type, it is generally preferable to use typed getters, such as the
ones for built-in types (getBool(int)
, getInt(int)
, etc.), or get(int, Class)
and
get(int, TypeToken)
for custom types.i
- the index to retrieve.i
th value as the Java type matching its CQL type.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecRegistry.codecFor(DataType)
<T> T get(int i, Class<T> targetClass)
i
th value converted to the given Java type.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to the given Java type.
If the target type is generic, use get(int, TypeToken)
.
Implementation note: the actual object returned by this method will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent; by default, a CQL NULL
value translates to null
for
simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.i
- the index to retrieve.targetClass
- The Java type the value should be converted to.i
th value converted to the given Java type.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to targetClass
.<T> T get(int i, com.google.common.reflect.TypeToken<T> targetType)
i
th value converted to the given Java type.
This method uses the CodecRegistry
to find a codec to convert the underlying CQL type to the given Java type.
Implementation note: the actual object returned by this method will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent; by default, a CQL NULL
value translates to null
for
simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.i
- the index to retrieve.targetType
- The Java type the value should be converted to.i
th value converted to the given Java type.IndexOutOfBoundsException
- if i
is not a valid index for this object.CodecNotFoundException
- if there is no registered codec to convert the element's CQL
type to targetType
.<T> T get(int i, TypeCodec<T> codec)
i
th value converted using the given TypeCodec
.
This method entirely bypasses the CodecRegistry
and forces the driver to use the given codec instead.
This can be useful if the codec would collide with a previously registered one, or if you want to use the
codec just once without registering it.
It is the caller's responsibility to ensure that the given codec accepts
the underlying CQL type; failing to do so may result in InvalidTypeException
s being thrown.
Implementation note: the actual object returned by this method will depend
on the codec
being used; therefore, callers should
make no assumptions concerning its mutability nor its thread-safety.
Furthermore, the behavior of this method in respect to CQL NULL
values is also
codec-dependent; by default, a CQL NULL
value translates to null
for
simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.i
- the index to retrieve.codec
- The TypeCodec
to use to deserialize the value; may not be null
.i
th value converted using the given TypeCodec
.InvalidTypeException
- if the given codec does not accept
the underlying CQL type.IndexOutOfBoundsException
- if i
is not a valid index for this object.