uk.ac.starlink.table

## Class MetadataStarTable

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

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, StarTable

      public class MetadataStarTable
      extends AbstractStarTable

  Utility StarTable implementation which contains only metadata, no data. Suitable for passing to `TableSink.acceptMetadata(uk.ac.starlink.table.StarTable)`.
  Since:
    14 Oct 2011

- - ### Constructor Summary

    Constructors
    Constructor and 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 uk.ac.starlink.table.AbstractStarTable

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

    - ### Methods inherited from class java.lang.Object

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

    - ### Methods inherited from interface uk.ac.starlink.table.StarTable

      `getParameterByName, setParameter`

- - ### Constructor Detail

    - #### 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 Detail

    - #### 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