org.apache.cassandra.db.index.composites

## Class CompositesIndexOnCollectionKey

- java.lang.Object
- - org.apache.cassandra.db.index.SecondaryIndex
  - - org.apache.cassandra.db.index.PerColumnSecondaryIndex
    - - org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex
      - - org.apache.cassandra.db.index.composites.CompositesIndex
        - - org.apache.cassandra.db.index.composites.CompositesIndexOnCollectionKey

    public class CompositesIndexOnCollectionKey
    extends CompositesIndex

Index on the collection element of the cell name of a collection. A cell indexed by this index will have the general form: ck_0 ... ck_n c_name [col_elt] : v where ck_i are the cluster keys, c_name the CQL3 column name, col_elt the collection element that we want to index (which may or may not be there depending on whether c_name is the collection we're indexing) and v the cell value. Such a cell is indexed if c_name is the indexed collection (in which case we are guaranteed to have col_elt). The index entry will be: - row key will be col_elt value (getIndexedValue()). - cell name will be 'rk ck_0 ... ck_n' where rk is the row key of the initial cell.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.cassandra.db.index.composites.CompositesIndex

`CompositesIndex.IndexedEntry`

### Field Summary

### Fields inherited from class org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex

`columnDef, indexCfs`

### Fields inherited from class org.apache.cassandra.db.index.SecondaryIndex

`baseCfs, columnDefs, CUSTOM_INDEX_OPTION_NAME, keyComparator, logger`

### Constructor Summary

Constructors
Constructor and Description
`CompositesIndexOnCollectionKey()`

### Method Summary

Methods
`static CellNameType` `buildIndexComparator(CFMetaData baseMetadata, ColumnDefinition columnDef)`
`CompositesIndex.IndexedEntry` `decodeEntry(DecoratedKey indexedValue, Cell indexEntry)`
`protected java.nio.ByteBuffer` `getIndexedValue(java.nio.ByteBuffer rowKey, Cell cell)`
`protected AbstractType<?>` `getIndexKeyComparator()`
`boolean` `indexes(CellName name)` Returns true if the provided cell name is indexed by this secondary index.
`boolean` `isStale(CompositesIndex.IndexedEntry entry, ColumnFamily data, long now)`
`protected Composite` `makeIndexColumnPrefix(java.nio.ByteBuffer rowKey, Composite cellName)`

### Methods inherited from class org.apache.cassandra.db.index.composites.CompositesIndex

`create, createSecondaryIndexSearcher, delete, getExpressionComparator, getIndexComparator, getIndexComparator, makeIndexColumnName, validateOptions`

### Methods inherited from class org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex

`delete, estimateResultRows, expressionString, forceBlockingFlush, getIndexCfs, getIndexKeyFor, getIndexName, init, insert, invalidate, reload, removeIndex, truncateBlocking, update`

### Methods inherited from class org.apache.cassandra.db.index.PerColumnSecondaryIndex

`getNameForSystemKeyspace, validate`

### Methods inherited from class org.apache.cassandra.db.index.SecondaryIndex

`buildIndexAsync, buildIndexBlocking, createInstance, getBaseCfs, getColumnDefs, isIndexBuilt, setIndexBuilt, setIndexRemoved`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### CompositesIndexOnCollectionKey

    public CompositesIndexOnCollectionKey()

### Method Detail

#### buildIndexComparator

    public static CellNameType buildIndexComparator(CFMetaData baseMetadata,
                                    ColumnDefinition columnDef)

#### getIndexKeyComparator

    protected AbstractType<?> getIndexKeyComparator()

Overrides:
  `getIndexKeyComparator` in class `AbstractSimplePerColumnSecondaryIndex`

#### getIndexedValue

    protected java.nio.ByteBuffer getIndexedValue(java.nio.ByteBuffer rowKey,
                                      Cell cell)

Specified by:
  `getIndexedValue` in class `AbstractSimplePerColumnSecondaryIndex`

#### makeIndexColumnPrefix

    protected Composite makeIndexColumnPrefix(java.nio.ByteBuffer rowKey,
                                  Composite cellName)

Specified by:
  `makeIndexColumnPrefix` in class `CompositesIndex`

#### decodeEntry

    public CompositesIndex.IndexedEntry decodeEntry(DecoratedKey indexedValue,
                                           Cell indexEntry)

Specified by:
  `decodeEntry` in class `CompositesIndex`

#### indexes

    public boolean indexes(CellName name)

Description copied from class: `SecondaryIndex`
Returns true if the provided cell name is indexed by this secondary index.

Specified by:
  `indexes` in class `SecondaryIndex`

#### isStale

    public boolean isStale(CompositesIndex.IndexedEntry entry,
                  ColumnFamily data,
                  long now)

Specified by:
  `isStale` in class `CompositesIndex`