Package uk.ac.starlink.votable
Class VOTableFitsTableWriter
- java.lang.Object
-
- uk.ac.starlink.table.StreamStarTableWriter
-
- uk.ac.starlink.fits.AbstractFitsTableWriter
-
- uk.ac.starlink.votable.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, UnlikeFitsTableWriter
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
-
-
-
-
Method Detail
-
setAllowSignedByte
public void setAllowSignedByte(boolean allowSignedByte)
- Overrides:
setAllowSignedByte
in classuk.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 interfaceuk.ac.starlink.table.MultiStarTableWriter
- Overrides:
writeStarTables
in classuk.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 protectedisMagic(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. TheVOTableFitsTableWriter
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 bygetCustomPrimaryHeaderCards()
).- Parameters:
icard
- 0-based card indexkey
- card namevalue
- card value- Returns:
- true iff the presented card is one that could have been written by this writer
-
-