org.apache.cassandra.db.composites

## Class AbstractCompoundCellNameType

- java.lang.Object
- - org.apache.cassandra.db.composites.AbstractCType
  - - org.apache.cassandra.db.composites.AbstractCellNameType
    - - org.apache.cassandra.db.composites.AbstractCompoundCellNameType

All Implemented Interfaces:
  java.util.Comparator<Composite>, CellNameType, CType

Direct Known Subclasses:
  CompoundDenseCellNameType, CompoundSparseCellNameType

    public abstract class AbstractCompoundCellNameType
    extends AbstractCellNameType

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.cassandra.db.composites.CellNameType

`CellNameType.Deserializer`

### Nested classes/interfaces inherited from interface org.apache.cassandra.db.composites.CType

`CType.Serializer`

### Field Summary

Fields
`protected int` `clusteringSize`
`protected CompoundCType` `clusteringType`
`protected int` `fullSize`
`protected CompoundCType` `fullType`

### Fields inherited from class org.apache.cassandra.db.composites.AbstractCType

`isByteOrderComparable`

### Constructor Summary

Constructors
`protected` `AbstractCompoundCellNameType(CompoundCType clusteringType, CompoundCType fullType)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`AbstractType<?>` `asAbstractType()` Returns a AbstractType corresponding to this CType for thrift sake.
`CBuilder` `builder()` A builder of Composite.
`int` `clusteringPrefixSize()` The number of clustering columns for the table this is the type of.
`protected abstract Composite` `copyAndMakeWith(java.nio.ByteBuffer[] components, int size, Composite.EOC eoc, boolean isStatic)`
`Composite` `fromByteBuffer(java.nio.ByteBuffer bytes)` Deserialize a Composite from a ByteBuffer.
`boolean` `isCompound()` Returns whether this is a "truly-composite" underneath.
`protected CellName` `makeCellName(java.nio.ByteBuffer[] components)`
`protected abstract Composite` `makeWith(java.nio.ByteBuffer[] components, int size, Composite.EOC eoc, boolean isStatic)`
`CellNameType.Deserializer` `newDeserializer(java.io.DataInput in)` Creates a new Deserializer.
`CBuilder` `prefixBuilder()` A builder for the clustering prefix.
`int` `size()` The number of subtypes for this CType.
`AbstractType<?>` `subtype(int i)` Gets a subtype of this CType.

### Methods inherited from class org.apache.cassandra.db.composites.AbstractCellNameType

`addOrUpdateCollection, asymmetricColumnComparator, cellFromByteBuffer, cellSerializer, collectionType, columnComparator, columnReverseComparator, columnSerializer, create, diskAtomFilterSerializer, hasCollections, make, makeCellName, makeDenseCQL3RowBuilder, makeSparseCQL3RowBuilder, namesQueryFilterSerializer, onDiskAtomComparator, onDiskAtomSerializer, rowMarker, staticPrefix, supportCollections`

### Methods inherited from class org.apache.cassandra.db.composites.AbstractCType

`checkRemaining, compare, deletionInfoSerializer, equals, getByteOrderAsymmetricColumnComparator, getByteOrderColumnComparator, getString, hashCode, indexComparator, indexReverseComparator, isByteOrderComparable, isCompatibleWith, rangeTombstoneSerializer, reverseComparator, serializer, sliceBytes, sliceQueryFilterSerializer, sliceSerializer, toString, validate`

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

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

### Methods inherited from interface org.apache.cassandra.db.composites.CellNameType

`addCQL3Column, CQL3RowBuilder, create, isDense, removeCQL3Column, setSubtype`

### Methods inherited from interface org.apache.cassandra.db.composites.CType

`compare, deletionInfoSerializer, getString, indexComparator, indexReverseComparator, isCompatibleWith, rangeTombstoneSerializer, reverseComparator, serializer, sliceQueryFilterSerializer, sliceSerializer, validate`

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

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

### Field Detail

#### clusteringType

    protected final CompoundCType clusteringType

#### fullType

    protected final CompoundCType fullType

#### clusteringSize

    protected final int clusteringSize

#### fullSize

    protected final int fullSize

### Constructor Detail

#### AbstractCompoundCellNameType

    protected AbstractCompoundCellNameType(CompoundCType clusteringType,
                                           CompoundCType fullType)

### Method Detail

#### clusteringPrefixSize

    public int clusteringPrefixSize()

Description copied from interface: `CellNameType`
The number of clustering columns for the table this is the type of.

#### isCompound

    public boolean isCompound()

Description copied from interface: `CType`
Returns whether this is a "truly-composite" underneath.

#### size

    public int size()

Description copied from interface: `CType`
The number of subtypes for this CType.

#### subtype

    public AbstractType<?> subtype(int i)

Description copied from interface: `CType`
Gets a subtype of this CType.

#### prefixBuilder

    public CBuilder prefixBuilder()

Description copied from interface: `CellNameType`
A builder for the clustering prefix.

#### builder

    public CBuilder builder()

Description copied from interface: `CType`
A builder of Composite.

#### fromByteBuffer

    public Composite fromByteBuffer(java.nio.ByteBuffer bytes)

Description copied from interface: `CType`
Deserialize a Composite from a ByteBuffer. This is meant for thrift to convert the fully serialized buffer we get from the clients to composites.

#### asAbstractType

    public AbstractType<?> asAbstractType()

Description copied from interface: `CType`
Returns a AbstractType corresponding to this CType for thrift sake. If the CType is a "simple" one, this just return the wrapped type, otherwise it returns the corresponding org.apache.cassandra.db.marshal.CompositeType. This is only meant to be use for backward compatibility (particularly for thrift) but it's not meant to be used internally.

#### newDeserializer

    public CellNameType.Deserializer newDeserializer(java.io.DataInput in)

Description copied from interface: `CellNameType`
Creates a new Deserializer. This is used by AtomDeserializer to do incremental and on-demand deserialization of the on disk atoms. See AtomDeserializer for details.

#### makeCellName

    protected CellName makeCellName(java.nio.ByteBuffer[] components)

Specified by:
  `makeCellName` in class `AbstractCellNameType`

#### makeWith

    protected abstract Composite makeWith(java.nio.ByteBuffer[] components,
                                          int size,
                                          Composite.EOC eoc,
                                          boolean isStatic)

#### copyAndMakeWith

    protected abstract Composite copyAndMakeWith(java.nio.ByteBuffer[] components,
                                                 int size,
                                                 Composite.EOC eoc,
                                                 boolean isStatic)