com.datastax.driver.core

## Class AbstractGettableData

• ### Field Summary

Fields
Modifier and Type Field and Description
protected ProtocolVersion protocolVersion
• ### Constructor Summary

Constructors
Modifier Constructor and Description
protected  AbstractGettableData(ProtocolVersion protocolVersion)
Creates a new AbstractGettableData object.
• ### Method Summary

All Methods
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.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Methods inherited from interface com.datastax.driver.core.GettableByIndexData

get, 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, isNull
• ### Field Detail

• #### protocolVersion

protected final ProtocolVersion protocolVersion
• ### Constructor Detail

• #### AbstractGettableData

protected AbstractGettableData(ProtocolVersion protocolVersion)
Creates a new AbstractGettableData object.
Parameters:
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().
Throws:
IllegalArgumentException - if protocolVersion is not a valid protocol version.
• ### Method Detail

• #### getIndexOf

protected abstract int getIndexOf(String name)
Returns the index corresponding to a given name.
Parameters:
name - the name for which to return the index of.
Returns:
the index for the value coressponding to name.
Throws:
IllegalArgumentException - if name is not valid name for this object.
• #### isNull

public boolean isNull(String name)
Returns whether the value for name is NULL.
Specified by:
isNull in interface GettableByNameData
Parameters:
name - the name to check.
Returns:
whether the value for name is NULL.
• #### getBool

public boolean getBool(String name)
Returns the value for 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).

Specified by:
getBool in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the boolean value for 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).
• #### getByte

public byte getByte(String name)
Returns the value for 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).

Specified by:
getByte in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for 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.
• #### getShort

public short getShort(String name)
Returns the value for 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).

Specified by:
getShort in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for 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.
• #### getInt

public int getInt(String name)
Returns the value for 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).

Specified by:
getInt in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for 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.
• #### getLong

public long getLong(String name)
Returns the value for 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).

Specified by:
getLong in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for 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).
• #### getTimestamp

public Date getTimestamp(String name)
Returns the value for 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).

Specified by:
getTimestamp in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a date. If the value is NULL, null is returned.
• #### getDate

public LocalDate getDate(String name)
Returns the value for 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).

Specified by:
getDate in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a date. If the value is NULL, null is returned.
• #### getTime

public long getTime(String name)
Returns the value for 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).

Specified by:
getTime in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a long. If the value is NULL, 0L is returned.
• #### getFloat

public float getFloat(String name)
Returns the value for 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).

Specified by:
getFloat in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for 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).
• #### getDouble

public double getDouble(String name)
Returns the value for 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).

Specified by:
getDouble in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for 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).
• #### getBytesUnsafe

public ByteBuffer getBytesUnsafe(String name)
Returns the value for 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.

Specified by:
getBytesUnsafe in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a ByteBuffer. If the value is NULL, null is returned.
• #### getBytes

public ByteBuffer getBytes(String name)
Returns the value for 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).

Specified by:
getBytes in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a byte array. If the value is NULL, null is returned.
• #### getString

public String getString(String name)
Returns the value for 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).

Specified by:
getString in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a string. If the value is NULL, null is returned.
• #### getVarint

public BigInteger getVarint(String name)
Returns the value for 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).

Specified by:
getVarint in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a variable length integer. If the value is NULL, null is returned.
• #### getDecimal

public BigDecimal getDecimal(String name)
Returns the value for 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).

Specified by:
getDecimal in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a variable length decimal. If the value is NULL, null is returned.
• #### getUUID

public UUID getUUID(String name)
Returns the value for 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).

Specified by:
getUUID in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as a UUID. If the value is NULL, null is returned.
• #### getInet

public InetAddress getInet(String name)
Returns the value for 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).

Specified by:
getInet in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value for name as an InetAddress. If the value is NULL, null is returned.
• #### getList

public <T> List<T> getList(String name,
Class<T> elementsClass)
Returns the value for 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).

Specified by:
getList in interface GettableByNameData
Parameters:
name - the name to retrieve.
elementsClass - the class for the elements of the list to retrieve.
Returns:
the value of the ith element as a list of T objects.
• #### getList

public <T> List<T> getList(String name,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the value for 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).

Specified by:
getList in interface GettableByNameData
Parameters:
name - the name to retrieve.
elementsType - the type for the elements of the list to retrieve.
Returns:
the value of the ith element as a list of T objects.
• #### getSet

public <T> Set<T> getSet(String name,
Class<T> elementsClass)
Returns the value for 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).

