Package uk.ac.starlink.table
Class SelectorStarTable
java.lang.Object
uk.ac.starlink.table.WrapperStarTable
uk.ac.starlink.table.SelectorStarTable
- All Implemented Interfaces:
Closeable,AutoCloseable,StarTable
Sequential wrapper table which selects only certain rows of its base table.
No random access is provided, and the row sequence evaluates
the abstract
isIncluded(uk.ac.starlink.table.RowSequence) method for each row of the base
table as it is iterated over.- Since:
- 11 Feb 2005
- Author:
- Mark Taylor (Starlink)
-
Field Summary
Fields inherited from class uk.ac.starlink.table.WrapperStarTable
baseTable -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetCell(int icol) Object[]getRow()Returns an object which can provide random access to this table's data, if random access is implemented.longReturns -1 (length unknown).Returns an object which can iterate over all the rows in the table sequentially.Returns an object which can iterate over all the rows in the table, but which may also be requested to split recursively for potentially parallel processing.abstract booleanisIncluded(RowSequence baseSeq) Evaluated to determine whether rows of the base table are included in this one.booleanisRandom()Returns false.Methods inherited from class uk.ac.starlink.table.WrapperStarTable
checkedLongToInt, close, getBaseTable, getCell, getColumnAuxDataInfos, getColumnCount, getColumnInfo, getName, getParameterByName, getParameters, getRow, getURL, setName, setParameter, setURL, toString
-
Constructor Details
-
SelectorStarTable
Constructor.- Parameters:
baseTable- table on which this is based
-
-
Method Details
-
isIncluded
Evaluated to determine whether rows of the base table are included in this one.- Parameters:
baseSeq- row sequence of the base table- Returns:
- true iff the current row of baseSeq is to be included
- Throws:
IOException
-
isRandom
public boolean isRandom()Returns false.- Specified by:
isRandomin interfaceStarTable- Overrides:
isRandomin classWrapperStarTable- Returns:
- true if table random access methods are available
-
getRowCount
public long getRowCount()Returns -1 (length unknown).- Specified by:
getRowCountin interfaceStarTable- Overrides:
getRowCountin classWrapperStarTable- Returns:
- the number of rows, or -1
-
getRow
-
getCell
-
getRowSequence
Description copied from interface:StarTableReturns an object which can iterate over all the rows in the table sequentially. Each such returned object is safe for use within a single thread, but not in general from multiple threads concurrently.- Specified by:
getRowSequencein interfaceStarTable- Overrides:
getRowSequencein classWrapperStarTable- Returns:
- new RowSequence
- Throws:
IOException- if there is an error providing access
-
getRowSplittable
Description copied from interface:StarTableReturns an object which can iterate over all the rows in the table, but which may also be requested to split recursively for potentially parallel processing.The return value must be non-null, and may provide splitting arrangements specially appropriate for the implementation. If this table 'wraps' an upstream table, it is usually best to base the implementation on calls to the the upstream
getRowSplittablemethod, so that upstream policy about how to divide up the table is respected. However, implementations without special requirements may returnTables.getDefaultRowSplittable(this).- Specified by:
getRowSplittablein interfaceStarTable- Overrides:
getRowSplittablein classWrapperStarTable- Returns:
- new RowSplittable
- Throws:
IOException- See Also:
-
getRowAccess
Description copied from interface:StarTableReturns an object which can provide random access to this table's data, if random access is implemented. Each such returned object is safe for use within a single thread, but not in general from multiple threads concurrently.- Specified by:
getRowAccessin interfaceStarTable- Overrides:
getRowAccessin classWrapperStarTable- Returns:
- new RowAccess
-