public class RowPermutedStarTable extends WrapperStarTable
A long[] array, rowMap, is used to keep
track of which rows in this table correspond to which rows in the
base table; the n'th row in this table corresponds to the
rowMap[n]'th row in the base table.
The rowMap array may contain duplicate entries, but should
not contain any entries larger than the number of rows in the base table.
Any negative entry is treated as a special case resulting in a 'blank'
row of all null values.
It can be modified during the life of the table, but it's not a good
idea to do this while a RowSequence is active.
baseTable| Constructor and Description |
|---|
RowPermutedStarTable(StarTable baseTable)
Constructs a new RowPermutedTable with rows initially in unpermuted
order.
|
RowPermutedStarTable(StarTable baseTable,
long[] rowMap)
Constructs a new
RowPermutedStarTable from a base table
and a rowMap array. |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
getCell(long irow,
int icol)
Returns the contents of a given table cell.
|
java.lang.Object[] |
getRow(long irow)
Returns the contents of a given table row.
|
RowAccess |
getRowAccess()
Returns an object which can provide random access to this
table's data, if random access is implemented.
|
long |
getRowCount()
Returns the number of rows in this table, if known.
|
long[] |
getRowMap()
Returns the mapping array.
|
RowSequence |
getRowSequence()
Returns an object which can iterate over all the rows in the table
sequentially.
|
RowSplittable |
getRowSplittable()
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.
|
boolean |
isRandom()
Returns true.
|
void |
setRowMap(long[] rowMap)
Sets the mapping array.
|
checkedLongToInt, close, getBaseTable, getColumnAuxDataInfos, getColumnCount, getColumnInfo, getName, getParameterByName, getParameters, getURL, setName, setParameter, setURL, toStringpublic RowPermutedStarTable(StarTable baseTable, long[] rowMap)
RowPermutedStarTable from a base table
and a rowMap array.
baseTable must provide random access.
baseTable - base tablerowMap - array mapping rows in the new permuted table to
rows in baseTablejava.lang.IllegalArgumentException - if baseTable.isRandom
returns falsepublic RowPermutedStarTable(StarTable baseTable)
baseTable - base tablepublic long[] getRowMap()
public void setRowMap(long[] rowMap)
rowMap - array mapping rows in this table to rows in the base tablepublic long getRowCount()
StarTablegetRowCount in interface StarTablegetRowCount in class WrapperStarTablepublic boolean isRandom()
isRandom in interface StarTableisRandom in class WrapperStarTabletrue if table random access methods are availablepublic RowAccess getRowAccess() throws java.io.IOException
StarTablegetRowAccess in interface StarTablegetRowAccess in class WrapperStarTablejava.io.IOException - if there is an error setting up accesspublic RowSequence getRowSequence() throws java.io.IOException
StarTablegetRowSequence in interface StarTablegetRowSequence in class WrapperStarTablejava.io.IOException - if there is an error providing accesspublic RowSplittable getRowSplittable() throws java.io.IOException
StarTableThe 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
getRowSplittable method, so that upstream policy
about how to divide up the table is respected.
However, implementations without special requirements may return
Tables.getDefaultRowSplittable(this).
getRowSplittable in interface StarTablegetRowSplittable in class WrapperStarTablejava.io.IOExceptionRowRunnerpublic java.lang.Object getCell(long irow,
int icol)
throws java.io.IOException
StarTablegetColumnInfo(icol).getContentClass().
This method is safe for concurrent use from multiple threads,
but in general it is recommended to use a
RowAccess instead.
getCell in interface StarTablegetCell in class WrapperStarTableirow - the index of the cell's rowicol - the index of the cell's columnjava.io.IOException - if there is an error reading the datapublic java.lang.Object[] getRow(long irow)
throws java.io.IOException
StarTablegetCell(irow,icol) for all the columns icol
in sequence.
This method is safe for concurrent use from multiple threads,
but in general it is recommended to use a
RowAccess instead.
getRow in interface StarTablegetRow in class WrapperStarTableirow - the index of the row to retrieveirowjava.io.IOException - if there is an error reading the data