Specified by:
getSet in interface GettableByNameData
Parameters:
name - the name to retrieve.
elementsClass - the class for the elements of the set to retrieve.
Returns:
the value of the ith element as a set of T objects.
• #### getSet

public <T> Set<T> getSet(String name,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the value for 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).

Specified by:
getSet in interface GettableByNameData
Parameters:
name - the name to retrieve.
elementsType - the type for the elements of the set to retrieve.
Returns:
the value of the ith element as a set of T objects.
• #### getMap

public <K,V> Map<K,V> getMap(String name,
Class<K> keysClass,
Class<V> valuesClass)
Returns the value for 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).

Specified by:
getMap in interface GettableByNameData
Parameters:
name - 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.
Returns:
the value of name as a map of K to V objects.
• #### getMap

public <K,V> Map<K,V> getMap(String name,
com.google.common.reflect.TypeToken<V> valuesType)
Returns the value for 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).

Specified by:
getMap in interface GettableByNameData
Parameters:
name - 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.
Returns:
the value of name as a map of K to V objects.
• #### getUDTValue

public UDTValue getUDTValue(String name)
Return the value for 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).

Specified by:
getUDTValue in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value of name as a UDT value. If the value is NULL, then null will be returned.
• #### getTupleValue

public TupleValue getTupleValue(String name)
Return the value for 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).

Specified by:
getTupleValue in interface GettableByNameData
Parameters:
name - the name to retrieve.
Returns:
the value of name as a tuple value. If the value is NULL, then null will be returned.
• #### get

public <T> T get(String name,
Class<T> targetClass)
Returns the value for 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.

Specified by:
get in interface GettableByNameData
Parameters:
name - the name to retrieve.
targetClass - The Java type the value should be converted to.
Returns:
the value for name value converted to the given Java type.
• #### get

public <T> T get(String name,
com.google.common.reflect.TypeToken<T> targetType)
Returns the value for 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.

Specified by:
get in interface GettableByNameData
Parameters:
name - the name to retrieve.
targetType - The Java type the value should be converted to.
Returns:
the value for name value converted to the given Java type.
• #### get

public <T> T get(String name,
TypeCodec<T> codec)
Returns the value for 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.

Specified by:
get in interface GettableByNameData
Parameters:
name - the name to retrieve.
codec - The TypeCodec to use to deserialize the value; may not be null.
Returns:
the value of the ith value converted using the given TypeCodec.
• #### getType

protected abstract DataType getType(int i)
Returns the type for the value at index i.
Parameters:
i - the index of the type to fetch.
Returns:
the type of the value at index i.
Throws:
IndexOutOfBoundsException - if i is not a valid index.
• #### getName

protected abstract String getName(int i)
Returns the name corresponding to the value at index i.
Parameters:
i - the index of the name to fetch.
Returns:
the name corresponding to the value at index i.
Throws:
IndexOutOfBoundsException - if i is not a valid index.
• #### getValue

protected abstract ByteBuffer getValue(int i)
Returns the value at index i.
Parameters:
i - the index to fetch.
Returns:
the value at index i.
Throws:
IndexOutOfBoundsException - if i is not a valid index.
• #### getCodecRegistry

protected abstract CodecRegistry getCodecRegistry()
• #### codecFor

protected <T> TypeCodec<T> codecFor(int i)
• #### codecFor

protected <T> TypeCodec<T> codecFor(int i,
Class<T> javaClass)
• #### codecFor

protected <T> TypeCodec<T> codecFor(int i,
com.google.common.reflect.TypeToken<T> javaType)
• #### codecFor

protected <T> TypeCodec<T> codecFor(int i,
T value)
• #### checkType

protected void checkType(int i,
DataType.Name actual)
• #### isNull

public boolean isNull(int i)
Returns whether the ith value is NULL.
Specified by:
isNull in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) of the value to check.
Returns:
whether the ith value is NULL.
• #### getBool

public boolean getBool(int i)
Returns the 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).

Specified by:
getBool in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the boolean value of the 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).
• #### getByte

public byte getByte(int i)
Returns the 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).

Specified by:
getByte in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the 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).
• #### getShort

public short getShort(int i)
Returns the 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).

Specified by:
getShort in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the 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).
• #### getInt

public int getInt(int i)
Returns the 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).

Specified by:
getInt in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the 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).
• #### getLong

public long getLong(int i)
Returns the 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).

Specified by:
getLong in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the 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).
• #### getTimestamp

public Date getTimestamp(int i)
Returns the 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).

Specified by:
getTimestamp in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a data. If the value is NULL, null is returned.
• #### getDate

public LocalDate getDate(int i)
Returns the 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).

