org.apache.cassandra.db

## Class ColumnFamily

- java.lang.Object
- - org.apache.cassandra.db.ColumnFamily

- All Implemented Interfaces:
    java.lang.Iterable<Cell>, IRowCacheEntry
  Direct Known Subclasses:
    ArrayBackedSortedColumns, AtomicBTreeColumns

      public abstract class ColumnFamily
      extends java.lang.Object
      implements java.lang.Iterable<Cell>, IRowCacheEntry

  A sorted map of columns. This represents the backing map of a colum family. Whether the implementation is thread safe or not is left to the implementing classes.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ColumnFamily.Factory<T extends ColumnFamily>`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected CFMetaData` | `metadata`
    `static ColumnFamilySerializer` | `serializer`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ColumnFamily(CFMetaData metadata)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `addAll(ColumnFamily cm)` Adds all the columns of a given column map to this column map.
    `void` | `addAtom(OnDiskAtom atom)`
    `abstract void` | `addColumn(Cell cell)` Adds a cell to this cell map.
    `void` | `addColumn(CellName name, java.nio.ByteBuffer value, long timestamp)`
    `void` | `addColumn(CellName name, java.nio.ByteBuffer value, long timestamp, int timeToLive)`
    `void` | `addCounter(CellName name, long value)`
    `void` | `addTombstone(CellName name, java.nio.ByteBuffer localDeletionTime, long timestamp)`
    `void` | `addTombstone(CellName name, int localDeletionTime, long timestamp)`
    `abstract void` | `appendColumn(Cell cell)` Appends a cell.
    `java.util.Map<CellName,java.nio.ByteBuffer>` | `asMap()`
    `abstract BatchRemoveIterator<Cell>` | `batchRemoveIterator()`
    `abstract void` | `clear()` Clear this column family, removing all columns and deletion info.
    `abstract ColumnFamily` | `cloneMe()` Clones the column map.
    `ColumnFamily` | `cloneMeShallow()`
    `ColumnFamily` | `cloneMeShallow(boolean reversed)`
    `<T extends ColumnFamily> T` | `cloneMeShallow(ColumnFamily.Factory<T> factory, boolean reversedInsertOrder)`
    `long` | `dataSize()`
    `void` | `delete(ColumnFamily columns)` If `columns` has any tombstones (top-level or range tombstones), they will be applied to this set of columns.
    `abstract void` | `delete(DeletionInfo info)`
    `abstract void` | `delete(DeletionTime deletionTime)`
    `protected abstract void` | `delete(RangeTombstone tombstone)`
    `abstract DeletionInfo` | `deletionInfo()`
    `ColumnFamily` | `diff(ColumnFamily cfComposite)`
    `static ColumnFamily` | `diff(ColumnFamily cf1, ColumnFamily cf2)`
    `static java.nio.ByteBuffer` | `digest(ColumnFamily cf)`
    `boolean` | `equals(java.lang.Object o)`
    `static ColumnFamily` | `fromBytes(java.nio.ByteBuffer bytes)`
    `abstract Cell` | `getColumn(CellName name)` Get a column given its name, returning null if the column is not present.
    `abstract int` | `getColumnCount()` Returns the number of columns in this map.
    `abstract java.lang.Iterable<CellName>` | `getColumnNames()` Returns an iterable with the names of columns in this column map in the same order as the underlying columns themselves.
    `ColumnStats` | `getColumnStats()`
    `CellNameType` | `getComparator()`
    `abstract ColumnFamily.Factory` | `getFactory()` Returns the factory used for this ISortedColumns implementation.
    `abstract java.util.Collection<Cell>` | `getReverseSortedColumns()` Returns the columns of this column map as a collection.
    `abstract java.util.Collection<Cell>` | `getSortedColumns()` Returns the columns of this column map as a collection.
    `ColumnFamilyType` | `getType()`
    `abstract boolean` | `hasColumns()` Returns whether or not there are any columns present.
    `int` | `hashCode()`
    `boolean` | `hasOnlyTombstones(long now)`
    `java.util.UUID` | `id()`
    `DeletionInfo.InOrderTester` | `inOrderDeletionTester()` Returns a `DeletionInfo.InOrderTester` for the deletionInfo() of this column family.
    `boolean` | `isEmpty()` Returns true if this contains no columns or deletion info
    `abstract boolean` | `isInsertReversed()` Returns if this map only support inserts in reverse order.
    `boolean` | `isMarkedForDelete()`
    `java.util.Iterator<Cell>` | `iterator()`
    `abstract java.util.Iterator<Cell>` | `iterator(ColumnSlice[] slices)` Returns an iterator over the columns of this map that returns only the matching @param slices.
    `int` | `liveCQL3RowCount(long now)`
    `long` | `maxTimestamp()`
    `abstract void` | `maybeAppendColumn(Cell cell, DeletionInfo.InOrderTester tester, int gcBefore)` Adds a cell if it's non-gc-able and isn't shadowed by a partition/range tombstone with a higher timestamp.
    `CFMetaData` | `metadata()`
    `abstract void` | `purgeTombstones(int gcBefore)` Purges top-level and range tombstones whose localDeletionTime is older than gcBefore.
    `java.util.Iterator<Cell>` | `reverseIterator()`
    `abstract java.util.Iterator<Cell>` | `reverseIterator(ColumnSlice[] slices)` Returns a reversed iterator over the columns of this map that returns only the matching @param slices.
    `abstract SearchIterator<CellName,Cell>` | `searchIterator()`
    `abstract void` | `setDeletionInfo(DeletionInfo info)`
    `java.nio.ByteBuffer` | `toBytes()`
    `java.lang.String` | `toString()`
    `void` | `updateDigest(java.security.MessageDigest digest)`

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

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

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

      `forEach, spliterator`

