public class UDTValue extends AbstractGettableData
Modifier and Type | Field and Description |
---|---|
protected ProtocolVersion |
protocolVersion |
Modifier and Type | Method and Description |
---|---|
protected void |
checkType(int i,
DataType.Name actual) |
protected void |
checkType(int i,
DataType.Name actual1,
DataType.Name actual2) |
protected void |
checkType(int i,
DataType.Name actual1,
DataType.Name actual2,
DataType.Name actual3) |
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) |
boolean |
equals(Object o) |
<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. |
protected int[] |
getAllIndexesOf(String name) |
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. |
protected CodecRegistry |
getCodecRegistry() |
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. |
protected int |
getIndexOf(String name)
Returns the index corresponding to a given name.
|
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. |
protected String |
getName(int i)
Returns the name corresponding to the value at index
i . |
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. |
UserType |
getType()
The UDT this is a value of.
|
protected DataType |
getType(int i)
Returns the type for the value at index
i . |
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. |
protected ByteBuffer |
getValue(int i)
Returns the value at index
i . |
BigInteger |
getVarint(int i)
Returns the
i th value as a variable length integer. |
int |
hashCode() |
boolean |
isNull(int i)
Returns whether the
i th value is NULL. |
<V> T |
set(int i,
V v,
Class<V> targetClass)
Sets the
i th value to the provided value of the provided Java class. |
<V> T |
set(int i,
V v,
TypeCodec<V> codec)
Sets the
i th value to the provided value, converted using the given TypeCodec . |
<V> T |
set(int i,
V v,
com.google.common.reflect.TypeToken<V> targetType)
Sets the
i th value to the provided value of the provided Java type. |
<V> T |
set(String name,
V v,
Class<V> targetClass)
Sets the value for (all occurrences of) variable
name to the provided value of the provided Java class. |
<V> T |
set(String name,
V v,
TypeCodec<V> codec)
Sets the value for (all occurrences of) variable
name to the provided value,
converted using the given TypeCodec . |
<V> T |
set(String name,
V v,
com.google.common.reflect.TypeToken<V> targetType)
Sets the value for (all occurrences of) variable
name to the provided value of the provided Java type. |
T |
setBool(int i,
boolean v)
Sets the
i th value to the provided boolean. |
T |
setBool(String name,
boolean v)
Sets the value for (all occurrences of) variable
name to the
provided boolean. |
T |
setByte(int i,
byte v)
Set the
i th value to the provided byte. |
T |
setByte(String name,
byte v)
Sets the value for (all occurrences of) variable
name to the
provided byte. |
T |
setBytes(int i,
ByteBuffer v)
Sets the
i th value to the provided byte buffer. |
T |
setBytes(String name,
ByteBuffer v)
Sets the value for (all occurrences of) variable
name to the
provided byte buffer. |
T |
setBytesUnsafe(int i,
ByteBuffer v)
Sets the
i th value to the provided byte buffer. |
T |
setBytesUnsafe(String name,
ByteBuffer v)
Sets the value for (all occurrences of) variable
name to the
provided byte buffer. |
T |
setDate(int i,
LocalDate v)
Set the
i th value to the provided date (without time). |
T |
setDate(String name,
LocalDate v)
Sets the value for (all occurrences of) variable
name to the
provided date (without time). |
T |
setDecimal(int i,
BigDecimal v)
Sets the
i th value to the provided big decimal. |
T |
setDecimal(String name,
BigDecimal v)
Sets the value for (all occurrences of) variable
name to the
provided big decimal. |
T |
setDouble(int i,
double v)
Sets the
i th value to the provided double. |
T |
setDouble(String name,
double v)
Sets the value for (all occurrences of) variable
name to the
provided double. |
T |
setFloat(int i,
float v)
Sets the
i th value to the provided float. |
T |
setFloat(String name,
float v)
Sets the value for (all occurrences of) variable
name to the
provided float. |
T |
setInet(int i,
InetAddress v)
Sets the
i th value to the provided inet address. |
T |
setInet(String name,
InetAddress v)
Sets the value for (all occurrences of) variable
name to the
provided inet address. |
T |
setInt(int i,
int v)
Set the
i th value to the provided integer. |
T |
setInt(String name,
int v)
Sets the value for (all occurrences of) variable
name to the
provided integer. |
<E> T |
setList(int i,
List<E> v)
Sets the
i th value to the provided list. |
<E> T |
setList(int i,
List<E> v,
Class<E> elementsClass)
Sets the
i th value to the provided list, whose elements are of the provided
Java class. |
<E> T |
setList(int i,
List<E> v,
com.google.common.reflect.TypeToken<E> elementsType)
Sets the
i th value to the provided list, whose elements are of the provided
Java type. |
<E> T |
setList(String name,
List<E> v)
Sets the value for (all occurrences of) variable
name to the
provided list. |
<E> T |
setList(String name,
List<E> v,
Class<E> elementsClass)
Sets the value for (all occurrences of) variable
name to the provided list,
whose elements are of the provided Java class. |
<E> T |
setList(String name,
List<E> v,
com.google.common.reflect.TypeToken<E> elementsType)
Sets the value for (all occurrences of) variable
name to the provided list,
whose elements are of the provided Java type. |
T |
setLong(int i,
long v)
Sets the
i th value to the provided long. |
T |
setLong(String name,
long v)
Sets the value for (all occurrences of) variable
name to the
provided long. |
<K,V> T |
setMap(int i,
Map<K,V> v)
Sets the
i th value to the provided map. |
<K,V> T |
setMap(int i,
Map<K,V> v,
Class<K> keysClass,
Class<V> valuesClass)
Sets the
i th value to the provided map, whose keys and values are of the provided
Java classes. |
<K,V> T |
setMap(int i,
Map<K,V> v,
com.google.common.reflect.TypeToken<K> keysType,
com.google.common.reflect.TypeToken<V> valuesType)
Sets the
i th value to the provided map, whose keys and values are of the provided
Java types. |
<K,V> T |
setMap(String name,
Map<K,V> v)
Sets the value for (all occurrences of) variable
name to the
provided map. |
<K,V> T |
setMap(String name,
Map<K,V> v,
Class<K> keysClass,
Class<V> valuesClass)
Sets the value for (all occurrences of) variable
name to the provided map,
whose keys and values are of the provided Java classes. |
<K,V> T |
setMap(String name,
Map<K,V> v,
com.google.common.reflect.TypeToken<K> keysType,
com.google.common.reflect.TypeToken<V> valuesType)
Sets the value for (all occurrences of) variable
name to the provided map,
whose keys and values are of the provided Java types. |
<V> T |
setObject(int i,
V v)
Sets the
i th value to the provided value. |
<V> T |
setObject(String name,
V v)
Sets the value for (all occurrences of) variable
name to the provided value. |
<E> T |
setSet(int i,
Set<E> v)
Sets the
i th value to the provided set. |
<E> T |
setSet(int i,
Set<E> v,
Class<E> elementsClass)
Sets the
i th value to the provided set, whose elements are of the provided
Java class. |
<E> T |
setSet(int i,
Set<E> v,
com.google.common.reflect.TypeToken<E> elementsType)
Sets the
i th value to the provided set, whose elements are of the provided
Java type. |
<E> T |
setSet(String name,
Set<E> v)
Sets the value for (all occurrences of) variable
name to the
provided set. |
<E> T |
setSet(String name,
Set<E> v,
Class<E> elementsClass)
Sets the value for (all occurrences of) variable
name to the provided set,
whose elements are of the provided Java class. |
<E> T |
setSet(String name,
Set<E> v,
com.google.common.reflect.TypeToken<E> elementsType)
Sets the value for (all occurrences of) variable
name to the provided set,
whose elements are of the provided Java type. |
T |
setShort(int i,
short v)
Set the
i th value to the provided short. |
T |
setShort(String name,
short v)
Sets the value for (all occurrences of) variable
name to the
provided short. |
T |
setString(int i,
String v)
Sets the
i th value to the provided string. |
T |
setString(String name,
String v)
Sets the value for (all occurrences of) variable
name to the
provided string. |
T |
setTime(int i,
long v)
Set the
i th value to the provided time as a long in nanoseconds since midnight. |
T |
setTime(String name,
long v)
Sets the value for (all occurrences of) variable
name to the
provided time as a long in nanoseconds since midnight. |
T |
setTimestamp(int i,
Date v)
Set the
i th value to the provided date. |
T |
setTimestamp(String name,
Date v)
Sets the value for (all occurrences of) variable
name to the
provided date. |
T |
setToNull(int i)
Sets the
i th value to null . |
T |
setToNull(String name)
Sets the value for (all occurrences of) variable
name to null . |
T |
setTupleValue(int i,
TupleValue v)
Sets the
i th value to the provided tuple value. |
T |
setTupleValue(String name,
TupleValue v)
Sets the value for (all occurrences of) variable
name to the
provided tuple value. |
T |
setUDTValue(int i,
UDTValue v)
Sets the
i th value to the provided UDT value. |
T |
setUDTValue(String name,
UDTValue v)
Sets the value for (all occurrences of) variable
name to the
provided UDT value. |
T |
setUUID(int i,
UUID v)
Sets the
i th value to the provided UUID. |
T |
setUUID(String name,
UUID v)
Sets the value for (all occurrences of) variable
name to the
provided UUID. |
T |
setVarint(int i,
BigInteger v)
Sets the
i th value to the provided big integer. |
T |
setVarint(String name,
BigInteger v)
Sets the value for (all occurrences of) variable
name to the
provided big integer. |
String |
toString() |
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
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
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
protected final ProtocolVersion protocolVersion
protected DataType getType(int i)
i
.i
- the index of the type to fetch.i
.protected String getName(int i)
i
.i
- the index of the name to fetch.i
.protected CodecRegistry getCodecRegistry()
protected int[] getAllIndexesOf(String name)
public UserType getType()
public boolean equals(Object o)
public int hashCode()
protected ByteBuffer getValue(int i)
i
.i
- the index to fetch.i
.protected int getIndexOf(String name)
AbstractGettableData
getIndexOf
in class AbstractGettableData
name
- the name for which to return the index of.name
.public T setBool(int i, boolean v)
SettableByIndexData
i
th value to the provided boolean.setBool
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setBool(String name, boolean v)
SettableByNameData
name
to the
provided boolean.setBool
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setByte(int i, byte v)
SettableByIndexData
i
th value to the provided byte.setByte
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setByte(String name, byte v)
SettableByNameData
name
to the
provided byte.setByte
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setShort(int i, short v)
SettableByIndexData
i
th value to the provided short.setShort
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setShort(String name, short v)
SettableByNameData
name
to the
provided short.setShort
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setInt(int i, int v)
SettableByIndexData
i
th value to the provided integer.setInt
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setInt(String name, int v)
SettableByNameData
name
to the
provided integer.setInt
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setLong(int i, long v)
SettableByIndexData
i
th value to the provided long.setLong
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setLong(String name, long v)
SettableByNameData
name
to the
provided long.setLong
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setTimestamp(int i, Date v)
SettableByIndexData
i
th value to the provided date.setTimestamp
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setTimestamp(String name, Date v)
SettableByNameData
name
to the
provided date.setTimestamp
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setDate(int i, LocalDate v)
SettableByIndexData
i
th value to the provided date (without time).setDate
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setDate(String name, LocalDate v)
SettableByNameData
name
to the
provided date (without time).setDate
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setTime(int i, long v)
SettableByIndexData
i
th value to the provided time as a long in nanoseconds since midnight.setTime
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setTime(String name, long v)
SettableByNameData
name
to the
provided time as a long in nanoseconds since midnight.setTime
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setFloat(int i, float v)
SettableByIndexData
i
th value to the provided float.setFloat
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setFloat(String name, float v)
SettableByNameData
name
to the
provided float.setFloat
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setDouble(int i, double v)
SettableByIndexData
i
th value to the provided double.setDouble
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setDouble(String name, double v)
SettableByNameData
name
to the
provided double.setDouble
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setString(int i, String v)
SettableByIndexData
i
th value to the provided string.setString
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setString(String name, String v)
SettableByNameData
name
to the
provided string.setString
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setBytes(int i, ByteBuffer v)
SettableByIndexData
i
th value to the provided byte buffer.
This method validate that the type of the column set is BLOB. If you
want to insert manually serialized data into columns of another type,
use SettableByIndexData.setBytesUnsafe(int, java.nio.ByteBuffer)
instead.setBytes
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setBytes(String name, ByteBuffer v)
SettableByNameData
name
to the
provided byte buffer.
This method validate that the type of the column set is BLOB. If you
want to insert manually serialized data into columns of another type,
use SettableByNameData.setBytesUnsafe(java.lang.String, java.nio.ByteBuffer)
instead.setBytes
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setBytesUnsafe(int i, ByteBuffer v)
SettableByIndexData
i
th value to the provided byte buffer.
Contrary to SettableByIndexData.setBytes(int, java.nio.ByteBuffer)
, this method does not check the
type of the column set. If you insert data that is not compatible with
the type of the column, you will get an InvalidQueryException
at
execute time.setBytesUnsafe
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setBytesUnsafe(String name, ByteBuffer v)
SettableByNameData
name
to the
provided byte buffer.
Contrary to SettableByNameData.setBytes(java.lang.String, java.nio.ByteBuffer)
, this method does not check the
type of the column set. If you insert data that is not compatible with
the type of the column, you will get an InvalidQueryException
at
execute time.setBytesUnsafe
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setVarint(int i, BigInteger v)
SettableByIndexData
i
th value to the provided big integer.setVarint
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setVarint(String name, BigInteger v)
SettableByNameData
name
to the
provided big integer.setVarint
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setDecimal(int i, BigDecimal v)
SettableByIndexData
i
th value to the provided big decimal.setDecimal
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setDecimal(String name, BigDecimal v)
SettableByNameData
name
to the
provided big decimal.setDecimal
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setUUID(int i, UUID v)
SettableByIndexData
i
th value to the provided UUID.setUUID
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setUUID(String name, UUID v)
SettableByNameData
name
to the
provided UUID.setUUID
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setInet(int i, InetAddress v)
SettableByIndexData
i
th value to the provided inet address.setInet
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setInet(String name, InetAddress v)
SettableByNameData
name
to the
provided inet address.setInet
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public <E> T setList(int i, List<E> v)
SettableByIndexData
i
th value to the provided list.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method must perform a runtime inspection of the provided list, in order to guess the best codec to serialize the list elements.
Furthermore, if two or more codecs are available
for the underlying CQL type (list
), which one will be used will depend
on the actual object being serialized.
For these reasons, it is generally preferable to use the more
deterministic methods SettableByIndexData.setList(int, List, Class)
or
SettableByIndexData.setList(int, List, TypeToken)
.
setList
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public <E> T setList(int i, List<E> v, Class<E> elementsClass)
SettableByIndexData
i
th value to the provided list, whose elements are of the provided
Java class.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the list elements,
and thus should be used instead of SettableByIndexData.setList(int, List)
whenever possible, because it performs significantly better.
setList
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.elementsClass
- the class for the elements of the list.public <E> T setList(int i, List<E> v, com.google.common.reflect.TypeToken<E> elementsType)
SettableByIndexData
i
th value to the provided list, whose elements are of the provided
Java type.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the list elements,
and thus should be used instead of SettableByIndexData.setList(int, List)
whenever possible, because it performs significantly better.
setList
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.elementsType
- the type for the elements of the list.public <E> T setList(String name, List<E> v)
SettableByNameData
name
to the
provided list.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method must perform a runtime inspection of the provided list, in order to guess the best codec to serialize the list elements. The result of such inspection cannot be cached and thus must be performed for each invocation of this method, which may incur in a performance penalty.
Furthermore, if two or more codecs are available
for the underlying CQL type (list
), which one will be used will depend
on the actual object being serialized.
For these reasons, it is generally preferable to use the more
deterministic methods SettableByNameData.setList(String, List, Class)
or
SettableByNameData.setList(String, List, TypeToken)
.
setList
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public <E> T setList(String name, List<E> v, Class<E> elementsClass)
SettableByNameData
name
to the provided list,
whose elements are of the provided Java class.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the list elements,
and thus should be used instead of SettableByNameData.setList(String, List)
whenever possible, because it performs significantly better.
setList
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiplev
- the value to set.elementsClass
- the class for the elements of the list.public <E> T setList(String name, List<E> v, com.google.common.reflect.TypeToken<E> elementsType)
SettableByNameData
name
to the provided list,
whose elements are of the provided Java type.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the list elements,
and thus should be used instead of SettableByNameData.setList(String, List)
whenever possible, because it performs significantly better.
setList
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiplev
- the value to set.elementsType
- the type for the elements of the list.public <K,V> T setMap(int i, Map<K,V> v)
SettableByIndexData
i
th value to the provided map.
Please note that null
values are not supported inside collection by CQL.
Note about performance: this method must perform a runtime inspection of the provided map, in order to guess the best codec to serialize the map entries. The result of such inspection cannot be cached and thus must be performed for each invocation of this method, which may incur in a performance penalty.
Furthermore, if two or more codecs are available
for the underlying CQL type (map
), which one will be used will depend
on the actual object being serialized.
For these reasons, it is generally preferable to use the more
deterministic methods SettableByIndexData.setMap(int, Map, Class, Class)
or
SettableByIndexData.setMap(int, Map, TypeToken, TypeToken)
.
setMap
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public <K,V> T setMap(int i, Map<K,V> v, Class<K> keysClass, Class<V> valuesClass)
SettableByIndexData
i
th value to the provided map, whose keys and values are of the provided
Java classes.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the map entries,
and thus should be used instead of SettableByIndexData.setMap(int, Map)
whenever possible, because it performs significantly better.
setMap
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.keysClass
- the class for the keys of the map.valuesClass
- the class for the values of the map.public <K,V> T setMap(int i, Map<K,V> v, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)
SettableByIndexData
i
th value to the provided map, whose keys and values are of the provided
Java types.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the map entries,
and thus should be used instead of SettableByIndexData.setMap(int, Map)
whenever possible, because it performs significantly better.
setMap
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.keysType
- the type for the keys of the map.valuesType
- the type for the values of the map.public <K,V> T setMap(String name, Map<K,V> v)
SettableByNameData
name
to the
provided map.
Please note that null
values are not supported inside collection by CQL.
Note about performance: this method must perform a runtime inspection of the provided map, in order to guess the best codec to serialize the map entries. The result of such inspection cannot be cached and thus must be performed for each invocation of this method, which may incur in a performance penalty.
Furthermore, if two or more codecs are available
for the underlying CQL type (map
), which one will be used will depend
on the actual object being serialized.
For these reasons, it is generally preferable to use the more
deterministic methods SettableByNameData.setMap(String, Map, Class, Class)
or
SettableByNameData.setMap(String, Map, TypeToken, TypeToken)
.
setMap
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public <K,V> T setMap(String name, Map<K,V> v, Class<K> keysClass, Class<V> valuesClass)
SettableByNameData
name
to the provided map,
whose keys and values are of the provided Java classes.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the map entries,
and thus should be used instead of SettableByNameData.setMap(String, Map)
whenever possible, because it performs significantly better.
setMap
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.keysClass
- the class for the keys of the map.valuesClass
- the class for the values of the map.public <K,V> T setMap(String name, Map<K,V> v, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)
SettableByNameData
name
to the provided map,
whose keys and values are of the provided Java types.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the map entries,
and thus should be used instead of SettableByNameData.setMap(String, Map)
whenever possible, because it performs significantly better.
setMap
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.keysType
- the type for the keys of the map.valuesType
- the type for the values of the map.public <E> T setSet(int i, Set<E> v)
SettableByIndexData
i
th value to the provided set.
Please note that null
values are not supported inside collection by CQL.
Note about performance: this method must perform a runtime inspection of the provided set, in order to guess the best codec to serialize the set elements. The result of such inspection cannot be cached and thus must be performed for each invocation of this method, which may incur in a performance penalty.
Furthermore, if two or more codecs are available
for the underlying CQL type (set
), which one will be used will depend
on the actual object being serialized.
For these reasons, it is generally preferable to use the more
deterministic methods SettableByIndexData.setSet(int, Set, Class)
or
SettableByIndexData.setSet(int, Set, TypeToken)
.
setSet
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public <E> T setSet(int i, Set<E> v, Class<E> elementsClass)
SettableByIndexData
i
th value to the provided set, whose elements are of the provided
Java class.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the set elements,
and thus should be used instead of SettableByIndexData.setSet(int, Set)
whenever possible, because it performs significantly better.
setSet
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.elementsClass
- the class for the elements of the set.public <E> T setSet(int i, Set<E> v, com.google.common.reflect.TypeToken<E> elementsType)
SettableByIndexData
i
th value to the provided set, whose elements are of the provided
Java type.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the set elements,
and thus should be used instead of SettableByIndexData.setSet(int, Set)
whenever possible, because it performs significantly better.
setSet
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.elementsType
- the type for the elements of the set.public <E> T setSet(String name, Set<E> v)
SettableByNameData
name
to the
provided set.
Please note that null
values are not supported inside collection by CQL.
Note about performance: this method must perform a runtime inspection of the provided map, in order to guess the best codec to serialize the set elements. The result of such inspection cannot be cached and thus must be performed for each invocation of this method, which may incur in a performance penalty.
Furthermore, if two or more codecs are available
for the underlying CQL type (set
), which one will be used will depend
on the actual object being serialized.
For these reasons, it is generally preferable to use the more
deterministic methods SettableByNameData.setSet(String, Set, Class)
or
SettableByNameData.setSet(String, Set, TypeToken)
.
setSet
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public <E> T setSet(String name, Set<E> v, Class<E> elementsClass)
SettableByNameData
name
to the provided set,
whose elements are of the provided Java class.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the set elements,
and thus should be used instead of SettableByNameData.setSet(String, Set)
whenever possible, because it performs significantly better.
setSet
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiplev
- the value to set.elementsClass
- the class for the elements of the set.public <E> T setSet(String name, Set<E> v, com.google.common.reflect.TypeToken<E> elementsType)
SettableByNameData
name
to the provided set,
whose elements are of the provided Java type.
Please note that null
values inside collections are not supported by CQL.
Note about performance: this method is able to cache codecs used to serialize the set elements,
and thus should be used instead of SettableByNameData.setSet(String, Set)
whenever possible, because it performs significantly better.
setSet
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiplev
- the value to set.elementsType
- the type for the elements of the set.public T setUDTValue(int i, UDTValue v)
SettableByIndexData
i
th value to the provided UDT value.setUDTValue
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setUDTValue(String name, UDTValue v)
SettableByNameData
name
to the
provided UDT value.setUDTValue
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public T setTupleValue(int i, TupleValue v)
SettableByIndexData
i
th value to the provided tuple value.setTupleValue
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set.public T setTupleValue(String name, TupleValue v)
SettableByNameData
name
to the
provided tuple value.setTupleValue
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set.public <V> T setObject(int i, V v)
SettableByIndexData
i
th value to the provided value.
Note about performance: this method must perform a runtime inspection of the provided object, in order to guess the best codec to serialize it. The result of such inspection cannot be cached and thus must be performed for each invocation of this method, which may incur in a performance penalty.
Furthermore, if two or more codecs are available for the underlying CQL type, which one will be used will depend on the actual object being serialized.
For these reasons, it is generally preferable to use the more
deterministic methods #set(int, V, Class)
or #set(int, V, TypeToken)
instead.
setObject
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set; may be null
.public <V> T setObject(String name, V v)
SettableByNameData
name
to the provided value.
Note about performance: this method must perform a runtime inspection of the provided object, in order to guess the best codec to serialize it. The result of such inspection cannot be cached and thus must be performed for each invocation of this method, which may incur in a performance penalty.
Furthermore, if two or more codecs are available for the underlying CQL type, which one will be used will depend on the actual object being serialized.
For these reasons, it is generally preferable to use the more
deterministic methods #set(String, V, Class)
or #set(String, V, TypeToken)
instead.
setObject
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set; may be null
.public <V> T set(int i, V v, Class<V> targetClass)
SettableByIndexData
i
th value to the provided value of the provided Java class.
A suitable TypeCodec
instance for the underlying CQL type and the provided class must
have been previously registered with the CodecRegistry
currently in use.
This method should be used instead of SettableByIndexData.setObject(int, Object)
in cases
where more than one codec is registered for the same CQL type; specifying the Java class
allows the CodecRegistry
to narrow down the search and return only an exactly-matching codec (if any),
thus avoiding any risk of ambiguity.
set
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set; may be null
.targetClass
- The Java class to convert to; must not be null
;public <V> T set(String name, V v, Class<V> targetClass)
SettableByNameData
name
to the provided value of the provided Java class.
A suitable TypeCodec
instance for the underlying CQL type and the provided class must
have been previously registered with the CodecRegistry
currently in use.
This method should be used instead of SettableByNameData.setObject(String, Object)
in cases
where more than one codec is registered for the same CQL type; specifying the Java class
allows the CodecRegistry
to narrow down the search and return only an exactly-matching codec (if any),
thus avoiding any risk of ambiguity.
set
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set; may be null
.targetClass
- The Java class to convert to; must not be null
;public <V> T set(int i, V v, com.google.common.reflect.TypeToken<V> targetType)
SettableByIndexData
i
th value to the provided value of the provided Java type.
A suitable TypeCodec
instance for the underlying CQL type and the provided class must
have been previously registered with the CodecRegistry
currently in use.
This method should be used instead of SettableByIndexData.setObject(int, Object)
in cases
where more than one codec is registered for the same CQL type; specifying the Java class
allows the CodecRegistry
to narrow down the search and return only an exactly-matching codec (if any),
thus avoiding any risk of ambiguity.
set
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set; may be null
.targetType
- The Java type to convert to; must not be null
;public <V> T set(String name, V v, com.google.common.reflect.TypeToken<V> targetType)
SettableByNameData
name
to the provided value of the provided Java type.
A suitable TypeCodec
instance for the underlying CQL type and the provided class must
have been previously registered with the CodecRegistry
currently in use.
This method should be used instead of SettableByNameData.setObject(String, Object)
in cases
where more than one codec is registered for the same CQL type; specifying the Java class
allows the CodecRegistry
to narrow down the search and return only an exactly-matching codec (if any),
thus avoiding any risk of ambiguity.
set
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set; may be null
.targetType
- The Java type to convert to; must not be null
;public <V> T set(int i, V v, TypeCodec<V> codec)
SettableByIndexData
i
th value to the provided value, converted using the given TypeCodec
.
Note that this method allows to entirely bypass the CodecRegistry
currently in use
and forces the driver to use the given codec instead.
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.
set
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.v
- the value to set; may be null
.codec
- The TypeCodec
to use to serialize the value; may not be null
.public <V> T set(String name, V v, TypeCodec<V> codec)
SettableByNameData
name
to the provided value,
converted using the given TypeCodec
.
Note that this method allows to entirely bypass the CodecRegistry
currently in use
and forces the driver to use the given codec instead.
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.
set
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.v
- the value to set; may be null
.codec
- The TypeCodec
to use to serialize the value; may not be null
.public T setToNull(int i)
SettableByIndexData
i
th value to null
.
This is mainly intended for CQL types which map to native Java types.
setToNull
in interface SettableByIndexData<T extends SettableData<T>>
i
- the index of the value to set.public T setToNull(String name)
SettableByNameData
name
to null
.
This is mainly intended for CQL types which map to native Java types.
setToNull
in interface SettableByNameData<T extends SettableData<T>>
name
- the name of the value to set; if name
is present multiple
times, all its values are set.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)
protected void checkType(int i, DataType.Name actual1, DataType.Name actual2)
protected void checkType(int i, DataType.Name actual1, DataType.Name actual2, DataType.Name actual3)
public boolean isNull(int i)
i
th value is NULL.isNull
in interface GettableByIndexData
i
- the index (0 <= i < size()
) of the value to check.i
th value is NULL.public boolean getBool(int i)
i
th value as a boolean.getBool
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element. If the
value is NULL, false
is returned.public byte getByte(int i)
i
th value as a byte.getByte
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a byte. If the
value is NULL, 0
is returned.public short getShort(int i)
i
th value as a short.getShort
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a short. If the
value is NULL, 0
is returned.public int getInt(int i)
i
th value as an integer.getInt
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as an integer. If the
value is NULL, 0
is returned.public long getLong(int i)
i
th value as a long.getLong
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a long. If the
value is NULL, 0L
is returned.public Date getTimestamp(int i)
i
th value as a date.getTimestamp
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a data. If the
value is NULL, null
is returned.public LocalDate getDate(int i)
i
th value as a date (without time).getDate
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as an date. If the
value is NULL, null
is returned.public long getTime(int i)
i
th value as a long in nanoseconds since midnight.getTime
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a long. If the
value is NULL, 0L
is returned.public float getFloat(int i)
i
th value as a float.getFloat
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a float. If the
value is NULL, 0.0f
is returned.public double getDouble(int i)
i
th value as a double.getDouble
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a double. If the
value is NULL, 0.0
is returned.public ByteBuffer getBytesUnsafe(int i)
i
th value as a ByteBuffer.
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 GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a ByteBuffer. If the
value is NULL, null
is returned.public ByteBuffer getBytes(int i)
i
th value as a byte array.
Note that this method validate that the column is of type BLOB. If you want to retrieve
the bytes for any type, use GettableByIndexData.getBytesUnsafe(int)
instead.
getBytes
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a byte array. If the
value is NULL, null
is returned.public String getString(int i)
i
th value as a string.getString
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a string. If the
value is NULL, null
is returned.public BigInteger getVarint(int i)
i
th value as a variable length integer.getVarint
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a variable
length integer. If the value is NULL, null
is returned.public BigDecimal getDecimal(int i)
i
th value as a variable length decimal.getDecimal
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a variable
length decimal. If the value is NULL, null
is returned.public UUID getUUID(int i)
i
th value as a UUID.getUUID
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as a UUID.
If the value is NULL, null
is returned.public InetAddress getInet(int i)
i
th value as an InetAddress.getInet
in interface GettableByIndexData
i
- the index (0 <= i < size()
) to retrieve.i
th element as an InetAddress.
If the value is NULL, null
is returned.public <T> List<T> getList(int i, Class<T> elementsClass)
i
th value as a list.
If the type of the elements is generic, use GettableByIndexData.getList(int, TypeToken)
.
getList
in interface GettableByIndexData
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. If the value is NULL, an empty list is
returned (note that Cassandra makes no difference between an empty list
and column of type list that is not set). The returned list is immutable.public <T> List<T> getList(int i, com.google.common.reflect.TypeToken<T> elementsType)
i
th value as a list.
Use this variant with nested collections, which produce a generic element type:
List<List<String>> l = row.getList(1, new TypeToken<List<String>>() {});
getList
in interface GettableByIndexData
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. If the value is NULL, an empty list is
returned (note that Cassandra makes no difference between an empty list
and column of type list that is not set). The returned list is immutable.public <T> Set<T> getSet(int i, Class<T> elementsClass)
i
th value as a set.
If the type of the elements is generic, use GettableByIndexData.getSet(int, TypeToken)
.
getSet
in interface GettableByIndexData
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. If the value is NULL, an empty set is
returned (note that Cassandra makes no difference between an empty set
and column of type set that is not set). The returned set is immutable.public <T> Set<T> getSet(int i, com.google.common.reflect.TypeToken<T> elementsType)
i
th value as a set.
Use this variant with nested collections, which produce a generic element type:
Set<List<String>> l = row.getSet(1, new TypeToken<List<String>>() {});
getSet
in interface GettableByIndexData
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. If the value is NULL, an empty set is
returned (note that Cassandra makes no difference between an empty set
and column of type set that is not set). The returned set is immutable.public <K,V> Map<K,V> getMap(int i, Class<K> keysClass, Class<V> valuesClass)
i
th value as a map.
If the type of the keys and/or values is generic, use GettableByIndexData.getMap(int, TypeToken, TypeToken)
.
getMap
in interface GettableByIndexData
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. If the value is NULL,
an empty map is returned (note that Cassandra makes no difference
between an empty map and column of type map that is not set). The
returned map is immutable.public <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.
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>>() {});
getMap
in interface GettableByIndexData
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. If the value is NULL,
an empty map is returned (note that Cassandra makes no difference
between an empty map and column of type map that is not set). The
returned map is immutable.public UDTValue getUDTValue(int i)
i
th value as a UDT value.getUDTValue
in interface GettableByIndexData
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.public TupleValue getTupleValue(int i)
i
th value as a tuple value.getTupleValue
in interface GettableByIndexData
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.public Object getObject(int i)
i
th value as the Java type matching its CQL type.
This method uses the default codec for the underlying CQL type
to perform deserialization, and is safe to be used
as long as only default codecs are in use.
If a second, custom codec for the same CQL type is registered, which one will
be used is unspecified; in such cases, it is preferable to use
the more deterministic methods GettableByIndexData.get(int, Class)
or GettableByIndexData.get(int, TypeToken)
instead.
getObject
in interface GettableByIndexData
i
- the index to retrieve.i
th value 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.public <T> T get(int i, Class<T> targetClass)
GettableByIndexData
i
th value converted to the given Java type.
A suitable TypeCodec
instance for the underlying CQL type and targetClass
must
have been previously registered with the CodecRegistry
currently in use.
This method should be used instead of GettableByIndexData.getObject(int)
in cases
where more than one codec is registered for the same CQL type; specifying the Java class
allows the CodecRegistry
to narrow down the search and return only an exactly-matching codec (if any),
thus avoiding any risk of ambiguity.
get
in interface GettableByIndexData
i
- the index to retrieve.targetClass
- The Java type the value should be converted to.i
th value converted to the given Java type.
If the CQL value is NULL
, this method will return null
for a simple type, UDT or tuple, and an empty (immutable) collection for collection types.public <T> T get(int i, com.google.common.reflect.TypeToken<T> targetType)
GettableByIndexData
i
th value converted to the given Java type.
A suitable TypeCodec
instance for the underlying CQL type and targetType
must
have been previously registered with the CodecRegistry
currently in use.
This method should be used instead of GettableByIndexData.getObject(int)
in cases
where more than one codec is registered for the same CQL type; specifying the Java class
allows the CodecRegistry
to narrow down the search and return only an exactly-matching codec (if any),
thus avoiding any risk of ambiguity.
get
in interface GettableByIndexData
i
- the index to retrieve.targetType
- The Java type the value should be converted to.i
th value converted to the given Java type.
If the CQL value is NULL
, the default set of codecs will return null
for a simple type, UDT or tuple, and an empty (immutable) collection for collection types.public <T> T get(int i, TypeCodec<T> codec)
GettableByIndexData
i
th value converted using the given TypeCodec
.
Note that this method allows to entirely bypass the CodecRegistry
currently in use
and forces the driver to use the given codec instead.
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.
get
in interface GettableByIndexData
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
.Copyright © 2012–2015. All rights reserved.