Package uk.ac.starlink.oldfits

# Class FitsStarTable

java.lang.Object
uk.ac.starlink.table.AbstractStarTable
uk.ac.starlink.table.RandomStarTable
uk.ac.starlink.oldfits.FitsStarTable

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `uk.ac.starlink.table.StarTable`

public class FitsStarTable extends uk.ac.starlink.table.RandomStarTable
An implementation of the StarTable interface which uses FITS TABLE or BINTABLE extensions.

This implementation uses the table handling in the `nom.tam.fits` package. I think that performance could be considerably improved by rewriting the table access from scratch. The reason for this is largely that the nom.tam.fits classes do a lot of wrapping of values in (perhaps multi-dimensional) arrays, which is not for our purposes necessary. Such a re-implementation would take a bit of effort unfortunately.

This class should only be used for TABLE extension (that is ASCII table) HDUs. The `BintableStarTable` class is much more efficient for BINTTABLE extensions (binary table) HDUs.

Author:
  Mark Taylor (Starlink)

## Constructor Summary

Constructors
Constructor
Description
`FitsStarTable(nom.tam.fits.TableHDU thdu)`
Constructs a FitsStarTable object from a FITS TableHDU object.

## Method Summary

Modifier and Type
Method
Description
`Object`
`getCell(long lrow, int icol)`
`List<uk.ac.starlink.table.ValueInfo>`
`getColumnAuxDataInfos()`
`int`
`getColumnCount()`
`uk.ac.starlink.table.ColumnInfo`
`getColumnInfo(int icol)`
`Object[]`
`getRow(long lrow)`
`long`
`getRowCount()`

### Methods inherited from class uk.ac.starlink.table.RandomStarTable

`getRowAccess, getRowSequence, isRandom`

### Methods inherited from class uk.ac.starlink.table.AbstractStarTable

`checkedLongToInt, close, getName, getParameters, getRowSplittable, getURL, 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 Details

### FitsStarTable

public FitsStarTable(nom.tam.fits.TableHDU thdu) throws IOException
Constructs a FitsStarTable object from a FITS TableHDU object.

Parameters:
  `thdu` - a TableHDU object containing data
Throws:
  `IOException`

## Method Details

### getRowCount

public long getRowCount()

Specified by:
  `getRowCount` in interface `uk.ac.starlink.table.StarTable`
Specified by:
  `getRowCount` in class `uk.ac.starlink.table.RandomStarTable`

### getColumnCount

public int getColumnCount()

Specified by:
  `getColumnCount` in interface `uk.ac.starlink.table.StarTable`
Specified by:
  `getColumnCount` in class `uk.ac.starlink.table.AbstractStarTable`

### getColumnInfo

public uk.ac.starlink.table.ColumnInfo getColumnInfo(int icol)

Specified by:
  `getColumnInfo` in interface `uk.ac.starlink.table.StarTable`
Specified by:
  `getColumnInfo` in class `uk.ac.starlink.table.AbstractStarTable`

### getColumnAuxDataInfos

public List<uk.ac.starlink.table.ValueInfo> getColumnAuxDataInfos()

Specified by:
  `getColumnAuxDataInfos` in interface `uk.ac.starlink.table.StarTable`
Overrides:
  `getColumnAuxDataInfos` in class `uk.ac.starlink.table.AbstractStarTable`

### getCell

public Object getCell(long lrow, int icol) throws IOException

Specified by:
  `getCell` in interface `uk.ac.starlink.table.StarTable`
Specified by:
  `getCell` in class `uk.ac.starlink.table.RandomStarTable`
Throws:
  `IOException`

### getRow

public Object[] getRow(long lrow) throws IOException

Specified by:
  `getRow` in interface `uk.ac.starlink.table.StarTable`
Overrides:
  `getRow` in class `uk.ac.starlink.table.AbstractStarTable`
Throws:
  `IOException`