org.apache.cassandra.db.composites

## Class CompoundSparseCellNameType

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

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

Direct Known Subclasses:
  CompoundSparseCellNameType.WithCollection

    public class CompoundSparseCellNameType
    extends AbstractCompoundCellNameType

### Nested Class Summary

Nested Classes
`static class` `CompoundSparseCellNameType.WithCollection`

### 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 java.util.Map<java.nio.ByteBuffer,ColumnIdentifier>` `internedIds`
`static ColumnIdentifier` `rowMarkerId`

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

`clusteringSize, clusteringType, fullSize, fullType`

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

`isByteOrderComparable`

### Constructor Summary

Constructors
Constructor and Description
`CompoundSparseCellNameType(java.util.List<AbstractType<?>> types)`
`CompoundSparseCellNameType(java.util.List<AbstractType<?>> types, AbstractType<?> columnNameType)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `addCQL3Column(ColumnIdentifier id)`
`CellNameType` `addOrUpdateCollection(ColumnIdentifier columnName, CollectionType newCollection)` Return the new type obtained by adding/updating to the new collection type for the provided column name to this type.
`protected Composite` `copyAndMakeWith(java.nio.ByteBuffer[] components, int size, Composite.EOC eoc, boolean isStatic)`
`CQL3Row.Builder` `CQL3RowBuilder(CFMetaData metadata, long now)` Creates a new CQL3Row builder for this type.
`CellName` `create(Composite prefix, ColumnDefinition column)` Creates a new CellName given a clustering prefix and a CQL3 column.
`protected ColumnIdentifier` `idFor(java.nio.ByteBuffer bb)`
`boolean` `isDense()` Whether or not the cell names for this type are dense.
`protected static CompoundCType` `makeCType(CompoundCType clusteringType, AbstractType<?> columnNameType, ColumnToCollectionType collectionType)`
`protected Composite` `makeWith(java.nio.ByteBuffer[] components, int size, Composite.EOC eoc, boolean isStatic)`
`void` `removeCQL3Column(ColumnIdentifier id)`
`CellName` `rowMarker(Composite prefix)` Creates a row marker for the CQL3 having the provided clustering prefix.
`CellNameType` `setSubtype(int position, AbstractType<?> newType)` Returns a new CellNameType that is equivalent to this one but with one of the subtype replaced by the provided new type.
`Composite` `staticPrefix()` The prefix to use for static columns.
`boolean` `supportCollections()` Whether or not this type layout support collections.

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

`asAbstractType, builder, clusteringPrefixSize, fromByteBuffer, isCompound, makeCellName, newDeserializer, prefixBuilder, size, subtype`

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

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

### 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.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

#### rowMarkerId

    public static final ColumnIdentifier rowMarkerId

#### internedIds

    protected final java.util.Map<java.nio.ByteBuffer,ColumnIdentifier> internedIds

### Constructor Detail

#### CompoundSparseCellNameType

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

#### CompoundSparseCellNameType

    public CompoundSparseCellNameType(java.util.List<AbstractType<?>> types,
                                      AbstractType<?> columnNameType)

### Method Detail

#### makeCType

    protected static CompoundCType makeCType(CompoundCType clusteringType,
                                             AbstractType<?> columnNameType,
                                             ColumnToCollectionType collectionType)

#### setSubtype

    public CellNameType setSubtype(int position,
                                   AbstractType<?> newType)

Description copied from interface: `CellNameType`
Returns a new CellNameType that is equivalent to this one but with one of the subtype replaced by the provided new type.

#### addOrUpdateCollection

    public CellNameType addOrUpdateCollection(ColumnIdentifier columnName,
                                              CollectionType newCollection)

Description copied from interface: `CellNameType`
Return the new type obtained by adding/updating to the new collection type for the provided column name to this type.

Specified by:
  `addOrUpdateCollection` in interface `CellNameType`
Overrides:
  `addOrUpdateCollection` in class `AbstractCellNameType`

#### isDense

    public boolean isDense()

Description copied from interface: `CellNameType`
Whether or not the cell names for this type are dense.

#### supportCollections

    public boolean supportCollections()

Description copied from interface: `CellNameType`
Whether or not this type layout support collections.

Specified by:
  `supportCollections` in interface `CellNameType`
Overrides:
  `supportCollections` in class `AbstractCellNameType`

#### staticPrefix

    public Composite staticPrefix()

Description copied from interface: `CellNameType`
The prefix to use for static columns. Note that create() methods below for creating CellName automatically handle static columns already for convenience, and so there is not need to pass this prefix for them. There is few other cases where we need the prefix directly however.

Specified by:
  `staticPrefix` in interface `CellNameType`
Overrides:
  `staticPrefix` in class `AbstractCellNameType`

#### create

    public CellName create(Composite prefix,
                           ColumnDefinition column)

Description copied from interface: `CellNameType`
Creates a new CellName given a clustering prefix and a CQL3 column. Note that for dense types, the column can be null as a shortcut for designing the only COMPACT_VALUE column of the table.

#### rowMarker

    public CellName rowMarker(Composite prefix)

Description copied from interface: `CellNameType`
Creates a row marker for the CQL3 having the provided clustering prefix. Note that this is only valid for CQL3 tables (isCompound() and !isDense()) and should only be called for them.

Specified by:
  `rowMarker` in interface `CellNameType`
Overrides:
  `rowMarker` in class `AbstractCellNameType`

#### idFor

    protected ColumnIdentifier idFor(java.nio.ByteBuffer bb)

#### makeWith

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

Specified by:
  `makeWith` in class `AbstractCompoundCellNameType`

#### copyAndMakeWith

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

Specified by:
  `copyAndMakeWith` in class `AbstractCompoundCellNameType`

#### addCQL3Column

    public void addCQL3Column(ColumnIdentifier id)

#### removeCQL3Column

    public void removeCQL3Column(ColumnIdentifier id)

#### CQL3RowBuilder

    public CQL3Row.Builder CQL3RowBuilder(CFMetaData metadata,
                                          long now)

Description copied from interface: `CellNameType`
Creates a new CQL3Row builder for this type. See CQL3Row for details.