Class AbstractGettableData
- java.lang.Object
-
- org.apache.cassandra.cql3.functions.types.AbstractGettableData
-
- All Implemented Interfaces:
GettableByIndexData,GettableByNameData,GettableData
- Direct Known Subclasses:
UDTValue
public abstract class AbstractGettableData extends java.lang.Object implements GettableData
-
-
Field Summary
Fields Modifier and Type Field Description protected ProtocolVersionprotocolVersion
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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, java.lang.Class<T> javaClass)protected <T> TypeCodec<T>codecFor(int i, T value)<T> Tget(int i, com.google.common.reflect.TypeToken<T> targetType)Returns theith value converted to the given Java type.<T> Tget(int i, java.lang.Class<T> targetClass)Returns theith value converted to the given Java type.<T> Tget(int i, TypeCodec<T> codec)Returns theith value converted using the givenTypeCodec.<T> Tget(java.lang.String name, com.google.common.reflect.TypeToken<T> targetType)Returns the value fornameconverted to the given Java type.<T> Tget(java.lang.String name, java.lang.Class<T> targetClass)Returns the value fornameconverted to the given Java type.<T> Tget(java.lang.String name, TypeCodec<T> codec)Returns the value fornameconverted using the givenTypeCodec.booleangetBool(int i)Returns theith value as a boolean.booleangetBool(java.lang.String name)Returns the value fornameas a boolean.bytegetByte(int i)Returns theith value as a byte.bytegetByte(java.lang.String name)Returns the value fornameas a byte.java.nio.ByteBuffergetBytes(int i)Returns theith value as a byte array.java.nio.ByteBuffergetBytes(java.lang.String name)Returns the value fornameas a byte array.java.nio.ByteBuffergetBytesUnsafe(int i)Returns theith value as aByteBuffer.java.nio.ByteBuffergetBytesUnsafe(java.lang.String name)Returns the value fornameas a ByteBuffer.protected abstract CodecRegistrygetCodecRegistry()LocalDategetDate(int i)Returns theith value as a date (without time).LocalDategetDate(java.lang.String name)Returns the value fornameas a date (without time).java.math.BigDecimalgetDecimal(int i)Returns theith value as a variable length decimal.java.math.BigDecimalgetDecimal(java.lang.String name)Returns the value fornameas a variable length decimal.doublegetDouble(int i)Returns theith value as a double.doublegetDouble(java.lang.String name)Returns the value fornameas a double.floatgetFloat(int i)Returns theith value as a float.floatgetFloat(java.lang.String name)Returns the value fornameas a float.protected abstract intgetIndexOf(java.lang.String name)Returns the index corresponding to a given name.java.net.InetAddressgetInet(int i)Returns theith value as an InetAddress.java.net.InetAddressgetInet(java.lang.String name)Returns the value fornameas an InetAddress.intgetInt(int i)Returns theith value as an integer.intgetInt(java.lang.String name)Returns the value fornameas an integer.<T> java.util.List<T>getList(int i, com.google.common.reflect.TypeToken<T> elementsType)Returns theith value as a list.<T> java.util.List<T>getList(int i, java.lang.Class<T> elementsClass)Returns theith value as a list.<T> java.util.List<T>getList(java.lang.String name, com.google.common.reflect.TypeToken<T> elementsType)Returns the value fornameas a list.<T> java.util.List<T>getList(java.lang.String name, java.lang.Class<T> elementsClass)Returns the value fornameas a list.longgetLong(int i)Returns theith value as a long.longgetLong(java.lang.String name)Returns the value fornameas a long.<K,V>
java.util.Map<K,V>getMap(int i, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)Returns theith value as a map.<K,V>
java.util.Map<K,V>getMap(int i, java.lang.Class<K> keysClass, java.lang.Class<V> valuesClass)Returns theith value as a map.<K,V>
java.util.Map<K,V>getMap(java.lang.String name, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)Returns the value fornameas a map.<K,V>
java.util.Map<K,V>getMap(java.lang.String name, java.lang.Class<K> keysClass, java.lang.Class<V> valuesClass)Returns the value fornameas a map.protected abstract java.lang.StringgetName(int i)Returns the name corresponding to the value at indexi.java.lang.ObjectgetObject(int i)Returns theith value as the Java type matching its CQL type.java.lang.ObjectgetObject(java.lang.String name)Returns the value fornameas the Java type matching its CQL type.<T> java.util.Set<T>getSet(int i, com.google.common.reflect.TypeToken<T> elementsType)Returns theith value as a set.<T> java.util.Set<T>getSet(int i, java.lang.Class<T> elementsClass)Returns theith value as a set.<T> java.util.Set<T>getSet(java.lang.String name, com.google.common.reflect.TypeToken<T> elementsType)Returns the value fornameas a set.<T> java.util.Set<T>getSet(java.lang.String name, java.lang.Class<T> elementsClass)Returns the value fornameas a set.shortgetShort(int i)Returns theith value as a short.shortgetShort(java.lang.String name)Returns the value fornameas a short.java.lang.StringgetString(int i)Returns theith value as a string.java.lang.StringgetString(java.lang.String name)Returns the value fornameas a string.longgetTime(int i)Returns theith value as a long in nanoseconds since midnight.longgetTime(java.lang.String name)Returns the value fornameas a long in nanoseconds since midnight.java.util.DategetTimestamp(int i)Returns theith value as a date.java.util.DategetTimestamp(java.lang.String name)Returns the value fornameas a date.TupleValuegetTupleValue(int i)Return theith value as a tuple value.TupleValuegetTupleValue(java.lang.String name)Return the value fornameas a tuple value.protected abstract DataTypegetType(int i)Returns the type for the value at indexi.UDTValuegetUDTValue(int i)Return theith value as a UDT value.UDTValuegetUDTValue(java.lang.String name)Return the value fornameas a UDT value.java.util.UUIDgetUUID(int i)Returns theith value as a UUID.java.util.UUIDgetUUID(java.lang.String name)Returns the value fornameas a UUID.protected abstract java.nio.ByteBuffergetValue(int i)Returns the value at indexi.java.math.BigIntegergetVarint(int i)Returns theith value as a variable length integer.java.math.BigIntegergetVarint(java.lang.String name)Returns the value fornameas a variable length integer.booleanisNull(int i)Returns whether theith value is NULL.booleanisNull(java.lang.String name)Returns whether the value fornameis NULL.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cassandra.cql3.functions.types.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
-
-
Method Detail
-
getIndexOf
protected abstract int getIndexOf(java.lang.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:
java.lang.IllegalArgumentException- ifnameis not valid name for this object.
-
isNull
public boolean isNull(java.lang.String name)
Returns whether the value fornameis NULL.- Specified by:
isNullin interfaceGettableByNameData- Parameters:
name- the name to check.- Returns:
- whether the value for
nameis NULL.
-
getBool
public boolean getBool(java.lang.String name)
Returns the value fornameas a boolean.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javaboolean(for CQL typeboolean, this will be the built-in codec).- Specified by:
getBoolin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the boolean value for
name. If the value is NULL,falseis returned. If you need to distinguish NULL and false values, check first withGettableByNameData.isNull(String)or useget(name, Boolean.class).
-
getByte
public byte getByte(java.lang.String name)
Returns the value fornameas a byte.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javabyte(for CQL typetinyint, this will be the built-in codec).- Specified by:
getBytein interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a byte. If the value is NULL,0is returned. If you need to distinguish NULL and 0, check first withGettableByNameData.isNull(String)or useget(name, Byte.class).0is returned.
-
getShort
public short getShort(java.lang.String name)
Returns the value fornameas a short.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javashort(for CQL typesmallint, this will be the built-in codec).- Specified by:
getShortin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a short. If the value is NULL,0is returned. If you need to distinguish NULL and 0, check first withGettableByNameData.isNull(String)or useget(name, Short.class).0is returned.
-
getInt
public int getInt(java.lang.String name)
Returns the value fornameas an integer.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javaint(for CQL typeint, this will be the built-in codec).- Specified by:
getIntin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas an integer. If the value is NULL,0is returned. If you need to distinguish NULL and 0, check first withGettableByNameData.isNull(String)or useget(name, Integer.class).0is returned.
-
getLong
public long getLong(java.lang.String name)
Returns the value fornameas a long.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javabyte(for CQL typesbigintandcounter, this will be the built-in codec).- Specified by:
getLongin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a long. If the value is NULL,0Lis returned. If you need to distinguish NULL and 0L, check first withGettableByNameData.isNull(String)or useget(name, Long.class).
-
getTimestamp
public java.util.Date getTimestamp(java.lang.String name)
Returns the value fornameas a date.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aDate(for CQL typetimestamp, this will be the built-in codec).- Specified by:
getTimestampin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a date. If the value is NULL,nullis returned.
-
getDate
public LocalDate getDate(java.lang.String name)
Returns the value fornameas a date (without time).This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aLocalDate(for CQL typedate, this will be the built-in codec).- Specified by:
getDatein interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a date. If the value is NULL,nullis returned.
-
getTime
public long getTime(java.lang.String name)
Returns the value fornameas a long in nanoseconds since midnight.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javalong(for CQL typetime, this will be the built-in codec).- Specified by:
getTimein interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a long. If the value is NULL,0Lis returned.
-
getFloat
public float getFloat(java.lang.String name)
Returns the value fornameas a float.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javafloat(for CQL typefloat, this will be the built-in codec).- Specified by:
getFloatin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a float. If the value is NULL,0.0fis returned. If you need to distinguish NULL and 0.0f, check first withGettableByNameData.isNull(String)or useget(name, Float.class).
-
getDouble
public double getDouble(java.lang.String name)
Returns the value fornameas a double.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javadouble(for CQL typedouble, this will be the built-in codec).- Specified by:
getDoublein interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a double. If the value is NULL,0.0is returned. If you need to distinguish NULL and 0.0, check first withGettableByNameData.isNull(String)or useget(name, Double.class).
-
getBytesUnsafe
public java.nio.ByteBuffer getBytesUnsafe(java.lang.String name)
Returns the value fornameas 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:
getBytesUnsafein interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a ByteBuffer. If the value is NULL,nullis returned.
-
getBytes
public java.nio.ByteBuffer getBytes(java.lang.String name)
Returns the value fornameas a byte array.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a JavaByteBuffer(for CQL typeblob, this will be the built-in codec).- Specified by:
getBytesin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a byte array. If the value is NULL,nullis returned.
-
getString
public java.lang.String getString(java.lang.String name)
Returns the value fornameas a string.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Java string (for CQL typestext,varcharandascii, this will be the built-in codec).- Specified by:
getStringin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a string. If the value is NULL,nullis returned.
-
getVarint
public java.math.BigInteger getVarint(java.lang.String name)
Returns the value fornameas a variable length integer.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aBigInteger(for CQL typevarint, this will be the built-in codec).- Specified by:
getVarintin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a variable length integer. If the value is NULL,nullis returned.
-
getDecimal
public java.math.BigDecimal getDecimal(java.lang.String name)
Returns the value fornameas a variable length decimal.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aBigDecimal(for CQL typedecimal, this will be the built-in codec).- Specified by:
getDecimalin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a variable length decimal. If the value is NULL,nullis returned.
-
getUUID
public java.util.UUID getUUID(java.lang.String name)
Returns the value fornameas a UUID.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aUUID(for CQL typesuuidandtimeuuid, this will be the built-in codec).- Specified by:
getUUIDin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas a UUID. If the value is NULL,nullis returned.
-
getInet
public java.net.InetAddress getInet(java.lang.String name)
Returns the value fornameas an InetAddress.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to anInetAddress(for CQL typeinet, this will be the built-in codec).- Specified by:
getInetin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value for
nameas an InetAddress. If the value is NULL,nullis returned.
-
getList
public <T> java.util.List<T> getList(java.lang.String name, java.lang.Class<T> elementsClass)Returns the value fornameas a list.This method uses the
CodecRegistryto 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
Listimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getListin interfaceGettableByNameData- 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 ofTobjects.
-
getList
public <T> java.util.List<T> getList(java.lang.String name, com.google.common.reflect.TypeToken<T> elementsType)Returns the value fornameas a list.This method uses the
CodecRegistryto 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
Listimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getListin interfaceGettableByNameData- 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 ofTobjects.
-
getSet
public <T> java.util.Set<T> getSet(java.lang.String name, java.lang.Class<T> elementsClass)Returns the value fornameas a set.This method uses the
CodecRegistryto 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
Setimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getSetin interfaceGettableByNameData- 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 ofTobjects.
-
getSet
public <T> java.util.Set<T> getSet(java.lang.String name, com.google.common.reflect.TypeToken<T> elementsType)Returns the value fornameas a set.This method uses the
CodecRegistryto 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
Setimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getSetin interfaceGettableByNameData- 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 ofTobjects.
-
getMap
public <K,V> java.util.Map<K,V> getMap(java.lang.String name, java.lang.Class<K> keysClass, java.lang.Class<V> valuesClass)Returns the value fornameas a map.This method uses the
CodecRegistryto 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
Mapimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getMapin interfaceGettableByNameData- 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
nameas a map ofKtoVobjects.
-
getMap
public <K,V> java.util.Map<K,V> getMap(java.lang.String name, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)Returns the value fornameas a map.This method uses the
CodecRegistryto 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
Mapimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getMapin interfaceGettableByNameData- 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
nameas a map ofKtoVobjects.
-
getUDTValue
public UDTValue getUDTValue(java.lang.String name)
Return the value fornameas a UDT value.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aUDTValue(if the CQL type is a UDT, the registry will generate a codec automatically).- Specified by:
getUDTValuein interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value of
nameas a UDT value. If the value is NULL, thennullwill be returned.
-
getTupleValue
public TupleValue getTupleValue(java.lang.String name)
Return the value fornameas a tuple value.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aTupleValue(if the CQL type is a tuple, the registry will generate a codec automatically).- Specified by:
getTupleValuein interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value of
nameas a tuple value. If the value is NULL, thennullwill be returned.
-
getObject
public java.lang.Object getObject(java.lang.String name)
Returns the value fornameas the Java type matching its CQL type.This method uses the
CodecRegistryto find the first codec that handles the underlying CQL type. The Java type of the returned object will be determined by the codec that was selected.Use this method to dynamically inspect elements when types aren't known in advance, for instance if you're writing a generic row logger. If you know the target Java type, it is generally preferable to use typed getters, such as the ones for built-in types (
GettableByNameData.getBool(String),GettableByNameData.getInt(String), etc.), orGettableByNameData.get(String, Class)andGettableByNameData.get(String, TypeToken)for custom types.- Specified by:
getObjectin interfaceGettableByNameData- Parameters:
name- the name to retrieve.- Returns:
- the value of
nameas the Java type matching its CQL type. If the value is NULL and is a simple type, UDT or tuple,nullis returned. If it is NULL and is a collection type, an empty (immutable) collection is returned. - See Also:
CodecRegistry.codecFor(DataType)
-
get
public <T> T get(java.lang.String name, java.lang.Class<T> targetClass)Returns the value fornameconverted to the given Java type.This method uses the
CodecRegistryto 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
codecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent; by default, a CQLNULLvalue translates tonullfor simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.- Specified by:
getin interfaceGettableByNameData- Parameters:
name- the name to retrieve.targetClass- The Java type the value should be converted to.- Returns:
- the value for
namevalue converted to the given Java type.
-
get
public <T> T get(java.lang.String name, com.google.common.reflect.TypeToken<T> targetType)Returns the value fornameconverted to the given Java type.This method uses the
CodecRegistryto 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
codecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent; by default, a CQLNULLvalue translates tonullfor simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.- Specified by:
getin interfaceGettableByNameData- Parameters:
name- the name to retrieve.targetType- The Java type the value should be converted to.- Returns:
- the value for
namevalue converted to the given Java type.
-
get
public <T> T get(java.lang.String name, TypeCodec<T> codec)Returns the value fornameconverted using the givenTypeCodec.This method entirely bypasses the
CodecRegistryand 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
acceptsthe underlying CQL type; failing to do so may result inInvalidTypeExceptions being thrown.Implementation note: the actual object returned by this method will depend on the
codecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent; by default, a CQLNULLvalue translates tonullfor simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.- Specified by:
getin interfaceGettableByNameData- Parameters:
name- the name to retrieve.codec- TheTypeCodecto use to deserialize the value; may not benull.- Returns:
- the value of the
ith value converted using the givenTypeCodec.
-
getType
protected abstract DataType getType(int i)
Returns the type for the value at indexi.- Parameters:
i- the index of the type to fetch.- Returns:
- the type of the value at index
i. - Throws:
java.lang.IndexOutOfBoundsException- ifiis not a valid index.
-
getName
protected abstract java.lang.String getName(int i)
Returns the name corresponding to the value at indexi.- Parameters:
i- the index of the name to fetch.- Returns:
- the name corresponding to the value at index
i. - Throws:
java.lang.IndexOutOfBoundsException- ifiis not a valid index.
-
getValue
protected abstract java.nio.ByteBuffer getValue(int i)
Returns the value at indexi.- Parameters:
i- the index to fetch.- Returns:
- the value at index
i. - Throws:
java.lang.IndexOutOfBoundsException- ifiis 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, java.lang.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)
-
isNull
public boolean isNull(int i)
Returns whether theith value is NULL.- Specified by:
isNullin interfaceGettableByIndexData- 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 theith value as a boolean.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javaboolean(for CQL typeboolean, this will be the built-in codec).- Specified by:
getBoolin interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the boolean value of the
ith element. If the value is NULL,falseis returned. If you need to distinguish NULL and false values, check first withGettableByIndexData.isNull(int)or useget(i, Boolean.class).
-
getByte
public byte getByte(int i)
Returns theith value as a byte.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javabyte(for CQL typetinyint, this will be the built-in codec).- Specified by:
getBytein interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as a byte. If the value is NULL,0is returned. If you need to distinguish NULL and 0, check first withGettableByIndexData.isNull(int)or useget(i, Byte.class).
-
getShort
public short getShort(int i)
Returns theith value as a short.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javashort(for CQL typesmallint, this will be the built-in codec).- Specified by:
getShortin interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as a short. If the value is NULL,0is returned. If you need to distinguish NULL and 0, check first withGettableByIndexData.isNull(int)or useget(i, Short.class).
-
getInt
public int getInt(int i)
Returns theith value as an integer.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javaint(for CQL typeint, this will be the built-in codec).- Specified by:
getIntin interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as an integer. If the value is NULL,0is returned. If you need to distinguish NULL and 0, check first withGettableByIndexData.isNull(int)or useget(i, Integer.class).
-
getLong
public long getLong(int i)
Returns theith value as a long.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javabyte(for CQL typesbigintandcounter, this will be the built-in codec).- Specified by:
getLongin interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as a long. If the value is NULL,0Lis returned. If you need to distinguish NULL and 0L, check first withGettableByIndexData.isNull(int)or useget(i, Long.class).
-
getTimestamp
public java.util.Date getTimestamp(int i)
Returns theith value as a date.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aDate(for CQL typetimestamp, this will be the built-in codec).- Specified by:
getTimestampin interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as a data. If the value is NULL,nullis returned.
-
getDate
public LocalDate getDate(int i)
Returns theith value as a date (without time).This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aLocalDate(for CQL typedate, this will be the built-in codec).- Specified by:
getDatein interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as an date. If the value is NULL,nullis returned.
-
getTime
public long getTime(int i)
Returns theith value as a long in nanoseconds since midnight.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javalong(for CQL typetime, this will be the built-in codec).- Specified by:
getTimein interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as a long. If the value is NULL,0Lis returned.
-
getFloat
public float getFloat(int i)
Returns theith value as a float.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javafloat(for CQL typefloat, this will be the built-in codec).- Specified by:
getFloatin interfaceGettableByIndexData- 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.0fis returned. If you need to distinguish NULL and 0.0f, check first withGettableByIndexData.isNull(int)or useget(i, Float.class).
-
getDouble
public double getDouble(int i)
Returns theith value as a double.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Javadouble(for CQL typedouble, this will be the built-in codec).- Specified by:
getDoublein interfaceGettableByIndexData- 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.0is returned. If you need to distinguish NULL and 0.0, check first withGettableByIndexData.isNull(int)or useget(i, Double.class).
-
getBytesUnsafe
public java.nio.ByteBuffer getBytesUnsafe(int i)
Returns theith value as aByteBuffer.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:
getBytesUnsafein interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as a ByteBuffer. If the value is NULL,nullis returned.
-
getBytes
public java.nio.ByteBuffer getBytes(int i)
Returns theith value as a byte array.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a JavaByteBuffer(for CQL typeblob, this will be the built-in codec).- Specified by:
getBytesin interfaceGettableByIndexData- 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,nullis returned.
-
getString
public java.lang.String getString(int i)
Returns theith value as a string.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to a Java string (for CQL typestext,varcharandascii, this will be the built-in codec).- Specified by:
getStringin interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as a string. If the value is NULL,nullis returned.
-
getVarint
public java.math.BigInteger getVarint(int i)
Returns theith value as a variable length integer.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aBigInteger(for CQL typevarint, this will be the built-in codec).- Specified by:
getVarintin interfaceGettableByIndexData- 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,nullis returned.
-
getDecimal
public java.math.BigDecimal getDecimal(int i)
Returns theith value as a variable length decimal.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aBigDecimal(for CQL typedecimal, this will be the built-in codec).- Specified by:
getDecimalin interfaceGettableByIndexData- 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,nullis returned.
-
getUUID
public java.util.UUID getUUID(int i)
Returns theith value as a UUID.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aUUID(for CQL typesuuidandtimeuuid, this will be the built-in codec).- Specified by:
getUUIDin interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as a UUID. If the value is NULL,nullis returned.
-
getInet
public java.net.InetAddress getInet(int i)
Returns theith value as an InetAddress.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to anInetAddress(for CQL typeinet, this will be the built-in codec).- Specified by:
getInetin interfaceGettableByIndexData- Parameters:
i- the index (0 <= i < size()) to retrieve.- Returns:
- the value of the
ith element as an InetAddress. If the value is NULL,nullis returned.
-
getList
public <T> java.util.List<T> getList(int i, java.lang.Class<T> elementsClass)Returns theith value as a list.This method uses the
CodecRegistryto 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
Listimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill be mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getListin interfaceGettableByIndexData- 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 ofTobjects.
-
getList
public <T> java.util.List<T> getList(int i, com.google.common.reflect.TypeToken<T> elementsType)Returns theith value as a list.This method uses the
CodecRegistryto 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
Listimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getListin interfaceGettableByIndexData- 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 ofTobjects.
-
getSet
public <T> java.util.Set<T> getSet(int i, java.lang.Class<T> elementsClass)Returns theith value as a set.This method uses the
CodecRegistryto 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
Setimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getSetin interfaceGettableByIndexData- 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 ofTobjects.
-
getSet
public <T> java.util.Set<T> getSet(int i, com.google.common.reflect.TypeToken<T> elementsType)Returns theith value as a set.This method uses the
CodecRegistryto 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
Setimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getSetin interfaceGettableByIndexData- 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 ofTobjects.
-
getMap
public <K,V> java.util.Map<K,V> getMap(int i, java.lang.Class<K> keysClass, java.lang.Class<V> valuesClass)Returns theith value as a map.This method uses the
CodecRegistryto 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
Mapimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getMapin interfaceGettableByIndexData- 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 ofKtoVobjects.
-
getMap
public <K,V> java.util.Map<K,V> getMap(int i, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)Returns theith value as a map.This method uses the
CodecRegistryto 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
Mapimplementation will depend on thecodecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent. By default, the driver will return mutable instances, and a CQLNULLwill mapped to an empty collection (note that Cassandra makes no distinction betweenNULLand an empty collection).- Specified by:
getMapin interfaceGettableByIndexData- 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 ofKtoVobjects.
-
getUDTValue
public UDTValue getUDTValue(int i)
Return theith value as a UDT value.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aUDTValue(if the CQL type is a UDT, the registry will generate a codec automatically).- Specified by:
getUDTValuein interfaceGettableByIndexData- 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, thennullwill be returned.
-
getTupleValue
public TupleValue getTupleValue(int i)
Return theith value as a tuple value.This method uses the
CodecRegistryto find a codec to convert the underlying CQL type to aTupleValue(if the CQL type is a tuple, the registry will generate a codec automatically).- Specified by:
getTupleValuein interfaceGettableByIndexData- 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, thennullwill be returned.
-
getObject
public java.lang.Object getObject(int i)
Returns theith value as the Java type matching its CQL type.This method uses the
CodecRegistryto find the first codec that handles the underlying CQL type. The Java type of the returned object will be determined by the codec that was selected.Use this method to dynamically inspect elements when types aren't known in advance, for instance if you're writing a generic row logger. If you know the target Java type, it is generally preferable to use typed getters, such as the ones for built-in types (
GettableByIndexData.getBool(int),GettableByIndexData.getInt(int), etc.), orGettableByIndexData.get(int, Class)andGettableByIndexData.get(int, TypeToken)for custom types.- Specified by:
getObjectin interfaceGettableByIndexData- Parameters:
i- the index to retrieve.- Returns:
- the value of the
ith value as the Java type matching its CQL type. - See Also:
CodecRegistry.codecFor(DataType)
-
get
public <T> T get(int i, java.lang.Class<T> targetClass)Description copied from interface:GettableByIndexDataReturns theith value converted to the given Java type.This method uses the
CodecRegistryto 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
codecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent; by default, a CQLNULLvalue translates tonullfor simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.- Specified by:
getin interfaceGettableByIndexData- 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:GettableByIndexDataReturns theith value converted to the given Java type.This method uses the
CodecRegistryto 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
codecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent; by default, a CQLNULLvalue translates tonullfor simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.- Specified by:
getin interfaceGettableByIndexData- 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:GettableByIndexDataReturns theith value converted using the givenTypeCodec.This method entirely bypasses the
CodecRegistryand 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
acceptsthe underlying CQL type; failing to do so may result inInvalidTypeExceptions being thrown.Implementation note: the actual object returned by this method will depend on the
codecbeing used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQLNULLvalues is also codec-dependent; by default, a CQLNULLvalue translates tonullfor simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.- Specified by:
getin interfaceGettableByIndexData- Parameters:
i- the index to retrieve.codec- TheTypeCodecto use to deserialize the value; may not benull.- Returns:
- the value of the
ith value converted using the givenTypeCodec.
-
-