java.lang.Object
org.apache.cassandra.cql3.functions.types.AbstractGettableData
org.apache.cassandra.cql3.functions.types.UDTValue
All Implemented Interfaces:
GettableByIndexData, GettableByNameData, GettableData, SettableByIndexData<UDTValue>, SettableByNameData<UDTValue>, SettableData<UDTValue>

public class UDTValue extends AbstractGettableData
A value for a User Defined Type.
  • Field Details

  • Method Details

    • getType

      protected DataType getType(int i)
      Returns the type for the value at index i.
      Parameters:
      i - the index of the type to fetch.
      Returns:
      the type of the value at index i.
    • getName

      protected String getName(int i)
      Returns the name corresponding to the value at index i.
      Parameters:
      i - the index of the name to fetch.
      Returns:
      the name corresponding to the value at index i.
    • getCodecRegistry

      protected CodecRegistry getCodecRegistry()
    • getAllIndexesOf

      protected int[] getAllIndexesOf(String name)
    • getType

      public UserType getType()
      The UDT this is a value of.
      Returns:
      the UDT this is a value of.
    • equals

      public boolean equals(Object o)
    • hashCode

      public int hashCode()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getValue

      protected ByteBuffer getValue(int i)
      Returns the value at index i.
      Parameters:
      i - the index to fetch.
      Returns:
      the value at index i.
    • getIndexOf

      protected int getIndexOf(String name)
      Description copied from class: AbstractGettableData
      Returns the index corresponding to a given name.
      Specified by:
      getIndexOf in class AbstractGettableData
      Parameters:
      name - the name for which to return the index of.
      Returns:
      the index for the value coressponding to name.
    • setBool

      public UDTValue setBool(int i, boolean v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided boolean.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type boolean, this will be the built-in codec).

      Specified by:
      setBool in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. To set the value to NULL, use SettableByIndexData.setToNull(int) or set(i, v, Boolean.class)
      Returns:
      this object.
    • setBool

      public UDTValue setBool(String name, boolean v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided boolean.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type boolean, this will be the built-in codec).

      Specified by:
      setBool in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. To set the value to NULL, use SettableByNameData.setToNull(String) or set(name, v, Boolean.class).
      Returns:
      this object.
    • setByte

      public UDTValue setByte(int i, byte v)
      Description copied from interface: SettableByIndexData
      Set the ith value to the provided byte.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type tinyint, this will be the built-in codec).

      Specified by:
      setByte in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. To set the value to NULL, use SettableByIndexData.setToNull(int) or set(i, v, Byte.class)
      Returns:
      this object.
    • setByte

      public UDTValue setByte(String name, byte v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided byte.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type tinyint, this will be the built-in codec).

      Specified by:
      setByte in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. To set the value to NULL, use SettableByNameData.setToNull(String) or set(name, v, Byte.class).
      Returns:
      this object.
    • setShort

      public UDTValue setShort(int i, short v)
      Description copied from interface: SettableByIndexData
      Set the ith value to the provided short.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type smallint, this will be the built-in codec).

      Specified by:
      setShort in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. To set the value to NULL, use SettableByIndexData.setToNull(int) or set(i, v, Short.class)
      Returns:
      this object.
    • setShort

      public UDTValue setShort(String name, short v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided short.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type smallint, this will be the built-in codec).

      Specified by:
      setShort in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. To set the value to NULL, use SettableByNameData.setToNull(String) or set(name, v, Short.class).
      Returns:
      this object.
    • setInt

      public UDTValue setInt(int i, int v)
      Description copied from interface: SettableByIndexData
      Set the ith value to the provided integer.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type int, this will be the built-in codec).

      Specified by:
      setInt in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. To set the value to NULL, use SettableByIndexData.setToNull(int) or set(i, v, Integer.class)
      Returns:
      this object.
    • setInt

      public UDTValue setInt(String name, int v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided integer.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type int, this will be the built-in codec).

      Specified by:
      setInt in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. To set the value to NULL, use SettableByNameData.setToNull(String) or set(name, v, Integer.class).
      Returns:
      this object.
    • setLong

      public UDTValue setLong(int i, long v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided long.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type bigint, this will be the built-in codec).

      Specified by:
      setLong in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. To set the value to NULL, use SettableByIndexData.setToNull(int) or set(i, v, Long.class)
      Returns:
      this object.
    • setLong

      public UDTValue setLong(String name, long v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided long.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type bigint, this will be the built-in codec).

      Specified by:
      setLong in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. To set the value to NULL, use SettableByNameData.setToNull(String) or set(name, v, Long.class).
      Returns:
      this object.
    • setTimestamp

      public UDTValue setTimestamp(int i, Date v)
      Description copied from interface: SettableByIndexData
      Set the ith value to the provided date.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type timestamp, this will be the built-in codec).

      Specified by:
      setTimestamp in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setTimestamp

      public UDTValue setTimestamp(String name, Date v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided date.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type timestamp, this will be the built-in codec).

      Specified by:
      setTimestamp in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setDate

      public UDTValue setDate(int i, LocalDate v)
      Description copied from interface: SettableByIndexData
      Set the ith value to the provided date (without time).

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type date, this will be the built-in codec).

      Specified by:
      setDate in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setDate

      public UDTValue setDate(String name, LocalDate v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided date (without time).

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type date, this will be the built-in codec).

      Specified by:
      setDate in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setTime

      public UDTValue setTime(int i, long v)
      Description copied from interface: SettableByIndexData
      Set the ith value to the provided time as a long in nanoseconds since midnight.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type time, this will be the built-in codec).

      Specified by:
      setTime in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setTime

      public UDTValue setTime(String name, long v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided time as a long in nanoseconds since midnight.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type time, this will be the built-in codec).

      Specified by:
      setTime in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setFloat

      public UDTValue setFloat(int i, float v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided float.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type float, this will be the built-in codec).

      Specified by:
      setFloat in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. To set the value to NULL, use SettableByIndexData.setToNull(int) or set(i, v, Float.class)
      Returns:
      this object.
    • setFloat

      public UDTValue setFloat(String name, float v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided float.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type float, this will be the built-in codec).

      Specified by:
      setFloat in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. To set the value to NULL, use SettableByNameData.setToNull(String) or set(name, v, Float.class).
      Returns:
      this object.
    • setDouble

      public UDTValue setDouble(int i, double v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided double.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type double, this will be the built-in codec).

      Specified by:
      setDouble in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. To set the value to NULL, use SettableByIndexData.setToNull(int) or set(i, v, Double.class).
      Returns:
      this object.
    • setDouble

      public UDTValue setDouble(String name, double v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided double.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type double, this will be the built-in codec).

      Specified by:
      setDouble in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. To set the value to NULL, use SettableByNameData.setToNull(String) or set(name, v, Double.class).
      Returns:
      this object.
    • setString

      public UDTValue setString(int i, String v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided string.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL types text, varchar and ascii, this will be the built-in codec).

      Specified by:
      setString in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setString

      public UDTValue setString(String name, String v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided string.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL types text, varchar and ascii, this will be the built-in codec).

      Specified by:
      setString in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setBytes

      public UDTValue setBytes(int i, ByteBuffer v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided byte buffer.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type blob, this will be the built-in codec).

      Specified by:
      setBytes in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setBytes

      public UDTValue setBytes(String name, ByteBuffer v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided byte buffer.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type blob, this will be the built-in codec).

      Specified by:
      setBytes in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setBytesUnsafe

      public UDTValue setBytesUnsafe(int i, ByteBuffer v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided byte buffer.

      This method does not use any codec; it sets the value in its binary form directly. If you insert data that is not compatible with the underlying CQL type, you will get an InvalidQueryException at execute time.

      Specified by:
      setBytesUnsafe in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setBytesUnsafe

      public UDTValue setBytesUnsafe(String name, ByteBuffer v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided byte buffer.

      This method does not use any codec; it sets the value in its binary form directly. If you insert data that is not compatible with the underlying CQL type, you will get an InvalidQueryException at execute time.

      Specified by:
      setBytesUnsafe in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setVarint

      public UDTValue setVarint(int i, BigInteger v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided big integer.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type varint, this will be the built-in codec).

      Specified by:
      setVarint in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setVarint

      public UDTValue setVarint(String name, BigInteger v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided big integer.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type varint, this will be the built-in codec).

      Specified by:
      setVarint in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setDecimal

      public UDTValue setDecimal(int i, BigDecimal v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided big decimal.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type decimal, this will be the built-in codec).

      Specified by:
      setDecimal in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setDecimal

      public UDTValue setDecimal(String name, BigDecimal v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided big decimal.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type decimal, this will be the built-in codec).

      Specified by:
      setDecimal in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setUUID

      public UDTValue setUUID(int i, UUID v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided UUID.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL types uuid and timeuuid, this will be the built-in codec).

      Specified by:
      setUUID in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setUUID

      public UDTValue setUUID(String name, UUID v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided UUID.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL types uuid and timeuuid, this will be the built-in codec).

      Specified by:
      setUUID in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setInet

      public UDTValue setInet(int i, InetAddress v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided inet address.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type inet, this will be the built-in codec).

      Specified by:
      setInet in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setInet

      public UDTValue setInet(String name, InetAddress v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided inet address.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (for CQL type inet, this will be the built-in codec).

      Specified by:
      setInet in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setList

      public <E> UDTValue setList(int i, List<E> v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided list.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (the type of the elements in the Java list is not considered). If two or more codecs target that CQL type, the one that was first registered will be used. For this reason, it is generally preferable to use the more deterministic methods SettableByIndexData.setList(int, List, Class) or SettableByIndexData.setList(int, List, TypeToken).

      Specified by:
      setList in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      Returns:
      this object.
    • setList

      public <E> UDTValue setList(int i, List<E> v, Class<E> elementsClass)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided list, which elements are of the provided Java class.

      This method uses the CodecRegistry to find a codec to handle the conversion of lists of the given Java type to the underlying CQL type.

      If the type of the elements is generic, use SettableByIndexData.setList(int, List, TypeToken).

      Specified by:
      setList in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      elementsClass - the class for the elements of the list.
      Returns:
      this object.
    • setList

      public <E> UDTValue setList(int i, List<E> v, com.google.common.reflect.TypeToken<E> elementsType)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided list, which elements are of the provided Java type.

      This method uses the CodecRegistry to find a codec to handle the conversion of lists of the given Java type to the underlying CQL type.

      Specified by:
      setList in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      elementsType - the type for the elements of the list.
      Returns:
      this object.
    • setList

      public <E> UDTValue setList(String name, List<E> v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided list.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (the type of the elements in the Java list is not considered). If two or more codecs target that CQL type, the one that was first registered will be used. For this reason, it is generally preferable to use the more deterministic methods SettableByNameData.setList(String, List, Class) or SettableByNameData.setList(String, List, TypeToken).

      Specified by:
      setList in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      Returns:
      this object.
    • setList

      public <E> UDTValue setList(String name, List<E> v, Class<E> elementsClass)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided list, which elements are of the provided Java class.

      This method uses the CodecRegistry to find a codec to handle the conversion of lists of the given Java type to the underlying CQL type.

      If the type of the elements is generic, use SettableByNameData.setList(String, List, TypeToken).

      Specified by:
      setList in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple
      v - the value to set. Note that null values inside collections are not supported by CQL.
      elementsClass - the class for the elements of the list.
      Returns:
      this object.
    • setList

      public <E> UDTValue setList(String name, List<E> v, com.google.common.reflect.TypeToken<E> elementsType)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided list, which elements are of the provided Java type.

      This method uses the CodecRegistry to find a codec to handle the conversion of lists of the given Java type to the underlying CQL type.

      Specified by:
      setList in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple
      v - the value to set. Note that null values inside collections are not supported by CQL.
      elementsType - the type for the elements of the list.
      Returns:
      this object.
    • setMap

      public <K, V> UDTValue setMap(int i, Map<K,V> v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided map.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (the type of the elements in the Java map is not considered). If two or more codecs target that CQL type, the one that was first registered will be used. For this reason, it is generally preferable to use the more deterministic methods SettableByIndexData.setMap(int, Map, Class, Class) or SettableByIndexData.setMap(int, Map, TypeToken, TypeToken).

      Specified by:
      setMap in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      Returns:
      this object.
    • setMap

      public <K, V> UDTValue setMap(int i, Map<K,V> v, Class<K> keysClass, Class<V> valuesClass)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided map, which keys and values are of the provided Java classes.

      This method uses the CodecRegistry to find a codec to handle the conversion of lists of the given Java types to the underlying CQL type.

      If the type of the keys or values is generic, use SettableByIndexData.setMap(int, Map, TypeToken, TypeToken).

      Specified by:
      setMap in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      keysClass - the class for the keys of the map.
      valuesClass - the class for the values of the map.
      Returns:
      this object.
    • setMap

      public <K, V> UDTValue setMap(int i, Map<K,V> v, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided map, which keys and values are of the provided Java types.

      This method uses the CodecRegistry to find a codec to handle the conversion of lists of the given Java types to the underlying CQL type.

      Specified by:
      setMap in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      keysType - the type for the keys of the map.
      valuesType - the type for the values of the map.
      Returns:
      this object.
    • setMap

      public <K, V> UDTValue setMap(String name, Map<K,V> v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided map.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (the type of the elements in the Java map is not considered). If two or more codecs target that CQL type, the one that was first registered will be used. For this reason, it is generally preferable to use the more deterministic methods SettableByNameData.setMap(String, Map, Class, Class) or SettableByNameData.setMap(String, Map, TypeToken, TypeToken).

      Specified by:
      setMap in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      Returns:
      this object.
    • setMap

      public <K, V> UDTValue setMap(String name, Map<K,V> v, Class<K> keysClass, Class<V> valuesClass)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided map, which keys and values are of the provided Java classes.

      This method uses the CodecRegistry to find a codec to handle the conversion of lists of the given Java types to the underlying CQL type.

      If the type of the keys or values is generic, use SettableByNameData.setMap(String, Map, TypeToken, TypeToken).

      Specified by:
      setMap in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      keysClass - the class for the keys of the map.
      valuesClass - the class for the values of the map.
      Returns:
      this object.
    • setMap

      public <K, V> UDTValue setMap(String name, Map<K,V> v, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided map, which keys and values are of the provided Java types.

      This method uses the CodecRegistry to find a codec to handle the conversion of lists of the given Java types to the underlying CQL type.

      Specified by:
      setMap in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      keysType - the type for the keys of the map.
      valuesType - the type for the values of the map.
      Returns:
      this object.
    • setSet

      public <E> UDTValue setSet(int i, Set<E> v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided set.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (the type of the elements in the Java set is not considered). If two or more codecs target that CQL type, the one that was first registered will be used. For this reason, it is generally preferable to use the more deterministic methods SettableByIndexData.setSet(int, Set, Class) or SettableByIndexData.setSet(int, Set, TypeToken).

      Specified by:
      setSet in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      Returns:
      this object.
    • setSet

      public <E> UDTValue setSet(int i, Set<E> v, Class<E> elementsClass)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided set, which elements are of the provided Java class.

      This method uses the CodecRegistry to find a codec to handle the conversion of sets of the given Java type to the underlying CQL type.

      If the type of the elements is generic, use SettableByIndexData.setSet(int, Set, TypeToken).

      Specified by:
      setSet in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      elementsClass - the class for the elements of the set.
      Returns:
      this object.
    • setSet

      public <E> UDTValue setSet(int i, Set<E> v, com.google.common.reflect.TypeToken<E> elementsType)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided set, which elements are of the provided Java type.

      This method uses the CodecRegistry to find a codec to handle the conversion of sets of the given Java type to the underlying CQL type.

      Specified by:
      setSet in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      elementsType - the type for the elements of the set.
      Returns:
      this object.
    • setSet

      public <E> UDTValue setSet(String name, Set<E> v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided set.

      This method uses the CodecRegistry to find a codec to handle the conversion to the underlying CQL type (the type of the elements in the Java set is not considered). If two or more codecs target that CQL type, the one that was first registered will be used. For this reason, it is generally preferable to use the more deterministic methods SettableByNameData.setSet(String, Set, Class) or SettableByNameData.setSet(String, Set, TypeToken).

      Specified by:
      setSet in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set. Note that null values inside collections are not supported by CQL.
      Returns:
      this object.
    • setSet

      public <E> UDTValue setSet(String name, Set<E> v, Class<E> elementsClass)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided set, which elements are of the provided Java class.

      This method uses the CodecRegistry to find a codec to handle the conversion of sets of the given Java type to the underlying CQL type.

      If the type of the elements is generic, use SettableByNameData.setSet(String, Set, TypeToken).

      Specified by:
      setSet in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple
      v - the value to set. Note that null values inside collections are not supported by CQL.
      elementsClass - the class for the elements of the set.
      Returns:
      this object.
    • setSet

      public <E> UDTValue setSet(String name, Set<E> v, com.google.common.reflect.TypeToken<E> elementsType)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided set, which elements are of the provided Java type.

      This method uses the CodecRegistry to find a codec to handle the conversion of sets of the given Java type to the underlying CQL type.

      Specified by:
      setSet in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple
      v - the value to set. Note that null values inside collections are not supported by CQL.
      elementsType - the type for the elements of the set.
      Returns:
      this object.
    • setVector

      public <E> UDTValue setVector(int i, List<E> v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided vector value.

      This method uses the CodecRegistry to find a codec to handle the conversion of v to the underlying CQL type.

      Specified by:
      setVector in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setVector

      public <E> UDTValue setVector(String name, List<E> v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided vector value.

      This method uses the CodecRegistry to find a codec to handle the conversion of v to the underlying CQL type.

      Specified by:
      setVector in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setUDTValue

      public UDTValue setUDTValue(int i, UDTValue v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided UDT value.

      This method uses the CodecRegistry to find a codec to handle the conversion of UDTValue to the underlying CQL type.

      Specified by:
      setUDTValue in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setUDTValue

      public UDTValue setUDTValue(String name, UDTValue v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided UDT value.

      This method uses the CodecRegistry to find a codec to handle the conversion of UDTValue to the underlying CQL type.

      Specified by:
      setUDTValue in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • setTupleValue

      public UDTValue setTupleValue(int i, TupleValue v)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided tuple value.

      This method uses the CodecRegistry to find a codec to handle the conversion of TupleValue to the underlying CQL type.

      Specified by:
      setTupleValue in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      v - the value to set.
      Returns:
      this object.
    • setTupleValue

      public UDTValue setTupleValue(String name, TupleValue v)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided tuple value.

      This method uses the CodecRegistry to find a codec to handle the conversion of TupleValue to the underlying CQL type.

      Specified by:
      setTupleValue in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      v - the value to set.
      Returns:
      this object.
    • set

      public <V> UDTValue set(int i, V v, Class<V> targetClass)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided value of the provided Java class.

      This method uses the CodecRegistry to find a codec to handle the conversion of the provided Java class to the underlying CQL type.

      If the Java type is generic, use SettableByIndexData.set(int, Object, TypeToken) instead.

      Specified by:
      set in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      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;
      Returns:
      this object.
    • set

      public <V> UDTValue set(String name, V v, Class<V> targetClass)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided value of the provided Java class.

      This method uses the CodecRegistry to find a codec to handle the conversion of the provided Java class to the underlying CQL type.

      If the Java type is generic, use SettableByNameData.set(String, Object, TypeToken) instead.

      Specified by:
      set in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      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;
      Returns:
      this object.
    • set

      public <V> UDTValue set(int i, V v, com.google.common.reflect.TypeToken<V> targetType)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided value of the provided Java type.

      This method uses the CodecRegistry to find a codec to handle the conversion of the provided Java type to the underlying CQL type.

      Specified by:
      set in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      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;
      Returns:
      this object.
    • set

      public <V> UDTValue set(String name, V v, com.google.common.reflect.TypeToken<V> targetType)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided value of the provided Java type.

      This method uses the CodecRegistry to find a codec to handle the conversion of the provided Java type to the underlying CQL type.

      Specified by:
      set in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      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;
      Returns:
      this object.
    • set

      public <V> UDTValue set(int i, V v, TypeCodec<V> codec)
      Description copied from interface: SettableByIndexData
      Sets the ith value to the provided value, converted using the given TypeCodec.

      This method entirely bypasses the CodecRegistry and forces the driver to use the given codec instead. This can be useful if the codec would collide with a previously registered one, or if you want to use the codec just once without registering it.

      It is the caller's responsibility to ensure that the given codec accepts the underlying CQL type; failing to do so may result in InvalidTypeExceptions being thrown.

      Specified by:
      set in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      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.
      Returns:
      this object.
    • set

      public <V> UDTValue set(String name, V v, TypeCodec<V> codec)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to the provided value, converted using the given TypeCodec.

      This method entirely bypasses the CodecRegistry and forces the driver to use the given codec instead. This can be useful if the codec would collide with a previously registered one, or if you want to use the codec just once without registering it.

      It is the caller's responsibility to ensure that the given codec accepts the underlying CQL type; failing to do so may result in InvalidTypeExceptions being thrown.

      Specified by:
      set in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      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.
      Returns:
      this object.
    • setToNull

      public UDTValue setToNull(int i)
      Description copied from interface: SettableByIndexData
      Sets the ith value to null.

      This is mainly intended for CQL types which map to native Java types.

      Specified by:
      setToNull in interface SettableByIndexData<T extends SettableData<T>>
      Parameters:
      i - the index of the value to set.
      Returns:
      this object.
    • setToNull

      public UDTValue setToNull(String name)
      Description copied from interface: SettableByNameData
      Sets the value for (all occurrences of) variable name to null.

      This is mainly intended for CQL types which map to native Java types.

      Specified by:
      setToNull in interface SettableByNameData<T extends SettableData<T>>
      Parameters:
      name - the name of the value to set; if name is present multiple times, all its values are set.
      Returns:
      this object.
    • codecFor

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

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

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

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

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

      public boolean getBool(int i)
      Returns the ith value as a boolean.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java boolean (for CQL type boolean, this will be the built-in codec).

      Specified by:
      getBool in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      Returns:
      the boolean value of the ith element. If the value is NULL, false is returned. If you need to distinguish NULL and false values, check first with GettableByIndexData.isNull(int) or use get(i, Boolean.class).
    • getByte

      public byte getByte(int i)
      Returns the ith value as a byte.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java byte (for CQL type tinyint, this will be the built-in codec).

      Specified by:
      getByte in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      Returns:
      the value of the ith element as a byte. If the value is NULL, 0 is returned. If you need to distinguish NULL and 0, check first with GettableByIndexData.isNull(int) or use get(i, Byte.class).
    • getShort

      public short getShort(int i)
      Returns the ith value as a short.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java short (for CQL type smallint, this will be the built-in codec).

      Specified by:
      getShort in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      Returns:
      the value of the ith element as a short. If the value is NULL, 0 is returned. If you need to distinguish NULL and 0, check first with GettableByIndexData.isNull(int) or use get(i, Short.class).
    • getInt

      public int getInt(int i)
      Returns the ith value as an integer.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java int (for CQL type int, this will be the built-in codec).

      Specified by:
      getInt in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      Returns:
      the value of the ith element as an integer. If the value is NULL, 0 is returned. If you need to distinguish NULL and 0, check first with GettableByIndexData.isNull(int) or use get(i, Integer.class).
    • getLong

      public long getLong(int i)
      Returns the ith value as a long.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java byte (for CQL types bigint and counter, this will be the built-in codec).

      Specified by:
      getLong in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      Returns:
      the value of the ith element as a long. If the value is NULL, 0L is returned. If you need to distinguish NULL and 0L, check first with GettableByIndexData.isNull(int) or use get(i, Long.class).
    • getTimestamp

      public Date getTimestamp(int i)
      Returns the ith value as a date.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Date (for CQL type timestamp, this will be the built-in codec).

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

      public LocalDate getDate(int i)
      Returns the ith value as a date (without time).

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a LocalDate (for CQL type date, this will be the built-in codec).

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

      public long getTime(int i)
      Returns the ith value as a long in nanoseconds since midnight.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java long (for CQL type time, this will be the built-in codec).

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

      public float getFloat(int i)
      Returns the ith value as a float.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java float (for CQL type float, this will be the built-in codec).

      Specified by:
      getFloat in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      Returns:
      the value of the ith element as a float. If the value is NULL, 0.0f is returned. If you need to distinguish NULL and 0.0f, check first with GettableByIndexData.isNull(int) or use get(i, Float.class).
    • getDouble

      public double getDouble(int i)
      Returns the ith value as a double.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java double (for CQL type double, this will be the built-in codec).

      Specified by:
      getDouble in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      Returns:
      the value of the ith element as a double. If the value is NULL, 0.0 is returned. If you need to distinguish NULL and 0.0, check first with GettableByIndexData.isNull(int) or use get(i, Double.class).
    • getBytesUnsafe

      public ByteBuffer getBytesUnsafe(int i)
      Returns the ith value as a ByteBuffer.

      This method does not use any codec; it returns a copy of the binary representation of the value. It is up to the caller to convert the returned value appropriately.

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

      public ByteBuffer getBytes(int i)
      Returns the ith value as a byte array.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java ByteBuffer (for CQL type blob, this will be the built-in codec).

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

      public String getString(int i)
      Returns the ith value as a string.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a Java string (for CQL types text, varchar and ascii, this will be the built-in codec).

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

      public BigInteger getVarint(int i)
      Returns the ith value as a variable length integer.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a BigInteger (for CQL type varint, this will be the built-in codec).

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

      public BigDecimal getDecimal(int i)
      Returns the ith value as a variable length decimal.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a BigDecimal (for CQL type decimal, this will be the built-in codec).

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

      public UUID getUUID(int i)
      Returns the ith value as a UUID.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a UUID (for CQL types uuid and timeuuid, this will be the built-in codec).

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

      public InetAddress getInet(int i)
      Returns the ith value as an InetAddress.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to an InetAddress (for CQL type inet, this will be the built-in codec).

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

      public <T> List<T> getList(int i, Class<T> elementsClass)
      Returns the ith value as a list.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a list of the specified type.

      If the type of the elements is generic, use GettableByIndexData.getList(int, TypeToken).

      Implementation note: the actual List implementation will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent. By default, the driver will return mutable instances, and a CQL NULL will be mapped to an empty collection (note that Cassandra makes no distinction between NULL and an empty collection).

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

      public <T> List<T> getList(int i, com.google.common.reflect.TypeToken<T> elementsType)
      Returns the ith value as a list.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a list of the specified type.

      Use this variant with nested collections, which produce a generic element type:

       List<List<String>> l = row.getList(1, new TypeToken<List<String>>() {});
       

      Implementation note: the actual List implementation will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent. By default, the driver will return mutable instances, and a CQL NULL will mapped to an empty collection (note that Cassandra makes no distinction between NULL and an empty collection).

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

      public <T> Set<T> getSet(int i, Class<T> elementsClass)
      Returns the ith value as a set.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a set of the specified type.

      If the type of the elements is generic, use GettableByIndexData.getSet(int, TypeToken).

      Implementation note: the actual Set implementation will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent. By default, the driver will return mutable instances, and a CQL NULL will mapped to an empty collection (note that Cassandra makes no distinction between NULL and an empty collection).

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

      public <T> Set<T> getSet(int i, com.google.common.reflect.TypeToken<T> elementsType)
      Returns the ith value as a set.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a set of the specified type.

      Use this variant with nested collections, which produce a generic element type:

       Set<List<String>> l = row.getSet(1, new TypeToken<List<String>>() {});
       

      Implementation note: the actual Set implementation will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent. By default, the driver will return mutable instances, and a CQL NULL will mapped to an empty collection (note that Cassandra makes no distinction between NULL and an empty collection).

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

      public <K, V> Map<K,V> getMap(int i, Class<K> keysClass, Class<V> valuesClass)
      Returns the ith value as a map.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a map of the specified types.

      If the type of the keys and/or values is generic, use GettableByIndexData.getMap(int, TypeToken, TypeToken).

      Implementation note: the actual Map implementation will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent. By default, the driver will return mutable instances, and a CQL NULL will mapped to an empty collection (note that Cassandra makes no distinction between NULL and an empty collection).

      Specified by:
      getMap in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      keysClass - the class for the keys of the map to retrieve.
      valuesClass - the class for the values of the map to retrieve.
      Returns:
      the value of the ith element as a map of K to V objects.
    • getMap

      public <K, V> Map<K,V> getMap(int i, com.google.common.reflect.TypeToken<K> keysType, com.google.common.reflect.TypeToken<V> valuesType)
      Returns the ith value as a map.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a map of the specified types.

      Use this variant with nested collections, which produce a generic element type:

       Map<Int, List<String>> l = row.getMap(1, TypeToken.of(Integer.class), new TypeToken<List<String>>() {});
       

      Implementation note: the actual Map implementation will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent. By default, the driver will return mutable instances, and a CQL NULL will mapped to an empty collection (note that Cassandra makes no distinction between NULL and an empty collection).

      Specified by:
      getMap in interface GettableByIndexData
      Parameters:
      i - the index (0 <= i < size()) to retrieve.
      keysType - the type for the keys of the map to retrieve.
      valuesType - the type for the values of the map to retrieve.
      Returns:
      the value of the ith element as a map of K to V objects.
    • getVector

      public <T> List<T> getVector(int i, Class<T> elementsClass)
      Returns the ith value as a vector, represented as a Java list.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a vector of the specified type.

      If the type of the elements is generic, use GettableByIndexData.getVector(int, TypeToken).

      Implementation note: the actual List implementation representing the vector will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety.

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

      public <T> List<T> getVector(int i, com.google.common.reflect.TypeToken<T> elementsType)
      Returns the ith value as a vector, represented as a Java list.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a vector of the specified type.

      Use this variant with nested types, which produce a generic element type:

       List<List<String>> l = row.getVector(1, new TypeToken<List<String>>() {});
       

      Implementation note: the actual List implementation representing the vector will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety.

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

      public UDTValue getUDTValue(int i)
      Return the ith value as a UDT value.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a UDTValue (if the CQL type is a UDT, the registry will generate a codec automatically).

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

      public TupleValue getTupleValue(int i)
      Return the ith value as a tuple value.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to a TupleValue (if the CQL type is a tuple, the registry will generate a codec automatically).

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

      public Object getObject(int i)
      Returns the ith value as the Java type matching its CQL type.

      This method uses the CodecRegistry to find the first codec that handles the underlying CQL type. The Java type of the returned object will be determined by the codec that was selected.

      Use this method to dynamically inspect elements when types aren't known in advance, for instance if you're writing a generic row logger. If you know the target Java type, it is generally preferable to use typed getters, such as the ones for built-in types (GettableByIndexData.getBool(int), GettableByIndexData.getInt(int), etc.), or GettableByIndexData.get(int, Class) and GettableByIndexData.get(int, TypeToken) for custom types.

      Specified by:
      getObject in interface GettableByIndexData
      Parameters:
      i - the index to retrieve.
      Returns:
      the value of the ith value as the Java type matching its CQL type.
      See Also:
    • get

      public <T> T get(int i, Class<T> targetClass)
      Description copied from interface: GettableByIndexData
      Returns the ith value converted to the given Java type.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to the given Java type.

      If the target type is generic, use GettableByIndexData.get(int, TypeToken).

      Implementation note: the actual object returned by this method will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent; by default, a CQL NULL value translates to null for simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.

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

      public <T> T get(int i, com.google.common.reflect.TypeToken<T> targetType)
      Description copied from interface: GettableByIndexData
      Returns the ith value converted to the given Java type.

      This method uses the CodecRegistry to find a codec to convert the underlying CQL type to the given Java type.

      Implementation note: the actual object returned by this method will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent; by default, a CQL NULL value translates to null for simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.

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

      public <T> T get(int i, TypeCodec<T> codec)
      Description copied from interface: GettableByIndexData
      Returns the ith value converted using the given TypeCodec.

      This method entirely bypasses the CodecRegistry and forces the driver to use the given codec instead. This can be useful if the codec would collide with a previously registered one, or if you want to use the codec just once without registering it.

      It is the caller's responsibility to ensure that the given codec accepts the underlying CQL type; failing to do so may result in InvalidTypeExceptions being thrown.

      Implementation note: the actual object returned by this method will depend on the codec being used; therefore, callers should make no assumptions concerning its mutability nor its thread-safety. Furthermore, the behavior of this method in respect to CQL NULL values is also codec-dependent; by default, a CQL NULL value translates to null for simple CQL types, UDTs and tuples, and to empty collections for all CQL collection types.

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