org.apache.cassandra.db.columniterator

## Class AbstractSSTableIterator

- java.lang.Object
- - org.apache.cassandra.db.columniterator.AbstractSSTableIterator

- All Implemented Interfaces:
    java.lang.AutoCloseable, java.util.Iterator<Unfiltered>, BaseRowIterator<Unfiltered>, UnfilteredRowIterator, CloseableIterator<Unfiltered>
  Direct Known Subclasses:
    SSTableIterator, SSTableReversedIterator

      public abstract class AbstractSSTableIterator
      extends java.lang.Object
      implements UnfilteredRowIterator

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `AbstractSSTableIterator.IndexState`
    `protected class` | `AbstractSSTableIterator.Reader`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ColumnFilter` | `columns`
    `protected SerializationHelper` | `helper`
    `protected FileHandle` | `ifile`
    `protected DecoratedKey` | `key`
    `protected DeletionTime` | `partitionLevelDeletion`
    `protected AbstractSSTableIterator.Reader` | `reader`
    `protected Slices` | `slices`
    `protected SSTableReader` | `sstable`
    `protected Row` | `staticRow`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractSSTableIterator(SSTableReader sstable, FileDataInput file, DecoratedKey key, RowIndexEntry indexEntry, Slices slices, ColumnFilter columnFilter, boolean isForThrift, FileHandle ifile)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `PartitionColumns` | `columns()` A subset of the columns for the (static and regular) rows returned by this iterator.
    `protected abstract AbstractSSTableIterator.Reader` | `createReaderInternal(RowIndexEntry indexEntry, FileDataInput file, boolean shouldCloseFile)`
    `protected abstract boolean` | `hasMoreSlices()` Checks if there are more slice to process.
    `boolean` | `hasNext()`
    `CFMetaData` | `metadata()` The metadata for the table this iterator on.
    `Unfiltered` | `next()`
    `protected abstract int` | `nextSliceIndex()` Returns the index of the next slice to process.
    `DecoratedKey` | `partitionKey()` The partition key of the partition this in an iterator over.
    `DeletionTime` | `partitionLevelDeletion()` The partition level deletion for the partition this iterate over.
    `void` | `remove()`
    `Row` | `staticRow()` The static part corresponding to this partition (this can be an empty row but cannot be `null`).
    `EncodingStats` | `stats()` Return "statistics" about what is returned by this iterator.

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

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

    - ### Methods inherited from interface org.apache.cassandra.db.rows.UnfilteredRowIterator

      `isEmpty`

    - ### Methods inherited from interface org.apache.cassandra.db.rows.BaseRowIterator

      `isReverseOrder`

    - ### Methods inherited from interface java.util.Iterator

      `forEachRemaining`

- - ### Field Detail

    - #### sstable

          protected final SSTableReader sstable

    - #### key

          protected final DecoratedKey key

    - #### partitionLevelDeletion

          protected final DeletionTime partitionLevelDeletion

    - #### columns

          protected final ColumnFilter columns

    - #### helper

          protected final SerializationHelper helper

    - #### staticRow

          protected final Row staticRow

    - #### reader

          protected final AbstractSSTableIterator.Reader reader

    - #### ifile

          protected final FileHandle ifile

    - #### slices

          protected final Slices slices

  - ### Constructor Detail

    - #### AbstractSSTableIterator

          protected AbstractSSTableIterator(SSTableReader sstable,
                                            FileDataInput file,
                                            DecoratedKey key,
                                            RowIndexEntry indexEntry,
                                            Slices slices,
                                            ColumnFilter columnFilter,
                                            boolean isForThrift,
                                            FileHandle ifile)

  - ### Method Detail

    - #### nextSliceIndex

          protected abstract int nextSliceIndex()

      Returns the index of the next slice to process.
      Returns:
        the index of the next slice to process

    - #### hasMoreSlices

          protected abstract boolean hasMoreSlices()

      Checks if there are more slice to process.
      Returns:
        `true` if there are more slice to process, `false` otherwise.

    - #### createReaderInternal

          protected abstract AbstractSSTableIterator.Reader createReaderInternal(RowIndexEntry indexEntry,
                                                                                 FileDataInput file,
                                                                                 boolean shouldCloseFile)

    - #### metadata

          public CFMetaData metadata()

      Description copied from interface: `BaseRowIterator`
      The metadata for the table this iterator on.
      Specified by:
        `metadata` in interface `BaseRowIterator<Unfiltered>`

    - #### columns

          public PartitionColumns columns()

      Description copied from interface: `BaseRowIterator`
      A subset of the columns for the (static and regular) rows returned by this iterator. Every row returned by this iterator must guarantee that it has only those columns.
      Specified by:
        `columns` in interface `BaseRowIterator<Unfiltered>`

    - #### partitionKey

          public DecoratedKey partitionKey()

      Description copied from interface: `BaseRowIterator`
      The partition key of the partition this in an iterator over.
      Specified by:
        `partitionKey` in interface `BaseRowIterator<Unfiltered>`

    - #### partitionLevelDeletion

          public DeletionTime partitionLevelDeletion()

      Description copied from interface: `UnfilteredRowIterator`
      The partition level deletion for the partition this iterate over.
      Specified by:
        `partitionLevelDeletion` in interface `UnfilteredRowIterator`

    - #### staticRow

          public Row staticRow()

      Description copied from interface: `BaseRowIterator`
      The static part corresponding to this partition (this can be an empty row but cannot be `null`).
      Specified by:
        `staticRow` in interface `BaseRowIterator<Unfiltered>`

    - #### stats

          public EncodingStats stats()

      Description copied from interface: `UnfilteredRowIterator`
      Return "statistics" about what is returned by this iterator. Those are used for performance reasons (for delta-encoding for instance) and code should not expect those to be exact.
      Specified by:
        `stats` in interface `UnfilteredRowIterator`

    - #### hasNext

          public boolean hasNext()

      Specified by:
        `hasNext` in interface `java.util.Iterator<Unfiltered>`

    - #### next

          public Unfiltered next()

      Specified by:
        `next` in interface `java.util.Iterator<Unfiltered>`

    - #### remove

          public void remove()

      Specified by:
        `remove` in interface `java.util.Iterator<Unfiltered>`

    - #### close

          public void close()

      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in interface `CloseableIterator<Unfiltered>`

Copyright © 2018 The Apache Software Foundation