org.apache.cassandra.db.marshal

## Class TupleType

- java.lang.Object
- - org.apache.cassandra.db.marshal.AbstractType<java.nio.ByteBuffer>
  - - org.apache.cassandra.db.marshal.TupleType

- All Implemented Interfaces:
    java.util.Comparator<java.nio.ByteBuffer>, AssignmentTestable
  Direct Known Subclasses:
    UserType

      public class TupleType
      extends AbstractType<java.nio.ByteBuffer>

  This is essentially like a CompositeType, but it's not primarily meant for comparison, just to pack multiple values together so has a more friendly encoding.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.cassandra.db.marshal.AbstractType

      `AbstractType.ComparisonType`

    - ### Nested classes/interfaces inherited from interface org.apache.cassandra.cql3.AssignmentTestable

      `AssignmentTestable.TestResult`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.List<AbstractType<?>>` | `types`

    - ### Fields inherited from class org.apache.cassandra.db.marshal.AbstractType

      `comparisonType, isByteOrderComparable, reverseComparator`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `TupleType(java.util.List<AbstractType<?>> types)`
    `protected` | `TupleType(java.util.List<AbstractType<?>> types, boolean freezeInner)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<AbstractType<?>>` | `allTypes()`
    `CQL3Type` | `asCQL3Type()`
    `static java.nio.ByteBuffer` | `buildValue(java.nio.ByteBuffer[] components)`
    `int` | `compareCustom(java.nio.ByteBuffer o1, java.nio.ByteBuffer o2)` Implement IFF ComparisonType is CUSTOM Compares the ByteBuffer representation of two instances of this class, for types where this cannot be done by simple in-order comparison of the unsigned bytes Standard Java compare semantics
    `boolean` | `equals(java.lang.Object o)`
    `Term` | `fromJSONObject(java.lang.Object parsed)` Given a parsed JSON string, return a byte representation of the object.
    `java.nio.ByteBuffer` | `fromString(java.lang.String source)` get a byte representation of the given string.
    `static TupleType` | `getInstance(TypeParser parser)`
    `TypeSerializer<java.nio.ByteBuffer>` | `getSerializer()`
    `java.lang.String` | `getString(java.nio.ByteBuffer value)` get a string representation of the bytes used for various identifier (NOT just for log messages)
    `int` | `hashCode()`
    `boolean` | `isCompatibleWith(AbstractType<?> previous)` Returns true if this comparator is compatible with the provided previous comparator, that is if previous can safely be replaced by this.
    `boolean` | `isTuple()`
    `boolean` | `isValueCompatibleWithInternal(AbstractType<?> otherType)` Needed to handle ReversedType in value-compatibility checks.
    `boolean` | `referencesDuration()`
    `boolean` | `referencesUserType(java.lang.String name)`
    `int` | `size()`
    `java.nio.ByteBuffer[]` | `split(java.nio.ByteBuffer value)` Split a tuple value into its component values.
    `java.lang.String` | `toJSONString(java.nio.ByteBuffer buffer, ProtocolVersion protocolVersion)` Converts the specified value into its JSON representation.
    `java.lang.String` | `toString()` This must be overriden by subclasses if necessary so that for any AbstractType, this == TypeParser.parse(toString()).
    `AbstractType<?>` | `type(int i)`

    - ### Methods inherited from class org.apache.cassandra.db.marshal.AbstractType

      `asCQLTypeStringList, checkComparable, compare, compareCollectionMembers, compareForCQL, componentsCount, compose, decompose, equals, freeze, freezeNestedMulticellTypes, getComponents, getString, isCollection, isCounter, isEmptyValueMeaningless, isFreezable, isFrozenCollection, isMultiCell, isReversed, isUDT, isValueCompatibleWith, parseDefaultParameters, readValue, readValue, skipValue, testAssignment, toString, validate, validateCellValue, validateCollectionMember, valueLengthIfFixed, writeValue, writtenLength`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Comparator

      `comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- - ### Field Detail

    - #### types

          protected final java.util.List<AbstractType<?>> types

  - ### Constructor Detail

    - #### TupleType

          public TupleType(java.util.List<AbstractType<?>> types)

    - #### TupleType

          protected TupleType(java.util.List<AbstractType<?>> types,
                              boolean freezeInner)

  - ### Method Detail

    - #### getInstance

          public static TupleType getInstance(TypeParser parser)
                                       throws ConfigurationException,
                                              SyntaxException

      Throws:
        `ConfigurationException`
        `SyntaxException`

    - #### referencesUserType

          public boolean referencesUserType(java.lang.String name)

      Overrides:
        `referencesUserType` in class `AbstractType<java.nio.ByteBuffer>`

    - #### referencesDuration

          public boolean referencesDuration()

      Overrides:
        `referencesDuration` in class `AbstractType<java.nio.ByteBuffer>`

    - #### type

          public AbstractType<?> type(int i)

    - #### size

          public int size()

    - #### allTypes

          public java.util.List<AbstractType<?>> allTypes()

    - #### compareCustom

          public int compareCustom(java.nio.ByteBuffer o1,
                                   java.nio.ByteBuffer o2)

      Description copied from class: `AbstractType`
      Implement IFF ComparisonType is CUSTOM Compares the ByteBuffer representation of two instances of this class, for types where this cannot be done by simple in-order comparison of the unsigned bytes Standard Java compare semantics
      Overrides:
        `compareCustom` in class `AbstractType<java.nio.ByteBuffer>`

    - #### split

          public java.nio.ByteBuffer[] split(java.nio.ByteBuffer value)

      Split a tuple value into its component values.

    - #### buildValue

          public static java.nio.ByteBuffer buildValue(java.nio.ByteBuffer[] components)

    - #### getString

          public java.lang.String getString(java.nio.ByteBuffer value)

      Description copied from class: `AbstractType`
      get a string representation of the bytes used for various identifier (NOT just for log messages)
      Overrides:
        `getString` in class `AbstractType<java.nio.ByteBuffer>`

    - #### fromString

          public java.nio.ByteBuffer fromString(java.lang.String source)

      Description copied from class: `AbstractType`
      get a byte representation of the given string.
      Specified by:
        `fromString` in class `AbstractType<java.nio.ByteBuffer>`

    - #### fromJSONObject

          public Term fromJSONObject(java.lang.Object parsed)
                              throws MarshalException

      Description copied from class: `AbstractType`
      Given a parsed JSON string, return a byte representation of the object.
      Specified by:
        `fromJSONObject` in class `AbstractType<java.nio.ByteBuffer>`
      Parameters:
        `parsed` - the result of parsing a json string
      Throws:
        `MarshalException`

    - #### toJSONString

          public java.lang.String toJSONString(java.nio.ByteBuffer buffer,
                                               ProtocolVersion protocolVersion)

      Description copied from class: `AbstractType`
      Converts the specified value into its JSON representation.

      The buffer position will stay the same.

      Overrides:
        `toJSONString` in class `AbstractType<java.nio.ByteBuffer>`
      Parameters:
        `buffer` - the value to convert
        `protocolVersion` - the protocol version to use for the conversion
      Returns:
        a JSON string representing the specified value

    - #### getSerializer

          public TypeSerializer<java.nio.ByteBuffer> getSerializer()

      Specified by:
        `getSerializer` in class `AbstractType<java.nio.ByteBuffer>`

    - #### isCompatibleWith

          public boolean isCompatibleWith(AbstractType<?> previous)

      Description copied from class: `AbstractType`
      Returns true if this comparator is compatible with the provided previous comparator, that is if previous can safely be replaced by this. A comparator cn should be compatible with a previous one cp if forall columns c1 and c2, if cn.validate(c1) and cn.validate(c2) and cn.compare(c1, c2) == v, then cp.validate(c1) and cp.validate(c2) and cp.compare(c1, c2) == v. Note that a type should be compatible with at least itself and when in doubt, keep the default behavior of not being compatible with any other comparator!
      Overrides:
        `isCompatibleWith` in class `AbstractType<java.nio.ByteBuffer>`

    - #### isValueCompatibleWithInternal

          public boolean isValueCompatibleWithInternal(AbstractType<?> otherType)

      Description copied from class: `AbstractType`
      Needed to handle ReversedType in value-compatibility checks. Subclasses should implement this instead of isValueCompatibleWith().
      Overrides:
        `isValueCompatibleWithInternal` in class `AbstractType<java.nio.ByteBuffer>`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals(java.lang.Object o)

      Specified by:
        `equals` in interface `java.util.Comparator<java.nio.ByteBuffer>`
      Overrides:
        `equals` in class `java.lang.Object`

    - #### isTuple

          public boolean isTuple()

      Overrides:
        `isTuple` in class `AbstractType<java.nio.ByteBuffer>`

    - #### asCQL3Type

          public CQL3Type asCQL3Type()

      Overrides:
        `asCQL3Type` in class `AbstractType<java.nio.ByteBuffer>`

    - #### toString

          public java.lang.String toString()

      Description copied from class: `AbstractType`
      This must be overriden by subclasses if necessary so that for any AbstractType, this == TypeParser.parse(toString()). Note that for backwards compatibility this includes the full classname. For CQL purposes the short name is fine.
      Overrides:
        `toString` in class `AbstractType<java.nio.ByteBuffer>`

Copyright © 2018 The Apache Software Foundation