# Interface RowSplittable

All Superinterfaces:
  `AutoCloseable, Closeable, RowData, RowSequence, uk.ac.starlink.util.Sequence, uk.ac.starlink.util.Splittable<RowSplittable>`

All Known Implementing Classes:
  `EmptyRowSequence, MappingRowSplittable, ProgressRowSplittable, RandomRowSplittable, SequentialRowSplittable`

public interface RowSplittable extends RowSequence, uk.ac.starlink.util.Splittable<RowSplittable>
RowSequence subinterface that is also suitable for parallel processing.

Since:
  4 Aug 2020
Author:
  Mark Taylor

## Method Summary

Modifier and Type
Method
Description
`LongSupplier`
`rowIndex()`
Returns a supplier for the index of the row currently being processed, if possible.

### Methods inherited from interface RowSequence

`close, getCell, getRow, next`

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

`split, splittableSize`

## Method Details

### rowIndex

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