# Class MetadataStarTable

java.lang.Object
uk.ac.starlink.table.AbstractStarTable
uk.ac.starlink.table.MetadataStarTable

All Implemented Interfaces:
  `Closeable, AutoCloseable, StarTable`

public class MetadataStarTable extends AbstractStarTable
Utility StarTable implementation which contains only metadata, no data. Suitable for passing to `TableSink.acceptMetadata(StarTable)`.

Since:
  14 Oct 2011
Author:
  Mark Taylor

## Constructor Summary

Constructors
Constructor
Description
`MetadataStarTable(ColumnInfo[] colInfos)`
Constructs a metadata table with given column metadata and an indeterminate number of rows.
`MetadataStarTable(ColumnInfo[] colInfos, long rowCount)`
Constructs a metadata table with given column metadata and a given number of rows.

## Method Summary

Modifier and Type
Method
Description
`int`
`getColumnCount()`
Returns the number of columns in this table.
`ColumnInfo`
`getColumnInfo(int icol)`
Returns the object describing the data in a given column.
`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.
`RowSplittable`
`getRowSplittable()`
Returns a default splittable which relies on table random access if available, or otherwise provides only sequential access (no splits).

### Methods inherited from class AbstractStarTable

`checkedLongToInt, close, getCell, getColumnAuxDataInfos, getName, getParameters, getRow, getURL, isRandom, setName, setParameters, setURL`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface StarTable

`getParameterByName, setParameter`

## Constructor Details

### MetadataStarTable

public MetadataStarTable(ColumnInfo[] colInfos)
Constructs a metadata table with given column metadata and an indeterminate number of rows.

Parameters:
  `colInfos` - metadata items for each column

### MetadataStarTable

public MetadataStarTable(ColumnInfo[] colInfos, long rowCount)
Constructs a metadata table with given column metadata and a given number of rows.

Parameters:
  `colInfos` - metadata items for each column
  `rowCount` - row count, may be -1 to indicate unknown

## Method Details

### 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 interface `StarTable`
Specified by:
  `getColumnInfo` in class `AbstractStarTable`
Parameters:
  `icol` - the column for which header information is required
Returns:
  a ValueInfo object for column `icol`

### getColumnCount

public int getColumnCount()
Description copied from interface: `StarTable`
Returns the number of columns in this table.

Specified by:
  `getColumnCount` in interface `StarTable`
Specified by:
  `getColumnCount` in class `AbstractStarTable`
Returns:
  the number of columns

### getRowSequence

public RowSequence getRowSequence()
Description copied from interface: `StarTable`
Returns 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:
  `getRowSequence` in interface `StarTable`
Specified by:
  `getRowSequence` in class `AbstractStarTable`
Returns:
  new RowSequence

### getRowAccess

public RowAccess getRowAccess()
Description copied from interface: `StarTable`
Returns 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:
  `getRowAccess` in interface `StarTable`
Overrides:
  `getRowAccess` in class `AbstractStarTable`
Returns:
  new RowAccess

### getRowSplittable

public RowSplittable getRowSplittable()
Description copied from class: `AbstractStarTable`
Returns a default splittable which relies on table random access if available, or otherwise provides only sequential access (no splits).

It is often possible to provide a better implementation than this.

Specified by:
  `getRowSplittable` in interface `StarTable`
Overrides:
  `getRowSplittable` in class `AbstractStarTable`
Returns:
  `Tables.getDefaultRowSplittable(this)`
See Also:
  - `RowRunner`

### 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 interface `StarTable`
Specified by:
  `getRowCount` in class `AbstractStarTable`
Returns:
  the number of rows, or -1