Class VOTableFitsTableWriter

  • All Implemented Interfaces:
    uk.ac.starlink.table.MultiStarTableWriter, uk.ac.starlink.table.StarTableWriter
    Direct Known Subclasses:
    ColFitsPlusTableWriter, FitsPlusTableWriter

    public abstract class VOTableFitsTableWriter
    extends uk.ac.starlink.fits.AbstractFitsTableWriter
    TableWriter which writes table data into the first extension of a FITS file, Unlike FitsTableWriter however, the primary extension is not left contentless, instead it gets the text of a DATA-less VOTable written into it. This VOTable describes the metadata of the table. Tables stored using this (non-standard) mechanism have all the rich metadata associated with VOTables, and benefit from the compactness of FITS tables, withouth the considerable disadvantage of being split into two files.
    Since:
    26 Aug 2004
    Author:
    Mark Taylor (Starlink)
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected VOTableFitsTableWriter​(java.lang.String formatName)
      Constructor.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract uk.ac.starlink.fits.CardImage[] getCustomPrimaryHeaderCards()
      Returns implementation-specific header cards to be added to the Primary HDU of FITS files written by this writer.
      boolean isMagic​(byte[] buffer)
      Determines whether a given byte buffer looks like it contains the start of a primary header written by this writer.
      protected boolean isMagic​(int icard, java.lang.String key, java.lang.Object value)
      Tests a header card to see if it looks like part of the magic number for the format written by this handler.
      void setAllowSignedByte​(boolean allowSignedByte)  
      void setVotableVersion​(VOTableVersion votVersion)
      Sets the version of the VOTable standard to use for encoding metadata in the primary HDU.
      void writeStarTables​(uk.ac.starlink.table.TableSequence tableSeq, java.io.OutputStream out)  
      • Methods inherited from class uk.ac.starlink.fits.AbstractFitsTableWriter

        createSerializer, getAllowSignedByte, getAllowZeroLengthString, getConfig, getCurrentDate, getFormatName, getMetadataCards, 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.StarTableWriter

        looksLikeFile, writeStarTable
    • Constructor Detail

      • VOTableFitsTableWriter

        protected VOTableFitsTableWriter​(java.lang.String formatName)
        Constructor.
        Parameters:
        formatName - handler format name
    • Method Detail

      • setAllowSignedByte

        public void setAllowSignedByte​(boolean allowSignedByte)
        Overrides:
        setAllowSignedByte in class uk.ac.starlink.fits.AbstractFitsTableWriter
      • writeStarTables

        public void writeStarTables​(uk.ac.starlink.table.TableSequence tableSeq,
                                    java.io.OutputStream out)
                             throws java.io.IOException
        Specified by:
        writeStarTables in interface uk.ac.starlink.table.MultiStarTableWriter
        Overrides:
        writeStarTables in class uk.ac.starlink.fits.AbstractFitsTableWriter
        Throws:
        java.io.IOException
      • setVotableVersion

        public void setVotableVersion​(VOTableVersion votVersion)
        Sets the version of the VOTable standard to use for encoding metadata in the primary HDU.
        Parameters:
        votVersion - VOTable version to use
      • getCustomPrimaryHeaderCards

        protected abstract uk.ac.starlink.fits.CardImage[] getCustomPrimaryHeaderCards()
        Returns implementation-specific header cards to be added to the Primary HDU of FITS files written by this writer.
        Returns:
        header cards
      • isMagic

        public boolean isMagic​(byte[] buffer)
        Determines whether a given byte buffer looks like it contains the start of a primary header written by this writer. Calls the protected isMagic(int,java.lang.String,java.lang.Object) method.
        Parameters:
        buffer - start of a file
        Returns:
        true iff buffer looks like it contains a file written by this handler
      • isMagic

        protected boolean isMagic​(int icard,
                                  java.lang.String key,
                                  java.lang.Object value)
        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 provided by getCustomPrimaryHeaderCards()).
        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