- - ### Field Detail

    - #### serializer

          public static final ColumnFamilySerializer serializer

    - #### metadata

          protected final CFMetaData metadata

  - ### Constructor Detail

    - #### ColumnFamily

          protected ColumnFamily(CFMetaData metadata)

  - ### Method Detail

    - #### cloneMeShallow

          public <T extends ColumnFamily> T cloneMeShallow(ColumnFamily.Factory<T> factory,
                                                           boolean reversedInsertOrder)

    - #### cloneMeShallow

          public ColumnFamily cloneMeShallow()

    - #### cloneMeShallow

          public ColumnFamily cloneMeShallow(boolean reversed)

    - #### getType

          public ColumnFamilyType getType()

    - #### liveCQL3RowCount

          public int liveCQL3RowCount(long now)

    - #### cloneMe

          public abstract ColumnFamily cloneMe()

      Clones the column map.

    - #### id

          public java.util.UUID id()

    - #### metadata

          public CFMetaData metadata()

      Returns:
        The CFMetaData for this row

    - #### addColumn

          public void addColumn(CellName name,
                                java.nio.ByteBuffer value,
                                long timestamp)

    - #### addColumn

          public void addColumn(CellName name,
                                java.nio.ByteBuffer value,
                                long timestamp,
                                int timeToLive)

    - #### addCounter

          public void addCounter(CellName name,
                                 long value)

    - #### addTombstone

          public void addTombstone(CellName name,
                                   java.nio.ByteBuffer localDeletionTime,
                                   long timestamp)

    - #### addTombstone

          public void addTombstone(CellName name,
                                   int localDeletionTime,
                                   long timestamp)

    - #### addAtom

          public void addAtom(OnDiskAtom atom)

    - #### clear

          public abstract void clear()

      Clear this column family, removing all columns and deletion info.

    - #### inOrderDeletionTester

          public DeletionInfo.InOrderTester inOrderDeletionTester()

      Returns a `DeletionInfo.InOrderTester` for the deletionInfo() of this column family. Please note that for ThreadSafe implementation of ColumnFamily, this tester will remain valid even if new tombstones are added to this ColumnFamily *as long as said addition is done in comparator order*. For AtomicSortedColumns, the tester will correspond to the state of when this method is called.

    - #### getFactory

          public abstract ColumnFamily.Factory getFactory()

      Returns the factory used for this ISortedColumns implementation.

    - #### deletionInfo

          public abstract DeletionInfo deletionInfo()

    - #### setDeletionInfo

          public abstract void setDeletionInfo(DeletionInfo info)

    - #### delete

          public abstract void delete(DeletionInfo info)

    - #### delete

          public abstract void delete(DeletionTime deletionTime)

    - #### delete

          protected abstract void delete(RangeTombstone tombstone)

    - #### searchIterator

          public abstract SearchIterator<CellName,Cell> searchIterator()

    - #### purgeTombstones

          public abstract void purgeTombstones(int gcBefore)

      Purges top-level and range tombstones whose localDeletionTime is older than gcBefore.
      Parameters:
        `gcBefore` - a timestamp (in seconds) before which tombstones should be purged

    - #### addColumn

          public abstract void addColumn(Cell cell)

      Adds a cell to this cell map. If a cell with the same name is already present in the map, it will be replaced by the newly added cell.

    - #### maybeAppendColumn

          public abstract void maybeAppendColumn(Cell cell,
                                                 DeletionInfo.InOrderTester tester,
                                                 int gcBefore)

      Adds a cell if it's non-gc-able and isn't shadowed by a partition/range tombstone with a higher timestamp. Requires that the cell to add is sorted strictly after the last cell in the container.

    - #### appendColumn

          public abstract void appendColumn(Cell cell)

      Appends a cell. Requires that the cell to add is sorted strictly after the last cell in the container.

    - #### addAll

          public abstract void addAll(ColumnFamily cm)

      Adds all the columns of a given column map to this column map. This is equivalent to: `for (Cell c : cm) addColumn(c, ...);` but is potentially faster.

    - #### getColumn

          public abstract Cell getColumn(CellName name)

      Get a column given its name, returning null if the column is not present.

    - #### getColumnNames

          public abstract java.lang.Iterable<CellName> getColumnNames()

      Returns an iterable with the names of columns in this column map in the same order as the underlying columns themselves.

    - #### getSortedColumns

          public abstract java.util.Collection<Cell> getSortedColumns()

      Returns the columns of this column map as a collection. The columns in the returned collection should be sorted as the columns in this map.

    - #### getReverseSortedColumns

          public abstract java.util.Collection<Cell> getReverseSortedColumns()

      Returns the columns of this column map as a collection. The columns in the returned collection should be sorted in reverse order of the columns in this map.

    - #### getColumnCount

          public abstract int getColumnCount()

      Returns the number of columns in this map.

    - #### hasColumns

          public abstract boolean hasColumns()

      Returns whether or not there are any columns present.

    - #### isEmpty

          public boolean isEmpty()

      Returns true if this contains no columns or deletion info

    - #### iterator

          public abstract java.util.Iterator<Cell> iterator(ColumnSlice[] slices)

      Returns an iterator over the columns of this map that returns only the matching @param slices. The provided slices must be in order and must be non-overlapping.

    - #### reverseIterator

          public abstract java.util.Iterator<Cell> reverseIterator(ColumnSlice[] slices)

      Returns a reversed iterator over the columns of this map that returns only the matching @param slices. The provided slices must be in reversed order and must be non-overlapping.

    - #### isInsertReversed

          public abstract boolean isInsertReversed()

      Returns if this map only support inserts in reverse order.

    - #### delete

          public void delete(ColumnFamily columns)

      If `columns` has any tombstones (top-level or range tombstones), they will be applied to this set of columns.

    - #### diff

          public ColumnFamily diff(ColumnFamily cfComposite)

    - #### dataSize

          public long dataSize()

    - #### maxTimestamp

          public long maxTimestamp()

    - #### hashCode

          public int hashCode()

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

    - #### equals

          public boolean equals(java.lang.Object o)

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

    - #### toString

          public java.lang.String toString()

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

    - #### digest

          public static java.nio.ByteBuffer digest(ColumnFamily cf)

    - #### updateDigest

          public void updateDigest(java.security.MessageDigest digest)

    - #### diff

          public static ColumnFamily diff(ColumnFamily cf1,
                                          ColumnFamily cf2)

    - #### getColumnStats

          public ColumnStats getColumnStats()

    - #### isMarkedForDelete

          public boolean isMarkedForDelete()

    - #### getComparator

          public CellNameType getComparator()

      Returns:
        the comparator whose sorting order the contained columns conform to

    - #### hasOnlyTombstones

          public boolean hasOnlyTombstones(long now)

    - #### iterator

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

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

    - #### reverseIterator

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

    - #### asMap

          public java.util.Map<CellName,java.nio.ByteBuffer> asMap()

    - #### fromBytes

          public static ColumnFamily fromBytes(java.nio.ByteBuffer bytes)

    - #### toBytes

          public java.nio.ByteBuffer toBytes()

    - #### batchRemoveIterator

          public abstract BatchRemoveIterator<Cell> batchRemoveIterator()

      Returns:
        an iterator where the removes are carried out once everything has been iterated

Copyright © 2018 The Apache Software Foundation