uk.ac.starlink.fits

## Class VariableFitsTableSerializer

- java.lang.Object
- - uk.ac.starlink.fits.StandardFitsTableSerializer
  - - uk.ac.starlink.fits.VariableFitsTableSerializer

- All Implemented Interfaces:
    FitsTableSerializer

      public class VariableFitsTableSerializer
      extends StandardFitsTableSerializer

  FitsTableSerializer which can write variable array-valued columns using the 'P' or 'Q' TFORM formatting characters.
  Since:
    10 Jul 2008

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `VariableFitsTableSerializer(FitsTableSerializerConfig config, StarTable table, StoragePolicy storagePolicy)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `CardImage[]` | `getHeader()` Returns header cards suitable for the HDU which will contain the table.
    `void` | `set64BitMode(boolean useQ)` Sets whether this serializer should use the 'P' descriptor (32-bit addressing into the heap) or the 'Q' descriptor (64-bit addressing into the heap) for variable-length array columns.
    `void` | `writeData(java.io.DataOutput out)` Writes the HDU data for the table to an output stream.

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

      `getBadValue, getConfig, getDimensions, getFormatChar, getHealpixHeaders, getRowCount, writeDataOnly`

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

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

- - ### Constructor Detail

    - #### VariableFitsTableSerializer

          public VariableFitsTableSerializer(FitsTableSerializerConfig config,
                                             StarTable table,
                                             StoragePolicy storagePolicy)
                                      throws java.io.IOException

      Constructor.
      Parameters:
        `config` - FITS configuration
        `table` - table to write
        `storagePolicy` - policy for acquiring byte array scratch buffers
      Throws:
        `java.io.IOException` - if it won't be possible to write the given table

  - ### Method Detail

    - #### set64BitMode

          public void set64BitMode(boolean useQ)

      Sets whether this serializer should use the 'P' descriptor (32-bit addressing into the heap) or the 'Q' descriptor (64-bit addressing into the heap) for variable-length array columns. Normally Q is only used if the heap is larger than 2^31.
      Parameters:
        `useQ` - true for Q, false for P

    - #### getHeader

          public CardImage[] getHeader()

      Description copied from interface: `FitsTableSerializer`
      Returns header cards suitable for the HDU which will contain the table. Additional metadata and an END marker will be added after these cards, so the returned array must not contain the END card.
      Specified by:
        `getHeader` in interface `FitsTableSerializer`
      Overrides:
        `getHeader` in class `StandardFitsTableSerializer`
      Returns:
        header cards

    - #### writeData

          public void writeData(java.io.DataOutput out)
                         throws java.io.IOException

      Description copied from interface: `FitsTableSerializer`
      Writes the HDU data for the table to an output stream. This is only intended to be called once following creation of this object. Subsequent calls result in undefined behaviour.
      Specified by:
        `writeData` in interface `FitsTableSerializer`
      Overrides:
        `writeData` in class `StandardFitsTableSerializer`
      Parameters:
        `out` - destination stream
      Throws:
        `java.io.IOException`