Specified by:
getDate in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as an date. If the value is NULL, null is returned.
• #### getTime

public long getTime(int i)
Returns the 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).

Specified by:
getTime in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a long. If the value is NULL, 0L is returned.
• #### getFloat

public float getFloat(int i)
Returns the 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).

Specified by:
getFloat in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the 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).
• #### getDouble

public double getDouble(int i)
Returns the 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).

Specified by:
getDouble in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the 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).
• #### getBytesUnsafe

public ByteBuffer getBytesUnsafe(int i)
Returns the 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.

Specified by:
getBytesUnsafe in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a ByteBuffer. If the value is NULL, null is returned.
• #### getBytes

public ByteBuffer getBytes(int i)
Returns the 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).

Specified by:
getBytes in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a byte array. If the value is NULL, null is returned.
• #### getString

public String getString(int i)
Returns the 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).

Specified by:
getString in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a string. If the value is NULL, null is returned.
• #### getVarint

public BigInteger getVarint(int i)
Returns the 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).

Specified by:
getVarint in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a variable length integer. If the value is NULL, null is returned.
• #### getDecimal

public BigDecimal getDecimal(int i)
Returns the 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).

Specified by:
getDecimal in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a variable length decimal. If the value is NULL, null is returned.
• #### getUUID

public UUID getUUID(int i)
Returns the 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).

Specified by:
getUUID in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a UUID. If the value is NULL, null is returned.
• #### getInet

public InetAddress getInet(int i)
Returns the 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).

Specified by:
getInet in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as an InetAddress. If the value is NULL, null is returned.
• #### getList

public <T> List<T> getList(int i,
Class<T> elementsClass)
Returns the 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).

Specified by:
getList in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
elementsClass - the class for the elements of the list to retrieve.
Returns:
the value of the ith element as a list of T objects.
• #### getList

public <T> List<T> getList(int i,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the 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).

Specified by:
getList in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
elementsType - the type of the elements of the list to retrieve.
Returns:
the value of the ith element as a list of T objects.
• #### getSet

public <T> Set<T> getSet(int i,
Class<T> elementsClass)
Returns the 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).

Specified by:
getSet in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
elementsClass - the class for the elements of the set to retrieve.
Returns:
the value of the ith element as a set of T objects.
• #### getSet

public <T> Set<T> getSet(int i,
com.google.common.reflect.TypeToken<T> elementsType)
Returns the 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).

Specified by:
getSet in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
elementsType - the type for the elements of the set to retrieve.
Returns:
the value of the ith element as a set of T objects.
• #### getMap

public <K,V> Map<K,V> getMap(int i,
Class<K> keysClass,
Class<V> valuesClass)
Returns the 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).

Specified by:
getMap in interface GettableByIndexData
Parameters:
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.
Returns:
the value of the ith element as a map of K to V objects.
• #### getMap

public <K,V> Map<K,V> getMap(int i,
com.google.common.reflect.TypeToken<V> valuesType)
Returns the 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).

Specified by:
getMap in interface GettableByIndexData
Parameters:
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.
Returns:
the value of the ith element as a map of K to V objects.
• #### getUDTValue

public UDTValue getUDTValue(int i)
Return the 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).

Specified by:
getUDTValue in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a UDT value. If the value is NULL, then null will be returned.
• #### getTupleValue

public TupleValue getTupleValue(int i)
Return the 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).

Specified by:
getTupleValue in interface GettableByIndexData
Parameters:
i - the index (0 <= i < size()) to retrieve.
Returns:
the value of the ith element as a tuple value. If the value is NULL, then null will be returned.
• #### get

public <T> T get(int i,
Class<T> targetClass)
Description copied from interface: GettableByIndexData
Returns the ith 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.

Specified by:
get in interface GettableByIndexData
Parameters:
i - the index to retrieve.
targetClass - The Java type the value should be converted to.
Returns:
the value of the ith value converted to the given Java type.
• #### get

public <T> T get(int i,
com.google.common.reflect.TypeToken<T> targetType)
Description copied from interface: GettableByIndexData
Returns the ith 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.

Specified by:
get in interface GettableByIndexData
Parameters:
i - the index to retrieve.
targetType - The Java type the value should be converted to.
Returns:
the value of the ith value converted to the given Java type.
• #### get

public <T> T get(int i,
TypeCodec<T> codec)
Description copied from interface: GettableByIndexData
Returns the ith 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.

Specified by:
get in interface GettableByIndexData
Parameters:
i - the index to retrieve.
codec - The TypeCodec to use to deserialize the value; may not be null.
Returns:
the value of the ith value converted using the given TypeCodec.