public abstract class AbstractGettableData extends Object implements GettableData
| Modifier and Type | Field and Description |
|---|---|
protected ProtocolVersion |
protocolVersion |
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractGettableData(ProtocolVersion protocolVersion)
Creates a new AbstractGettableData object.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkType(int i,
DataType.Name actual) |
protected <T> TypeCodec<T> |
codecFor(int i) |
protected <T> TypeCodec<T> |
codecFor(int i,
Class<T> javaClass) |
protected <T> TypeCodec<T> |
codecFor(int i,
T value) |
protected <T> TypeCodec<T> |
codecFor(int i,
com.google.common.reflect.TypeToken<T> javaType) |
<T> T |
get(int i,
Class<T> targetClass)
Returns the
ith value converted to the given Java type. |
<T> T |
get(int i,
TypeCodec<T> codec)
Returns the
ith value converted using the given TypeCodec. |
<T> T |
get(int i,
com.google.common.reflect.TypeToken<T> targetType)
Returns the
ith value converted to the given Java type. |
<T> T |
get(String name,
Class<T> targetClass)
Returns the value for
name converted to the given Java type. |
<T> T |
get(String name,
TypeCodec<T> codec)
Returns the value for
name converted using the given TypeCodec. |
<T> T |
get(String name,
com.google.common.reflect.TypeToken<T> targetType)
Returns the value for
name converted to the given Java type. |
boolean |
getBool(int i)
Returns the
ith value as a boolean. |
boolean |
getBool(String name)
Returns the value for
name as a boolean. |
byte |
getByte(int i)
Returns the
ith value as a byte. |
byte |
getByte(String name)
Returns the value for
name as a byte. |
ByteBuffer |
getBytes(int i)
Returns the
ith value as a byte array. |
ByteBuffer |
getBytes(String name)
Returns the value for
name as a byte array. |
ByteBuffer |
getBytesUnsafe(int i)
Returns the
ith value as a ByteBuffer. |
ByteBuffer |
getBytesUnsafe(String name)
Returns the value for
name as a ByteBuffer. |
protected abstract CodecRegistry |
getCodecRegistry() |
LocalDate |
getDate(int i)
Returns the
ith value as a date (without time). |
LocalDate |
getDate(String name)
Returns the value for
name as a date (without time). |
BigDecimal |
getDecimal(int i)
Returns the
ith value as a variable length decimal. |
BigDecimal |
getDecimal(String name)
Returns the value for
name as a variable length decimal. |
double |
getDouble(int i)
Returns the
ith value as a double. |
double |
getDouble(String name)
Returns the value for
name as a double. |
float |
getFloat(int i)
Returns the
ith value as a float. |
float |
getFloat(String name)
Returns the value for
name as a float. |
protected abstract int |
getIndexOf(String name)
Returns the index corresponding to a given name.
|
InetAddress |
getInet(int i)
Returns the
ith value as an InetAddress. |
InetAddress |
getInet(String name)
Returns the value for
name as an InetAddress. |
int |
getInt(int i)
Returns the
ith value as an integer. |
int |
getInt(String name)
Returns the value for
name as an integer. |
<T> List<T> |
getList(int i,
Class<T> elementsClass)
Returns the
ith value as a list. |
<T> List<T> |
getList(int i,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the
ith value as a list. |
<T> List<T> |
getList(String name,
Class<T> elementsClass)
Returns the value for
name as a list. |
<T> List<T> |
getList(String name,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the value for
name as a list. |
long |
getLong(int i)
Returns the
ith value as a long. |
long |
getLong(String name)
Returns the value for
name as a long. |
<K,V> Map<K,V> |
getMap(int i,
Class<K> keysClass,
Class<V> valuesClass)
Returns the
ith 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
ith value as a map. |
<K,V> Map<K,V> |
getMap(String name,
Class<K> keysClass,
Class<V> valuesClass)
Returns the value for
name as a map. |
<K,V> Map<K,V> |
getMap(String name,
com.google.common.reflect.TypeToken<K> keysType,
com.google.common.reflect.TypeToken<V> valuesType)
Returns the value for
name as a map. |
protected abstract String |
getName(int i)
Returns the name corresponding to the value at index
i. |
Object |
getObject(int i)
Returns the
ith value as the Java type matching its CQL type. |
Object |
getObject(String name)
Returns the value for
name as the Java type matching its CQL type. |
<T> Set<T> |
getSet(int i,
Class<T> elementsClass)
Returns the
ith value as a set. |
<T> Set<T> |
getSet(int i,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the
ith value as a set. |
<T> Set<T> |
getSet(String name,
Class<T> elementsClass)
Returns the value for
name as a set. |
<T> Set<T> |
getSet(String name,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the value for
name as a set. |
short |
getShort(int i)
Returns the
ith value as a short. |
short |
getShort(String name)
Returns the value for
name as a short. |
String |
getString(int i)
Returns the
ith value as a string. |
String |
getString(String name)
Returns the value for
name as a string. |
long |
getTime(int i)
Returns the
ith value as a long in nanoseconds since midnight. |
long |
getTime(String name)
Returns the value for
name as a long in nanoseconds since midnight. |
Date |
getTimestamp(int i)
Returns the
ith value as a date. |
Date |
getTimestamp(String name)
Returns the value for
name as a date. |
TupleValue |
getTupleValue(int i)
Return the
ith value as a tuple value. |
TupleValue |
getTupleValue(String name)
Return the value for
name as a tuple value. |
protected abstract DataType |
getType(int i)
Returns the type for the value at index
i. |
UDTValue |
getUDTValue(int i)
Return the
ith value as a UDT value. |
UDTValue |
getUDTValue(String name)
Return the value for
name as a UDT value. |
UUID |
getUUID(int i)
Returns the
ith value as a UUID. |
UUID |
getUUID(String name)
Returns the value for
name as a UUID. |
protected abstract ByteBuffer |
getValue(int i)
Returns the value at index
i. |
BigInteger |
getVarint(int i)
Returns the
ith value as a variable length integer. |
BigInteger |
getVarint(String name)
Returns the value for
name as a variable length integer. |
boolean |
isNull(int i)
Returns whether the
ith value is NULL. |
boolean |
isNull(String name)
Returns whether the value for
name is NULL. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitget, get, get, getBool, getByte, getBytes, getBytesUnsafe, getDate, getDecimal, getDouble, getFloat, getInet, getInt, getList, getList, getLong, getMap, getMap, getObject, getSet, getSet, getShort, getString, getTime, getTimestamp, getTupleValue, getUDTValue, getUUID, getVarint, isNullprotected final ProtocolVersion protocolVersion
protected AbstractGettableData(ProtocolVersion protocolVersion)
protocolVersion - the protocol version in which values returned
by getValue(int) will be returned. This must be a protocol version
supported by this driver. In general, the correct value will be the
value returned by ProtocolOptions.getProtocolVersion().IllegalArgumentException - if protocolVersion is not a valid protocol version.protected abstract int getIndexOf(String name)
name - the name for which to return the index of.name.IllegalArgumentException - if name is not valid name for this object.public boolean isNull(String name)
name is NULL.isNull in interface GettableByNameDataname - the name to check.name is NULL.public boolean getBool(String name)
name 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).getBool in interface GettableByNameDataname - the name to retrieve.name. If the value is NULL, false is returned.
If you need to distinguish NULL and false values, check first with GettableByNameData.isNull(String) or use get(name, Boolean.class).public byte getByte(String name)
name 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).getByte in interface GettableByNameDataname - the name to retrieve.name as a byte. If the value is NULL, 0 is returned.
If you need to distinguish NULL and 0, check first with GettableByNameData.isNull(String) or use get(name, Byte.class).
0 is returned.public short getShort(String name)
name 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).getShort in interface GettableByNameDataname - the name to retrieve.name as a short. If the value is NULL, 0 is returned.
If you need to distinguish NULL and 0, check first with GettableByNameData.isNull(String) or use get(name, Short.class).
0 is returned.public int getInt(String name)
name 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).getInt in interface GettableByNameDataname - the name to retrieve.name as an integer. If the value is NULL, 0 is returned.
If you need to distinguish NULL and 0, check first with GettableByNameData.isNull(String) or use get(name, Integer.class).
0 is returned.public long getLong(String name)
name 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).getLong in interface GettableByNameDataname - the name to retrieve.name as a long. If the value is NULL, 0L is returned.
If you need to distinguish NULL and 0L, check first with GettableByNameData.isNull(String) or use get(name, Long.class).public Date getTimestamp(String name)
name 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).getTimestamp in interface GettableByNameDataname - the name to retrieve.name as a date. If the value is NULL,
null is returned.public LocalDate getDate(String name)
name 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).getDate in interface GettableByNameDataname - the name to retrieve.name as a date. If the value is NULL,
null is returned.public long getTime(String name)
name 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).getTime in interface GettableByNameDataname - the name to retrieve.name as a long. If the value is NULL,
0L is returned.public float getFloat(String name)
name 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).getFloat in interface GettableByNameDataname - the name to retrieve.name as a float. If the value is NULL, 0.0f is returned.
If you need to distinguish NULL and 0.0f, check first with GettableByNameData.isNull(String) or use get(name, Float.class).public double getDouble(String name)
name 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).getDouble in interface GettableByNameDataname - the name to retrieve.name as a double. If the value is NULL, 0.0 is returned.
If you need to distinguish NULL and 0.0, check first with GettableByNameData.isNull(String) or use get(name, Double.class).public ByteBuffer getBytesUnsafe(String name)
name 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.
Note: this method always return the bytes composing the value, even if
the column is not of type BLOB. That is, this method never throw an
InvalidTypeException. However, if the type is not BLOB, it is up to the
caller to handle the returned value correctly.getBytesUnsafe in interface GettableByNameDataname - the name to retrieve.name as a ByteBuffer. If the value is NULL,
null is returned.public ByteBuffer getBytes(String name)
name 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).getBytes in interface GettableByNameDataname - the name to retrieve.name as a byte array. If the value is NULL,
null is returned.public String getString(String name)
name 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).getString in interface GettableByNameDataname - the name to retrieve.name as a string. If the value is NULL,
null is returned.public BigInteger getVarint(String name)
name 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).getVarint in interface GettableByNameDataname - the name to retrieve.name as a variable length integer.
If the value is NULL, null is returned.public BigDecimal getDecimal(String name)
name 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).getDecimal in interface GettableByNameDataname - the name to retrieve.name as a variable length decimal.
If the value is NULL, null is returned.public UUID getUUID(String name)
name 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).getUUID in interface GettableByNameDataname - the name to retrieve.name as a UUID.
If the value is NULL, null is returned.public InetAddress getInet(String name)
name 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).getInet in interface GettableByNameDataname - the name to retrieve.name as an InetAddress.
If the value is NULL, null is returned.public <T> List<T> getList(String name, Class<T> elementsClass)
name 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 GettableByNameData.getList(String, 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 mapped to an empty collection (note that Cassandra
makes no distinction between NULL and an empty collection).getList in interface GettableByNameDataname - the name to retrieve.elementsClass - the class for the elements of the list to retrieve.ith element as a list of
T objects.public <T> List<T> getList(String name, com.google.common.reflect.TypeToken<T> elementsType)
name 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("theColumn", 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).getList in interface GettableByNameDataname - the name to retrieve.elementsType - the type for the elements of the list to retrieve.ith element as a list of
T objects.public <T> Set<T> getSet(String name, Class<T> elementsClass)
name 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 GettableByNameData.getSet(String, 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).getSet in interface GettableByNameDataname - the name to retrieve.elementsClass - the class for the elements of the set to retrieve.ith element as a set of
T objects.public <T> Set<T> getSet(String name, com.google.common.reflect.TypeToken<T> elementsType)
name 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("theColumn", 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).getSet in interface GettableByNameDataname - the name to retrieve.elementsType - the type for the elements of the set to retrieve.ith element as a set of
T objects.public <K,V> Map<K,V> getMap(String name, Class<K> keysClass, Class<V> valuesClass)
name 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 GettableByNameData.getMap(String, 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).getMap in interface GettableByNameDataname - the name to retrieve.keysClass - the class for the keys of the map to retrieve.valuesClass - the class for the values of the map to retrieve.name as a map of
K to V objects.public <K,V> Map<K,V> getMap(String name, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)
name 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("theColumn", 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).getMap in interface GettableByNameDataname - the name to retrieve.keysType - the class for the keys of the map to retrieve.valuesType - the class for the values of the map to retrieve.name as a map of
K to V objects.public UDTValue getUDTValue(String name)
name 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).getUDTValue in interface GettableByNameDataname - the name to retrieve.name as a UDT value. If the value is NULL,
then null will be returned.public TupleValue getTupleValue(String name)
name 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).getTupleValue in interface GettableByNameDataname - the name to retrieve.name as a tuple value. If the value is NULL,
then null will be returned.public Object getObject(String name)
name 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 (GettableByNameData.getBool(String), GettableByNameData.getInt(String), etc.), or GettableByNameData.get(String, Class) and
GettableByNameData.get(String, TypeToken) for custom types.getObject in interface GettableByNameDataname - the name to retrieve.name as the Java type matching its CQL type.
If the value is NULL and is a simple type, UDT or tuple, null is returned.
If it is NULL and is a collection type, an empty (immutable) collection is returned.CodecRegistry.codecFor(DataType)public <T> T get(String name, Class<T> targetClass)
name 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 GettableByNameData.get(String, 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.get in interface GettableByNameDataname - the name to retrieve.targetClass - The Java type the value should be converted to.name value converted to the given Java type.public <T> T get(String name, com.google.common.reflect.TypeToken<T> targetType)
name 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.get in interface GettableByNameDataname - the name to retrieve.targetType - The Java type the value should be converted to.name value converted to the given Java type.public <T> T get(String name, TypeCodec<T> codec)
name 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 InvalidTypeExceptions 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.get in interface GettableByNameDataname - the name to retrieve.codec - The TypeCodec to use to deserialize the value; may not be null.ith value converted using the given TypeCodec.protected abstract DataType getType(int i)
i.i - the index of the type to fetch.i.IndexOutOfBoundsException - if i is not a valid index.protected abstract String getName(int i)
i.i - the index of the name to fetch.i.IndexOutOfBoundsException - if i is not a valid index.protected abstract ByteBuffer getValue(int i)
i.i - the index to fetch.i.IndexOutOfBoundsException - if i is not a valid index.protected abstract CodecRegistry getCodecRegistry()
protected <T> TypeCodec<T> codecFor(int i)
protected <T> TypeCodec<T> codecFor(int i, com.google.common.reflect.TypeToken<T> javaType)
protected <T> TypeCodec<T> codecFor(int i, T value)
protected void checkType(int i,
DataType.Name actual)
public boolean isNull(int i)
ith value is NULL.isNull in interface GettableByIndexDatai - the index (0 <= i < size()) of the value to check.ith value is NULL.public boolean getBool(int i)
ith 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).getBool in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element. If the value is NULL, false is returned.
If you need to distinguish NULL and false values, check first with GettableByIndexData.isNull(int) or use get(i, Boolean.class).public byte getByte(int i)
ith 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).getByte in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a byte. If the value is NULL, 0 is returned.
If you need to distinguish NULL and 0, check first with GettableByIndexData.isNull(int) or use get(i, Byte.class).public short getShort(int i)
ith 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).getShort in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a short. If the value is NULL, 0 is returned.
If you need to distinguish NULL and 0, check first with GettableByIndexData.isNull(int) or use get(i, Short.class).public int getInt(int i)
ith 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).getInt in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as an integer. If the value is NULL, 0 is returned.
If you need to distinguish NULL and 0, check first with GettableByIndexData.isNull(int) or use get(i, Integer.class).public long getLong(int i)
ith 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).getLong in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a long. If the value is NULL, 0L is returned.
If you need to distinguish NULL and 0L, check first with GettableByIndexData.isNull(int) or use get(i, Long.class).public Date getTimestamp(int i)
ith 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).getTimestamp in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a data. If the
value is NULL, null is returned.public LocalDate getDate(int i)
ith 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).getDate in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as an date. If the
value is NULL, null is returned.public long getTime(int i)
ith 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).getTime in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a long. If the
value is NULL, 0L is returned.public float getFloat(int i)
ith 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).getFloat in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith 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 GettableByIndexData.isNull(int) or use get(i, Float.class).public double getDouble(int i)
ith 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).getDouble in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith 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 GettableByIndexData.isNull(int) or use get(i, Double.class).public ByteBuffer getBytesUnsafe(int i)
ith 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.getBytesUnsafe in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a ByteBuffer. If the
value is NULL, null is returned.public ByteBuffer getBytes(int i)
ith 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).getBytes in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a byte array. If the
value is NULL, null is returned.public String getString(int i)
ith 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).getString in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a string. If the
value is NULL, null is returned.public BigInteger getVarint(int i)
ith 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).getVarint in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a variable
length integer. If the value is NULL, null is returned.public BigDecimal getDecimal(int i)
ith 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).getDecimal in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a variable
length decimal. If the value is NULL, null is returned.public UUID getUUID(int i)
ith 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).getUUID in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a UUID.
If the value is NULL, null is returned.public InetAddress getInet(int i)
ith 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).getInet in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as an InetAddress.
If the value is NULL, null is returned.public <T> List<T> getList(int i, Class<T> elementsClass)
ith 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 GettableByIndexData.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).getList in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.elementsClass - the class for the elements of the list to retrieve.ith element as a list of
T objects.public <T> List<T> getList(int i, com.google.common.reflect.TypeToken<T> elementsType)
ith 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).getList in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.elementsType - the type of the elements of the list to retrieve.ith element as a list of
T objects.public <T> Set<T> getSet(int i, Class<T> elementsClass)
ith 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 GettableByIndexData.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).getSet in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.elementsClass - the class for the elements of the set to retrieve.ith element as a set of
T objects.public <T> Set<T> getSet(int i, com.google.common.reflect.TypeToken<T> elementsType)
ith 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).getSet in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.elementsType - the type for the elements of the set to retrieve.ith element as a set of
T objects.public <K,V> Map<K,V> getMap(int i, Class<K> keysClass, Class<V> valuesClass)
ith 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 GettableByIndexData.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).getMap in interface GettableByIndexDatai - 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.ith element as a map of
K to V objects.public <K,V> Map<K,V> getMap(int i, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)
ith 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).getMap in interface GettableByIndexDatai - 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.ith element as a map of
K to V objects.public UDTValue getUDTValue(int i)
ith 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).getUDTValue in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a UDT value. If the value is NULL,
then null will be returned.public TupleValue getTupleValue(int i)
ith 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).getTupleValue in interface GettableByIndexDatai - the index (0 <= i < size()) to retrieve.ith element as a tuple value. If the value is NULL,
then null will be returned.public Object getObject(int i)
ith 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 (GettableByIndexData.getBool(int), GettableByIndexData.getInt(int), etc.), or GettableByIndexData.get(int, Class) and
GettableByIndexData.get(int, TypeToken) for custom types.getObject in interface GettableByIndexDatai - the index to retrieve.ith value as the Java type matching its CQL type.CodecRegistry.codecFor(DataType)public <T> T get(int i,
Class<T> targetClass)
GettableByIndexDataith 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 GettableByIndexData.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.get in interface GettableByIndexDatai - the index to retrieve.targetClass - The Java type the value should be converted to.ith value converted to the given Java type.public <T> T get(int i,
com.google.common.reflect.TypeToken<T> targetType)
GettableByIndexDataith 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.get in interface GettableByIndexDatai - the index to retrieve.targetType - The Java type the value should be converted to.ith value converted to the given Java type.public <T> T get(int i,
TypeCodec<T> codec)
GettableByIndexDataith 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 InvalidTypeExceptions 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.get in interface GettableByIndexDatai - the index to retrieve.codec - The TypeCodec to use to deserialize the value; may not be null.ith value converted using the given TypeCodec.