Package uk.ac.starlink.table
Class WrapperStarTable
- java.lang.Object
-
- uk.ac.starlink.table.WrapperStarTable
-
- All Implemented Interfaces:
StarTable
- Direct Known Subclasses:
ColumnPermutedStarTable
,ConcatStarTable
,EmptyStarTable
,ExplodedStarTable
,MetaCopyStarTable
,ProgressBarStarTable
,ProgressLineStarTable
,RandomWrapperStarTable
,RowPermutedStarTable
,RowSubsetStarTable
,SelectorStarTable
public class WrapperStarTable extends java.lang.Object implements StarTable
StarTable which wraps another StarTable. This class acts as a wrapper around an existing 'base' StarTable object; almost all its methods are implemented by forwarding to the corresponding methods of that base table. The exception is thegetURL()
method which returns null as an indication that the actual table is not a persistent one (though it may be based on, and even identical to, a persistent one).This class is provided so that it can be extended by subclasses which modify the view of the base table in useful ways.
- Author:
- Mark Taylor (Starlink)
- See Also:
WrapperRowSequence
-
-
Constructor Summary
Constructors Constructor Description WrapperStarTable(StarTable baseTable)
Constructs a new WrapperStarTable from a given base table.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static int
checkedLongToInt(long lval)
Convenience method to get an int value from a long.StarTable
getBaseTable()
Returns the base table underlying this wrapper table.java.lang.Object
getCell(long irow, int icol)
Returns the contents of a given table cell.java.util.List
getColumnAuxDataInfos()
Returns an ordered list ofValueInfo
objects representing the auxiliary metadata returned by getColumnInfo(int).getAuxData() calls.int
getColumnCount()
Returns the number of columns in this table.ColumnInfo
getColumnInfo(int icol)
Returns the object describing the data in a given column.java.lang.String
getName()
Returns the name of this table, if it has one.DescribedValue
getParameterByName(java.lang.String parname)
Returns a parameter (table-wide metadata item) of this table located by its name.java.util.List
getParameters()
Returns a list of table parameters, that is items which pertain to the entire table.java.lang.Object[]
getRow(long irow)
Returns the contents of a given table row.long
getRowCount()
Returns the number of rows in this table, if known.RowSequence
getRowSequence()
Returns an object which can iterate over all the rows in the table sequentially.java.net.URL
getURL()
Initially returns null to indicate that this table itself is not persistent.boolean
isRandom()
Indicates whether random access is provided by this table.void
setName(java.lang.String name)
Sets the name of this table.void
setParameter(DescribedValue dval)
Adds the given DescribedValue to the list of parameter metadata objects associated with this table.void
setURL(java.net.URL url)
Sets the URL of this table.java.lang.String
toString()
Returns an indication of the wrapper structure of this table.
-
-
-
Field Detail
-
baseTable
protected StarTable baseTable
-
-
Constructor Detail
-
WrapperStarTable
public WrapperStarTable(StarTable baseTable)
Constructs a new WrapperStarTable from a given base table.- Parameters:
baseTable
- the table to which methods invoked upon the new wrapper table will be forwarded
-
-
Method Detail
-
getBaseTable
public StarTable getBaseTable()
Returns the base table underlying this wrapper table.- Returns:
- the table to which methods invoked upon this wrappter table are forwarded
-
getColumnCount
public int getColumnCount()
Description copied from interface:StarTable
Returns the number of columns in this table.- Specified by:
getColumnCount
in interfaceStarTable
- Returns:
- the number of columns
-
getRowCount
public long getRowCount()
Description copied from interface:StarTable
Returns the number of rows in this table, if known. If the number of rows cannot be (easily) determined, a value of -1 will be returned.- Specified by:
getRowCount
in interfaceStarTable
- Returns:
- the number of rows, or -1
-
getURL
public java.net.URL getURL()
Initially returns null to indicate that this table itself is not persistent.
-
setURL
public void setURL(java.net.URL url)
Description copied from interface:StarTable
Sets the URL of this table. It ought to be possible in principle to reconstruct this table by reading the resource at url. If called, the supplied url should provide the return value for subsequent calls ofStarTable.getURL()
.
-
getName
public java.lang.String getName()
Description copied from interface:StarTable
Returns the name of this table, if it has one. The meaning of the name is not defined, but it will typically be a short string of text indicating the identity of this table.
-
setName
public void setName(java.lang.String name)
Description copied from interface:StarTable
Sets the name of this table. If called, the supplied name should provide the return value for subsequent calls ofStarTable.getName()
.
-
getParameters
public java.util.List getParameters()
Description copied from interface:StarTable
Returns a list of table parameters, that is items which pertain to the entire table. Each element of this list must be aDescribedValue
object.- Specified by:
getParameters
in interfaceStarTable
- Returns:
- a List of DescribedValue objects constituting table-wide metadata not covered elsewhere in this interface
-
getParameterByName
public DescribedValue getParameterByName(java.lang.String parname)
Description copied from interface:StarTable
Returns a parameter (table-wide metadata item) of this table located by its name. If more than one parameter with the given name exists, an arbitrary one will be returned. If no parameter with the given name exists, null will be returned.- Specified by:
getParameterByName
in interfaceStarTable
- Parameters:
parname
- the name of the table parameter required
-
setParameter
public void setParameter(DescribedValue dval)
Description copied from interface:StarTable
Adds the given DescribedValue to the list of parameter metadata objects associated with this table. If an item in the parameter list with the same name as the supplied value already exists, it is removed from the list.- Specified by:
setParameter
in interfaceStarTable
- Parameters:
dval
- the new parameter datum to add
-
getColumnInfo
public ColumnInfo getColumnInfo(int icol)
Description copied from interface:StarTable
Returns the object describing the data in a given column.- Specified by:
getColumnInfo
in interfaceStarTable
- Parameters:
icol
- the column for which header information is required- Returns:
- a ValueInfo object for column icol
-
getColumnAuxDataInfos
public java.util.List getColumnAuxDataInfos()
Description copied from interface:StarTable
Returns an ordered list ofValueInfo
objects representing the auxiliary metadata returned by getColumnInfo(int).getAuxData() calls. The idea is that the resulting list can be used to find out the kind of per-column metadata which can be expected to be found in some or all columns of this table. Each item in the returned list should have a unique name, and other characteristics which are applicable to auxData items which may be returned from any of the columns in this table.The order of the list may indicate some sort of natural ordering of these keys. The returned list is not guaranteed to be complete; it is legal to return an empty list if nothing is known about auxiliary metadata. The list ought not to contain duplicate elements.
- Specified by:
getColumnAuxDataInfos
in interfaceStarTable
- Returns:
- an unmodifiable ordered set of known metadata keys
- See Also:
ColumnInfo.getAuxData()
-
getRowSequence
public RowSequence getRowSequence() throws java.io.IOException
Description copied from interface:StarTable
Returns an object which can iterate over all the rows in the table sequentially.- Specified by:
getRowSequence
in interfaceStarTable
- Returns:
- an object providing sequential access to the table data
- Throws:
java.io.IOException
- if there is an error providing access
-
isRandom
public boolean isRandom()
Description copied from interface:StarTable
Indicates whether random access is provided by this table. Only if the result is true may theStarTable.getRow(long)
andStarTable.getCell(long, int)
methods be used.
-
getCell
public java.lang.Object getCell(long irow, int icol) throws java.io.IOException
Description copied from interface:StarTable
Returns the contents of a given table cell. The class of the returned object should be the same as, or a subclass of, the class returned by getColumnInfo(icol).getContentClass().
-
getRow
public java.lang.Object[] getRow(long irow) throws java.io.IOException
Description copied from interface:StarTable
Returns the contents of a given table row. The returned value is equivalent to an array formed of all the objects returned by getCell(irow,icol) for all the columns icol in sequence.
-
checkedLongToInt
public static int checkedLongToInt(long lval)
Convenience method to get an int value from a long. InvokesTables.checkedLongToInt(long)
.
-
toString
public java.lang.String toString()
Returns an indication of the wrapper structure of this table.- Overrides:
toString
in classjava.lang.Object
- Returns:
- string representation
-
-