uk.ac.starlink.table

## Interface RowSplittable

- All Superinterfaces:
    java.lang.AutoCloseable, java.io.Closeable, RowData, RowSequence, Sequence, Splittable<RowSplittable>
  All Known Implementing Classes:
    EmptyRowSequence, MappingRowSplittable, ProgressRowSplittable, RandomRowSplittable, SequentialRowSplittable

      public interface RowSplittable
      extends RowSequence, Splittable<RowSplittable>

  RowSequence subinterface that is also suitable for parallel processing.
  Since:
    4 Aug 2020

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.function.LongSupplier` | `rowIndex()` Returns a supplier for the index of the row currently being processed, if possible.

    - ### Methods inherited from interface uk.ac.starlink.table.RowSequence

      `close, getCell, getRow, next`

    - ### Methods inherited from interface uk.ac.starlink.util.Splittable

      `split, splittableSize`

- - ### Method Detail

    - #### rowIndex

          java.util.function.LongSupplier rowIndex()

      Returns a supplier for the index of the row currently being processed, if possible. The row index is a global value; when accessing the first row of a top-level RowSplittable, the value returned by this supplier should be the first index in the table. But for objects resulting from splitting a top-level instance into sub-instances, the return value should reflect the index in the original sequence of rows; each index should be returned from only one of the splittables resulting from splitting a top-level instance.

      Typically, the row index will start at 0 and increment for each row, but the numbering may be different depending on the requirements of the implementation or usage.

      Before the `RowSequence.next()` method has been called, the return value will be one less than the first row index. After `RowSequence.next` has returned false, the value is undefined.

      Depending on the implementation, it may not be possible to determine the row index (for instance if the sequence is split into sub-splittables of unknown size). In such cases, this method returns null. The null-ness of the return value must be the same for all instances of the splittable hierarchy for a given sequence, so don't return a non-null value for the first splittable and then null values for some or all of its children.

      Returns:
        supplier for the globally-referenced row index value of the current row of this sequence, or null