uk.ac.starlink.votable
Class VOTableWriter

java.lang.Object
  |
  +--uk.ac.starlink.votable.VOTableWriter
All Implemented Interfaces:
StarTableWriter

public class VOTableWriter
extends Object
implements StarTableWriter

Implementation of the StarTableWriter interface for VOTables. The dataFormat and inline attributes can be modified to affect how the bulk cell data are output - this may be in TABLEDATA, FITS or BINARY format, and in the latter two cases may be either inline as base64 encoded CDATA or to a separate stream.


Field Summary
static String DEFAULT_DOCTYPE_DECLARATION
          Default document type declaration in written documents.
static String DEFAULT_XML_DECLARATION
          Default XML declaration in written documents.
 
Constructor Summary
VOTableWriter()
          Constructs a default VOTableWriter.
VOTableWriter(DataFormat dataFormat, boolean inline)
          Constructs a VOTableWriter with specified output characteristics.
 
Method Summary
 DataFormat getDataFormat()
          Returns the format in which this writer will output the bulk table data.
 String getDoctypeDeclaration()
          Returns the document type declaration which is used by this writer at the head of any document written.
 String getFormatName()
          Gives the name of the format which is written by this writer.
 boolean getInline()
          Indicates whether STREAM elements will be written inline or to an external file in the case of FITS and BINARY encoding.
static StarTableWriter[] getStarTableWriters()
          Returns a list of votable writers with variant values of attributes.
 String getXMLDeclaration()
          Returns the XML declaration which is used by this writer at the head of any document written.
 boolean looksLikeFile(String filename)
          Returns true for filenames with the extension ".xml", ".vot" or ".votable";
 void setDataFormat(DataFormat format)
          Sets the format in which the table data will be output.
 void setDoctypeDeclaration(String doctypeDecl)
          Sets the document type declaration which will be used by this writer at the head of any document written.
 void setInline(boolean inline)
          Sets whether STREAM elements should be written inline or to an external file in the case of FITS and BINARY encoding.
 void setXMLDeclaration(String xmlDecl)
          Sets the XML declaration which will be used by this writer at the head of any document written.
 void writeStarTable(StarTable startab, OutputStream out)
          Writes a StarTable to a given stream; must be inline.
 void writeStarTable(StarTable startab, OutputStream out, File file)
          Writes a StarTable to a given stream.
 void writeStarTable(StarTable startab, String location)
          Writes a StarTable to a given location.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_XML_DECLARATION

public static final String DEFAULT_XML_DECLARATION
Default XML declaration in written documents.

See Also:
Constant Field Values

DEFAULT_DOCTYPE_DECLARATION

public static final String DEFAULT_DOCTYPE_DECLARATION
Default document type declaration in written documents.

See Also:
Constant Field Values
Constructor Detail

VOTableWriter

public VOTableWriter()
Constructs a default VOTableWriter. Output is in TABLEDATA format.


VOTableWriter

public VOTableWriter(DataFormat dataFormat,
                     boolean inline)
Constructs a VOTableWriter with specified output characteristics.

Parameters:
dataFormat - the format in which tables will be written
inline - whether output of streamed formats should be inline and base64-encoded or not
Method Detail

writeStarTable

public void writeStarTable(StarTable startab,
                           String location)
                    throws IOException
Writes a StarTable to a given location. The location is interpreted as a filename, unless it is the string "-", in which case it is taken to mean System.out.

Currently, an entire XML VOTable document is written, and the TABLEDATA format (all table cells written inline as separate XML elements) is used.

Specified by:
writeStarTable in interface StarTableWriter
Parameters:
startab - the table to write
location - the filename to which to write the table
IOException

writeStarTable

public void writeStarTable(StarTable startab,
                           OutputStream out)
                    throws IOException
Writes a StarTable to a given stream; must be inline. Same as writeStarTable(startab,out,null)

Parameters:
startab - the table to write
out - the stream down which to write the table
IOException

writeStarTable

public void writeStarTable(StarTable startab,
                           OutputStream out,
                           File file)
                    throws IOException
Writes a StarTable to a given stream.

Parameters:
startab - the table to write
out - the stream down which to write the table
file - the filename to which out refers; this is used if necessary to come up with a suitable filename for related files which need to be written. May be null.
IOException

looksLikeFile

public boolean looksLikeFile(String filename)
Returns true for filenames with the extension ".xml", ".vot" or ".votable";

Specified by:
looksLikeFile in interface StarTableWriter
Parameters:
filename - the location name (probably filename)
Returns:
true if filename looks like the home of a VOTable

getFormatName

public String getFormatName()
Description copied from interface: StarTableWriter
Gives the name of the format which is written by this writer. Matching against this string may be used by callers to identify or select this writer from a list.

Specified by:
getFormatName in interface StarTableWriter

setDataFormat

public void setDataFormat(DataFormat format)
Sets the format in which the table data will be output.


getDataFormat

public DataFormat getDataFormat()
Returns the format in which this writer will output the bulk table data.

Returns:
bulk data format

setInline

public void setInline(boolean inline)
Sets whether STREAM elements should be written inline or to an external file in the case of FITS and BINARY encoding.

Parameters:
inline - true iff streamed data will be encoded inline in the STREAM element

getInline

public boolean getInline()
Indicates whether STREAM elements will be written inline or to an external file in the case of FITS and BINARY encoding.

Returns:
true iff streamed data will be encoded inline in the STREAM element

setXMLDeclaration

public void setXMLDeclaration(String xmlDecl)
Sets the XML declaration which will be used by this writer at the head of any document written. By default this is the value of DEFAULT_XML_DECLARATION.


getXMLDeclaration

public String getXMLDeclaration()
Returns the XML declaration which is used by this writer at the head of any document written.


setDoctypeDeclaration

public void setDoctypeDeclaration(String doctypeDecl)
Sets the document type declaration which will be used by this writer at the head of any document written. By default this is the value of DEFAULT_DOCTYPE_DECLARATION.

Parameters:
doctypeDecl - new declaration

getDoctypeDeclaration

public String getDoctypeDeclaration()
Returns the document type declaration which is used by this writer at the head of any document written.

Returns:
doctypeDecl

getStarTableWriters

public static StarTableWriter[] getStarTableWriters()
Returns a list of votable writers with variant values of attributes.

Returns:
non-standard VOTableWriters.

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.