public class VOStarTable extends AbstractStarTable
StarTable
implementation based on a VOTable.
Some of the FIELD attributes defined by the VOTable format correspond to standard information in the corresponding ColumnInfo object, and some do not. Those that do are accessed using the relevant ColumnInfo getter/setter methods directly, for instance
String ucd = table.getColumnInfo(0).getUCD();The ones that don't are stored in the ColumnInfo's auxiliary metadata keyed using the various *_INFO public static variables defined in this class. These are accessed using the
ColumnInfo.getAuxDatum(uk.ac.starlink.table.ValueInfo)
method, for instance:
String id = (String) table.getColumnInfo(0) .getAuxDatumValue(VOStarTable.ID_INFO);In the same way, if you set an auxiliary metadata item under one of these keys, like this:
DescribedValue idVal = new DescribedValue(VOStarTable.ID_INFO, "COL0"); table.getColumnInfo(0).setAuxDatum(idVal);then if the result is written to a VOTable the relevant attribute will be attached to the corresponding FIELD element.
Modifier and Type | Field and Description |
---|---|
static ValueInfo |
COOSYS_EPOCH_INFO
ValueInfo for COOSYS epoch attribute.
|
static ValueInfo |
COOSYS_EQUINOX_INFO
ValueInfo for COOSYS equinox attribute.
|
static ValueInfo |
COOSYS_SYSTEM_INFO
ValueInfo for COOSYS system attribute.
|
static ValueInfo |
DATATYPE_INFO
ValueInfo for VOTable datatype attribute.
|
static ValueInfo |
ID_INFO
ValueInfo for VOTable ID attribute.
|
static ValueInfo |
PRECISION_INFO
ValueInfo for VOTable precision attribute.
|
static ValueInfo |
REF_INFO
ValueInfo for VOTable ref attribute.
|
static ValueInfo |
TIMESYS_REFPOSITION_INFO
ValueInfo for TIMESYS refposition attribute.
|
static ValueInfo |
TIMESYS_TIMEORIGIN_INFO
ValueInfo for TIMESYS timeorigin attribute.
|
static ValueInfo |
TIMESYS_TIMESCALE_INFO
ValueInfo for TIMESYS timescale attribute.
|
static ValueInfo |
TYPE_INFO
ValueInfo for VOTable type attribute.
|
static ValueInfo |
UCD_INFO
ValueInfo for VOTable ucd attribute.
|
static ValueInfo |
UTYPE_INFO
ValueInfo for VOTable utype attribute.
|
static ValueInfo |
WIDTH_INFO
ValueInfo for VOTable width attribute.
|
Constructor and Description |
---|
VOStarTable(TableElement votable)
Construct a VOStarTable from a TABLE element.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
The AbstractStarTable implementation of this method
does nothing.
|
java.lang.Object |
getCell(long lrow,
int icol)
The AbstractStarTable implementation of this method throws an
UnsupportedOperationException, since unless otherwise
provided there is no random access.
|
java.util.List<ValueInfo> |
getColumnAuxDataInfos()
Goes through the table columns (ColumnInfo objects)
and picks out all the AuxData items which exist, generalising
where necessary and returning a union of them in
alphabetical order by name.
|
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.util.List<DescribedValue> |
getParameters()
Returns a list of table parameters, that is metadata items
which pertain to the entire table.
|
static int |
getRefColumnIndex(java.lang.String colRef,
StarTable table)
Identifies the column that was labelled with a given ID attribute.
|
java.lang.Object[] |
getRow(long lrow)
The AbstractStarTable implementation of this method
constructs a row by repeated invocation of
AbstractStarTable.getCell(long, int) . |
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.
|
RowSequence |
getRowSequence()
Returns an object which can iterate over all the rows in the table
sequentially.
|
static ValueInfo |
getValueInfo(FieldElement field)
Returns a ValueInfo object suitable for holding the values in a
VOTable Field (or Param) object.
|
boolean |
isRandom()
The AbstractStarTable implementation of this method
returns false.
|
checkedLongToInt, getName, getRowSplittable, getURL, setName, setParameters, setURL
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParameterByName, setParameter
public static final ValueInfo ID_INFO
public static final ValueInfo UCD_INFO
public static final ValueInfo UTYPE_INFO
public static final ValueInfo WIDTH_INFO
public static final ValueInfo PRECISION_INFO
public static final ValueInfo REF_INFO
public static final ValueInfo TYPE_INFO
public static final ValueInfo DATATYPE_INFO
public static final ValueInfo COOSYS_SYSTEM_INFO
public static final ValueInfo COOSYS_EPOCH_INFO
public static final ValueInfo COOSYS_EQUINOX_INFO
public static final ValueInfo TIMESYS_TIMEORIGIN_INFO
public static final ValueInfo TIMESYS_TIMESCALE_INFO
public static final ValueInfo TIMESYS_REFPOSITION_INFO
public VOStarTable(TableElement votable) throws java.io.IOException
votable
- Table VOElementjava.io.IOException
public int getColumnCount()
StarTable
getColumnCount
in interface StarTable
getColumnCount
in class AbstractStarTable
public long getRowCount()
StarTable
getRowCount
in interface StarTable
getRowCount
in class AbstractStarTable
public boolean isRandom()
AbstractStarTable
isRandom
in interface StarTable
isRandom
in class AbstractStarTable
public ColumnInfo getColumnInfo(int icol)
StarTable
getColumnInfo
in interface StarTable
getColumnInfo
in class AbstractStarTable
icol
- the column for which header information is requiredpublic java.util.List<DescribedValue> getParameters()
StarTable
getParameters
in interface StarTable
getParameters
in class AbstractStarTable
public java.util.List<ValueInfo> getColumnAuxDataInfos()
AbstractStarTable
getColumnAuxDataInfos
in interface StarTable
getColumnAuxDataInfos
in class AbstractStarTable
DefaultValueInfo.getAuxData()
public RowSequence getRowSequence() throws java.io.IOException
StarTable
getRowSequence
in interface StarTable
getRowSequence
in class AbstractStarTable
java.io.IOException
- if there is an error providing accesspublic RowAccess getRowAccess() throws java.io.IOException
StarTable
getRowAccess
in interface StarTable
getRowAccess
in class AbstractStarTable
java.io.IOException
- if there is an error setting up accesspublic java.lang.Object[] getRow(long lrow) throws java.io.IOException
AbstractStarTable
AbstractStarTable.getCell(long, int)
.getRow
in interface StarTable
getRow
in class AbstractStarTable
lrow
- the index of the row to retrievejava.io.IOException
- if there is an error reading the datapublic java.lang.Object getCell(long lrow, int icol) throws java.io.IOException
AbstractStarTable
getCell
in interface StarTable
getCell
in class AbstractStarTable
lrow
- the index of the cell's rowicol
- the index of the cell's columnjava.io.IOException
- if there is an error reading the datapublic void close() throws java.io.IOException
AbstractStarTable
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in interface StarTable
close
in class AbstractStarTable
java.io.IOException
public static ValueInfo getValueInfo(FieldElement field)
field
- the FieldElement object for which the ValueInfo is to be
constructedpublic static int getRefColumnIndex(java.lang.String colRef, StarTable table)
colRef
- ID stringtable
- table to interrogate; this will presumably be based
on a VOStarTable, but it may be some kind of
wrapped form of onetable
whose FIELD
element had an ID attribute of colRef
,
or -1 if none exists