org.apache.cassandra.db.rows

## Class AbstractRow

- java.lang.Object
- - java.util.AbstractCollection<ColumnData>
  - - org.apache.cassandra.db.rows.AbstractRow

All Implemented Interfaces:
  java.lang.Iterable<ColumnData>, java.util.Collection<ColumnData>, Clusterable, Row, Unfiltered

Direct Known Subclasses:
  BTreeRow

    public abstract class AbstractRow
    extends java.util.AbstractCollection<ColumnData>
    implements Row

Base abstract class for `Row` implementations. Unless you have a very good reason not to, every row implementation should probably extend this class.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.cassandra.db.rows.Row

`Row.Builder, Row.Deletion, Row.Merger, Row.SimpleBuilder`

### Nested classes/interfaces inherited from interface org.apache.cassandra.db.rows.Unfiltered

`Unfiltered.Kind`

### Constructor Summary

Constructors
Constructor and Description
`AbstractRow()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `digest(java.security.MessageDigest digest)` Digest the atom using the provided `MessageDigest`.
`void` `digest(java.security.MessageDigest digest, java.util.Set<java.nio.ByteBuffer> columnsToExclude)` Digest the atom using the provided `MessageDigest`.
`boolean` `equals(java.lang.Object other)`
`int` `hashCode()`
`boolean` `hasLiveData(int nowInSec, boolean enforceStrictLiveness)` Whether the row has some live information (i.e.
`boolean` `isStatic()` Whether the row correspond to a static row or not.
`Unfiltered.Kind` `kind()` The kind of the atom: either row or range tombstone marker.
`java.lang.String` `toString(CFMetaData metadata)`
`java.lang.String` `toString(CFMetaData metadata, boolean fullDetails)`
`java.lang.String` `toString(CFMetaData metadata, boolean includeClusterKeys, boolean fullDetails)`
`void` `validateData(CFMetaData metadata)` Validate the data of this atom.

### Methods inherited from class java.util.AbstractCollection

`add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString`

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

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

### Methods inherited from interface org.apache.cassandra.db.rows.Row

`apply, apply, cells, cellsInLegacyOrder, clustering, columns, dataSize, deletion, filter, filter, getCell, getCell, getComplexColumnData, hasComplex, hasComplexDeletion, hasDeletion, isEmpty, markCounterLocalToBeCleared, primaryKeyLivenessInfo, purge, searchIterator, unsharedHeapSizeExcludingData, updateAllTimestamp, withOnlyQueriedData, withRowDeletion`

### Methods inherited from interface org.apache.cassandra.db.rows.Unfiltered

`isRangeTombstoneMarker, isRow`

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

`add, addAll, clear, contains, containsAll, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray`

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

`forEach`

### Constructor Detail

#### AbstractRow

    public AbstractRow()

### Method Detail

#### kind

    public Unfiltered.Kind kind()

Description copied from interface: `Unfiltered`
The kind of the atom: either row or range tombstone marker.

Specified by:
  `kind` in interface `Unfiltered`

#### hasLiveData

    public boolean hasLiveData(int nowInSec,
                               boolean enforceStrictLiveness)

Description copied from interface: `Row`
Whether the row has some live information (i.e. it's not just deletion informations).

Specified by:
  `hasLiveData` in interface `Row`
Parameters:
  `nowInSec` - the current time to decide what is deleted and what isn't
  `enforceStrictLiveness` - whether the row should be purged if there is no PK liveness info, normally retrieved from `CFMetaData.enforceStrictLiveness()`
Returns:
  true if there is some live information

#### isStatic

    public boolean isStatic()

Description copied from interface: `Row`
Whether the row correspond to a static row or not.

Specified by:
  `isStatic` in interface `Row`
Returns:
  whether the row correspond to a static row or not.

#### digest

    public void digest(java.security.MessageDigest digest)

Description copied from interface: `Unfiltered`
Digest the atom using the provided `MessageDigest`.

Specified by:
  `digest` in interface `Unfiltered`
Parameters:
  `digest` - the `MessageDigest` to use.

#### digest

    public void digest(java.security.MessageDigest digest,
                       java.util.Set<java.nio.ByteBuffer> columnsToExclude)

Description copied from interface: `Unfiltered`
Digest the atom using the provided `MessageDigest`. This method only exists in 3.11. Same like `Unfiltered.digest(MessageDigest)`, but excludes the given columns from digest calculation.

Specified by:
  `digest` in interface `Unfiltered`

#### validateData

    public void validateData(CFMetaData metadata)

Description copied from interface: `Unfiltered`
Validate the data of this atom.

Specified by:
  `validateData` in interface `Unfiltered`
Parameters:
  `metadata` - the metadata for the table this atom is part of.

#### toString

    public java.lang.String toString(CFMetaData metadata)

Specified by:
  `toString` in interface `Unfiltered`

#### toString

    public java.lang.String toString(CFMetaData metadata,
                                     boolean fullDetails)

Specified by:
  `toString` in interface `Row`
Specified by:
  `toString` in interface `Unfiltered`

#### toString

    public java.lang.String toString(CFMetaData metadata,
                                     boolean includeClusterKeys,
                                     boolean fullDetails)

Specified by:
  `toString` in interface `Unfiltered`

#### equals

    public boolean equals(java.lang.Object other)

Specified by:
  `equals` in interface `java.util.Collection<ColumnData>`
Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in interface `java.util.Collection<ColumnData>`
Overrides:
  `hashCode` in class `java.lang.Object`