Package uk.ac.starlink.votable

## Class ColFitsPlusTableWriter

- java.lang.Object
- - uk.ac.starlink.table.StreamStarTableWriter
  - - uk.ac.starlink.fits.AbstractFitsTableWriter
    - - uk.ac.starlink.votable.VOTableFitsTableWriter
      - - uk.ac.starlink.votable.ColFitsPlusTableWriter

All Implemented Interfaces:
  `uk.ac.starlink.table.Documented`, `uk.ac.starlink.table.formats.DocumentedIOHandler`, `uk.ac.starlink.table.MultiStarTableWriter`, `uk.ac.starlink.table.StarTableWriter`

    public class ColFitsPlusTableWriter
    extends VOTableFitsTableWriter
    implements uk.ac.starlink.table.formats.DocumentedIOHandler

Handles writing of a `StarTable` in a column-oriented FITS binary table format. The table data is stored in a BINTABLE extension which has a single row; each cell in this row contains the data for an entire column of the represented table. The primary HDU is a byte array containing a VOTable representation of the table metadata, as for `FitsPlusTableWriter`.

This rather specialised format may provide good performance for certain operations on very large, especially very wide, tables. Although it is FITS and can therefore be used in principle for data interchange, in practice most non-STIL processors are unlikely to be able to do much useful with it.

Since:
  21 Jun 2006
Author:
  Mark Taylor

### Constructor Summary

Constructors
`ColFitsPlusTableWriter()` Default constructor.
`ColFitsPlusTableWriter​(java.lang.String name, uk.ac.starlink.fits.WideFits wide)` Deprecated. allows some configuration options but not others; use no-arg constructor and configuration methods instead

### Method Summary

All Methods Instance Methods Concrete Methods
`protected uk.ac.starlink.fits.FitsTableSerializer` `createSerializer​(uk.ac.starlink.table.StarTable table)`
`protected void` `customisePrimaryHeader​(nom.tam.fits.Header hdr)` Hook for adding custom entries to the FITS header which is written to the primary HDU.
`boolean` `docIncludesExample()`
`java.lang.String[]` `getExtensions()`
`java.lang.String` `getXmlDescription()`
`protected boolean` `isMagic​(int icard, java.lang.String key, java.lang.String value)` Tests a header card to see if it looks like part of the magic number for the format written by this handler.
`boolean` `looksLikeFile​(java.lang.String location)`

### Methods inherited from class uk.ac.starlink.votable.VOTableFitsTableWriter

`isMagic, setAllowSignedByte, setVotableVersion, writeStarTables`

### Methods inherited from class uk.ac.starlink.fits.AbstractFitsTableWriter

`addMetadata, getAllowSignedByte, getAllowZeroLengthString, getConfig, getCurrentDate, getFormatName, getMimeType, getPadCharacter, getWide, getWriteDate, setAllowZeroLengthString, setFormatName, setPadCharacter, setWide, setWriteDate, writePrimaryHDU, writeStarTable, writeStarTables, writeTableHDU`

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

`writeStarTable, writeStarTable`

### 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.formats.DocumentedIOHandler

`readText`

### Methods inherited from interface uk.ac.starlink.table.StarTableWriter

`writeStarTable`

### Constructor Detail

#### ColFitsPlusTableWriter

    public ColFitsPlusTableWriter()

Default constructor.

#### ColFitsPlusTableWriter

    @Deprecated
    public ColFitsPlusTableWriter​(java.lang.String name,
                                  uk.ac.starlink.fits.WideFits wide)

Deprecated.
allows some configuration options but not others; use no-arg constructor and configuration methods instead
Deprecated custom constructor.

### Method Detail

#### getExtensions

    public java.lang.String[] getExtensions()

Specified by:
  `getExtensions` in interface `uk.ac.starlink.table.formats.DocumentedIOHandler`

#### looksLikeFile

    public boolean looksLikeFile​(java.lang.String location)

Specified by:
  `looksLikeFile` in interface `uk.ac.starlink.table.StarTableWriter`

#### docIncludesExample

    public boolean docIncludesExample()

Specified by:
  `docIncludesExample` in interface `uk.ac.starlink.table.formats.DocumentedIOHandler`

#### getXmlDescription

    public java.lang.String getXmlDescription()

Specified by:
  `getXmlDescription` in interface `uk.ac.starlink.table.Documented`

#### customisePrimaryHeader

    protected void customisePrimaryHeader​(nom.tam.fits.Header hdr)
                                   throws nom.tam.fits.HeaderCardException

Description copied from class: `VOTableFitsTableWriter`
Hook for adding custom entries to the FITS header which is written to the primary HDU. This is called just after the required cards (SIMPLE, BITPIX, NAXIS, NAXIS1 ) are added and just before the EXTEND card.

Specified by:
  `customisePrimaryHeader` in class `VOTableFitsTableWriter`
Parameters:
  `hdr` - header
Throws:
  `nom.tam.fits.HeaderCardException`

#### isMagic

    protected boolean isMagic​(int icard,
                              java.lang.String key,
                              java.lang.String value)

Description copied from class: `VOTableFitsTableWriter`
Tests a header card to see if it looks like part of the magic number for the format written by this handler. The `VOTableFitsTableWriter` implementation tests that the first four cards read:

        SIMPLE = T
        BITPIX = 8
        NAXIS  = 1
        NAXIS1 = ???

Subclasses may override this to add tests for later cards (as written in `VOTableFitsTableWriter.customisePrimaryHeader(nom.tam.fits.Header)`).

Overrides:
  `isMagic` in class `VOTableFitsTableWriter`
Parameters:
  `icard` - 0-based card index
  `key` - card name
  `value` - card value
Returns:
  true iff the presented card is one that could have been written by this writer

#### createSerializer

    protected uk.ac.starlink.fits.FitsTableSerializer createSerializer​(uk.ac.starlink.table.StarTable table)
                                                                throws java.io.IOException

Specified by:
  `createSerializer` in class `uk.ac.starlink.fits.AbstractFitsTableWriter`
Throws:
  `java.io.IOException`