uk.ac.starlink.fits

## Class FitsTableWriter

- java.lang.Object
- - uk.ac.starlink.table.StreamStarTableWriter
  - - uk.ac.starlink.fits.AbstractFitsTableWriter
    - - uk.ac.starlink.fits.FitsTableWriter

- All Implemented Interfaces:
    uk.ac.starlink.table.MultiStarTableWriter, uk.ac.starlink.table.StarTableWriter

      public class FitsTableWriter
      extends AbstractFitsTableWriter

  Handles writing of a StarTable in FITS binary format. Not all columns can be written to a FITS table, only those ones whose `contentClass` is in the following list:
  - Boolean
  - Character
  - Byte
  - Short
  - Integer
  - Long
  - Float
  - Double
  - Character
  - String
  - boolean[]
  - char[]
  - byte[]
  - short[]
  - int[]
  - long[]
  - float[]
  - double[]
  - String[]
  In all other cases a warning message will be logged and the column will be ignored for writing purposes.

  Output is currently to fixed-width columns only. For StarTable columns of variable size, a first pass is made through the table data to determine the largest size they assume, and the size in the output table is set to the largest of these. Excess space is padded with some sort of blank value (NaN for floating point values, spaces for strings, zero-like values otherwise).

  Author:
    Mark Taylor (Starlink)

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FitsTableWriter()` Default constructor.
    `FitsTableWriter(java.lang.String name, boolean allowSignedByte, WideFits wide)` Custom constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected FitsTableSerializer` | `createSerializer(uk.ac.starlink.table.StarTable table)` Provides a suitable serializer for a given table.
    `boolean` | `looksLikeFile(java.lang.String location)` Returns true if `location` ends with something like ".fit" or ".fits" or ".fts".

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

      `addMetadata, getCurrentDate, getFormatName, getMimeType, setFormatName, writePrimaryHDU, writeStarTable, writeStarTables, writeStarTables, writeTableHDU`

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

      `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.StarTableWriter

      `writeStarTable`

- - ### Constructor Detail

    - #### FitsTableWriter

          public FitsTableWriter()

      Default constructor.

    - #### FitsTableWriter

          public FitsTableWriter(java.lang.String name,
                                 boolean allowSignedByte,
                                 WideFits wide)

      Custom constructor.
      Parameters:
        `name` - writer name
        `allowSignedByte` - if true, bytes written as FITS signed bytes (TZERO=-128), if false bytes written as signed shorts
        `wide` - convention for representing over-wide tables; null to avoid this convention

  - ### Method Detail

    - #### looksLikeFile

          public boolean looksLikeFile(java.lang.String location)

      Returns true if `location` ends with something like ".fit" or ".fits" or ".fts".
      Parameters:
        `location` - filename
      Returns:
        true if it sounds like a fits file

    - #### createSerializer

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

      Description copied from class: `AbstractFitsTableWriter`
      Provides a suitable serializer for a given table. Note this should throw an IOException if it can be determined that the submitted table cannot be written by this writer, for instance if it has too many columns.
      Specified by:
        `createSerializer` in class `AbstractFitsTableWriter`
      Parameters:
        `table` - table to serialize
      Returns:
        FITS serializer
      Throws:
        `java.io.IOException` - if the table can't be written

Copyright © 2017 Central Laboratory of the Research Councils. All Rights Reserved.