org.apache.cassandra.db.rows

## Class ComplexColumnData

- java.lang.Object
- - org.apache.cassandra.db.rows.ColumnData
  - - org.apache.cassandra.db.rows.ComplexColumnData

All Implemented Interfaces:
  java.lang.Iterable<Cell>

    public class ComplexColumnData
    extends ColumnData
    implements java.lang.Iterable<Cell>

The data for a complex column, that is it's cells and potential complex deletion time.

### Nested Class Summary

Nested Classes
`static class` `ComplexColumnData.Builder`

### Field Summary

### Fields inherited from class org.apache.cassandra.db.rows.ColumnData

`column, comparator`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static ComplexColumnData.Builder` `builder()`
`int` `cellsCount()`
`DeletionTime` `complexDeletion()` The complex deletion time of the complex column.
`int` `dataSize()` The size of the data hold by this `ColumnData`.
`void` `digest(java.security.MessageDigest digest)` Adds the data to the provided digest.
`boolean` `equals(java.lang.Object other)`
`ComplexColumnData` `filter(ColumnFilter filter, DeletionTime activeDeletion, CFMetaData.DroppedColumn dropped, LivenessInfo rowLiveness)`
`Cell` `getCell(CellPath path)`
`Cell` `getCellByIndex(int idx)`
`boolean` `hasCells()`
`int` `hashCode()`
`java.util.Iterator<Cell>` `iterator()`
`ComplexColumnData` `markCounterLocalToBeCleared()`
`long` `maxTimestamp()`
`ComplexColumnData` `purge(DeletionPurger purger, int nowInSec)`
`java.util.Iterator<Cell>` `reverseIterator()`
`long` `unsharedHeapSizeExcludingData()`
`ComplexColumnData` `updateAllTimestamp(long newTimestamp)` Returns a copy of the data where all timestamps for live data have replaced by `newTimestamp` and all deletion timestamp by `newTimestamp - 1`.
`void` `validate()` Validate the column data.
`ComplexColumnData` `withOnlyQueriedData(ColumnFilter filter)`

### Methods inherited from class org.apache.cassandra.db.rows.ColumnData

`column`

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

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

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Method Detail

#### hasCells

    public boolean hasCells()

#### cellsCount

    public int cellsCount()

#### getCell

    public Cell getCell(CellPath path)

#### getCellByIndex

    public Cell getCellByIndex(int idx)

#### complexDeletion

    public DeletionTime complexDeletion()

The complex deletion time of the complex column.

The returned "complex deletion" is a deletion of all the cells of the column. For instance, for a collection, this correspond to a full collection deletion. Please note that this deletion says nothing about the individual cells of the complex column: there can be no complex deletion but some of the individual cells can be deleted.

Returns:
  the complex deletion time for the column this is the data of or `DeletionTime.LIVE` if the column is not deleted.

#### iterator

    public java.util.Iterator<Cell> iterator()

Specified by:
  `iterator` in interface `java.lang.Iterable<Cell>`

#### reverseIterator

    public java.util.Iterator<Cell> reverseIterator()

#### dataSize

    public int dataSize()

Description copied from class: `ColumnData`
The size of the data hold by this `ColumnData`.

Specified by:
  `dataSize` in class `ColumnData`
Returns:
  the size used by the data of this `ColumnData`.

#### unsharedHeapSizeExcludingData

    public long unsharedHeapSizeExcludingData()

Specified by:
  `unsharedHeapSizeExcludingData` in class `ColumnData`

#### validate

    public void validate()

Description copied from class: `ColumnData`
Validate the column data.

Specified by:
  `validate` in class `ColumnData`

#### digest

    public void digest(java.security.MessageDigest digest)

Description copied from class: `ColumnData`
Adds the data to the provided digest.

Specified by:
  `digest` in class `ColumnData`
Parameters:
  `digest` - the `MessageDigest` to add the data to.

#### markCounterLocalToBeCleared

    public ComplexColumnData markCounterLocalToBeCleared()

Specified by:
  `markCounterLocalToBeCleared` in class `ColumnData`

#### filter

    public ComplexColumnData filter(ColumnFilter filter,
                                    DeletionTime activeDeletion,
                                    CFMetaData.DroppedColumn dropped,
                                    LivenessInfo rowLiveness)

#### purge

    public ComplexColumnData purge(DeletionPurger purger,
                                   int nowInSec)

Specified by:
  `purge` in class `ColumnData`

#### withOnlyQueriedData

    public ComplexColumnData withOnlyQueriedData(ColumnFilter filter)

#### updateAllTimestamp

    public ComplexColumnData updateAllTimestamp(long newTimestamp)

Description copied from class: `ColumnData`
Returns a copy of the data where all timestamps for live data have replaced by `newTimestamp` and all deletion timestamp by `newTimestamp - 1`. This exists for the Paxos path, see `PartitionUpdate.updateAllTimestamp(long)` for additional details.

Specified by:
  `updateAllTimestamp` in class `ColumnData`

#### maxTimestamp

    public long maxTimestamp()

Specified by:
  `maxTimestamp` in class `ColumnData`

#### equals

    public boolean equals(java.lang.Object other)

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

#### hashCode

    public int hashCode()

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

#### builder

    public static ComplexColumnData.Builder builder()