Package uk.ac.starlink.table
Class SelectorStarTable
- java.lang.Object
-
- uk.ac.starlink.table.WrapperStarTable
-
- uk.ac.starlink.table.SelectorStarTable
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,StarTable
public abstract class SelectorStarTable extends WrapperStarTable
Sequential wrapper table which selects only certain rows of its base table. No random access is provided, and the row sequence evaluates the abstractisIncluded(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 Constructor Description SelectorStarTable(StarTable baseTable)Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.lang.ObjectgetCell(int icol)java.lang.Object[]getRow()RowAccessgetRowAccess()Returns an object which can provide random access to this table's data, if random access is implemented.longgetRowCount()Returns -1 (length unknown).RowSequencegetRowSequence()Returns an object which can iterate over all the rows in the table sequentially.RowSplittablegetRowSplittable()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 Detail
-
SelectorStarTable
public SelectorStarTable(StarTable baseTable)
Constructor.- Parameters:
baseTable- table on which this is based
-
-
Method Detail
-
isIncluded
public abstract boolean isIncluded(RowSequence baseSeq) throws java.io.IOException
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:
java.io.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
public java.lang.Object[] getRow()
-
getCell
public java.lang.Object getCell(int icol)
-
getRowSequence
public RowSequence getRowSequence() throws java.io.IOException
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:
java.io.IOException- if there is an error providing access
-
getRowSplittable
public RowSplittable getRowSplittable() throws java.io.IOException
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:
java.io.IOException- See Also:
RowRunner
-
getRowAccess
public RowAccess 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
-
-