public abstract class VOSerializer
extends java.lang.Object
VOTableWriter
class may be more convenient, but
this class can be used in a more flexible way, by writing only
the elements which are required.
Obtain an instance of this class using the makeSerializer(uk.ac.starlink.votable.DataFormat, uk.ac.starlink.table.StarTable)
method.
Modifier and Type | Method and Description |
---|---|
static char |
ensureLegalXml(char c)
Returns a legal XML character corresponding to an input character.
|
static java.lang.String |
formatAttribute(java.lang.String name,
java.lang.String value)
Turns a name,value pair into an attribute assignment suitable for
putting in an XML start tag.
|
static java.lang.String |
formatText(java.lang.String text)
Performs necessary special character escaping for text which
will be written as XML CDATA.
|
DataFormat |
getFormat()
Returns the data format which this object can serialize to.
|
long |
getRowCount()
Returns the number of rows that this serializer will write, if known.
|
RowSequence |
getRowSequence()
Returns the row sequence that this serializer will write.
|
StarTable |
getTable()
Returns the table object which this object can serialize.
|
VOTableVersion |
getVersion()
Returns the version of the VOTable standard for which this
serializer will write.
|
boolean |
isCompact()
Indicates compactness of whitespace formatting for TABLEDATA format;
no effect for other DataFormats.
|
static VOSerializer |
makeFitsSerializer(StarTable table,
FitsTableSerializer fitser,
VOTableVersion version)
Constructs a FITS-type VOSerializer.
|
static VOSerializer |
makeSerializer(DataFormat dataFormat,
StarTable table)
Returns a serializer capable of serializing a given table to
given data format, using the default VOTable output version.
|
static VOSerializer |
makeSerializer(DataFormat dataFormat,
VOTableVersion version,
StarTable table)
Returns a serializer capable of serializing
a given table to a given data format using a given VOTable version.
|
void |
setCompact(boolean isCompact)
Controls whitespace formatting for TABLEDATA format;
no effect for other DataFormats.
|
void |
writeDescription(java.io.BufferedWriter writer)
Writes any DESCRIPTION element associated with this serializer's table.
|
abstract void |
writeFields(java.io.BufferedWriter writer)
Writes the FIELD headers corresponding to this table on a given writer.
|
abstract void |
writeHrefDataElement(java.io.BufferedWriter xmlwriter,
java.lang.String href,
java.io.OutputStream streamout)
Writes this serializer's table data to a <DATA> element
containing a <STREAM> element which references an external
data source (optional method).
|
void |
writeHrefTableElement(java.io.BufferedWriter xmlwriter,
java.lang.String href,
java.io.OutputStream streamout) |
abstract void |
writeInlineDataElement(java.io.BufferedWriter writer)
Writes this serializer's table data as a self-contained
<DATA> element.
|
abstract void |
writeInlineDataElementUTF8(java.io.OutputStream out)
Writes this serializer's table data as a self-contained
<DATA> element to an output stream using UTF8 encoding.
|
void |
writeInlineTableElement(java.io.BufferedWriter writer)
Writes this serializer's table as a complete TABLE element.
|
void |
writeInlineTableElementUTF8(java.io.OutputStream out)
Writes this serializer's table as a complete TABLE element
to an output stream using UTF8 encoding.
|
void |
writeParams(java.io.BufferedWriter writer)
Writes any PARAM and INFO elements associated with this serializer's
table.
|
void |
writePostDataXML(java.io.BufferedWriter writer)
Outputs any content of the TABLE element following the DATA element
and the TABLE end tag.
|
void |
writePreDataXML(java.io.BufferedWriter writer)
Outputs the TABLE element start tag and all of its content before
the DATA element.
|
void |
writeServiceDescriptors(java.io.BufferedWriter writer)
Writes the service descriptor parameters of this serializer's table
as a sequence of zero or more RESOURCE elements.
|
public DataFormat getFormat()
public StarTable getTable()
public VOTableVersion getVersion()
public void setCompact(boolean isCompact)
isCompact
- if true, add whitespace round TR/TD elementspublic boolean isCompact()
public abstract void writeFields(java.io.BufferedWriter writer) throws java.io.IOException
writer
- destination streamjava.io.IOException
public abstract void writeInlineDataElement(java.io.BufferedWriter writer) throws java.io.IOException
writer
- destination streamjava.io.IOException
public abstract void writeInlineDataElementUTF8(java.io.OutputStream out) throws java.io.IOException
writeInlineDataElement(java.io.BufferedWriter)
method.out
- output streamjava.io.IOException
public abstract void writeHrefDataElement(java.io.BufferedWriter xmlwriter, java.lang.String href, java.io.OutputStream streamout) throws java.io.IOException
UnsupportedOperationException
will be thrown.xmlwriter
- destination stream for the XML outputhref
- URL for the external stream
(output as the href
attribute of the written <STREAM> element)streamout
- destination stream for the binary table datajava.io.IOException
public void writeInlineTableElement(java.io.BufferedWriter writer) throws java.io.IOException
writer
- destination streamjava.io.IOException
public void writeInlineTableElementUTF8(java.io.OutputStream out) throws java.io.IOException
This may be substantially faster than the otherwise equivalent
writeInlineTableElement(java.io.BufferedWriter)
method.
out
- output streamjava.io.IOException
public void writeHrefTableElement(java.io.BufferedWriter xmlwriter, java.lang.String href, java.io.OutputStream streamout) throws java.io.IOException
java.io.IOException
public void writeParams(java.io.BufferedWriter writer) throws java.io.IOException
writer
- destination streamjava.io.IOException
public void writeDescription(java.io.BufferedWriter writer) throws java.io.IOException
writer
- destination streamjava.io.IOException
public void writeServiceDescriptors(java.io.BufferedWriter writer) throws java.io.IOException
writer
- destination streamjava.io.IOException
public void writePreDataXML(java.io.BufferedWriter writer) throws java.io.IOException
writer
- output streamjava.io.IOException
public void writePostDataXML(java.io.BufferedWriter writer) throws java.io.IOException
writer
- output streamjava.io.IOException
public long getRowCount()
getTable().getRowCount()
,
but this may be overridden if that value is known to be unreliable.public RowSequence getRowSequence() throws java.io.IOException
java.io.IOException
public static java.lang.String formatAttribute(java.lang.String name, java.lang.String value)
name
- the attribute namevalue
- the attribute valuepublic static java.lang.String formatText(java.lang.String text)
text
- the input texttext
but with XML special characters escapedpublic static char ensureLegalXml(char c)
c
- input characterc
if possiblepublic static VOSerializer makeSerializer(DataFormat dataFormat, StarTable table) throws java.io.IOException
dataFormat
- one of the supported VOTable serialization formatstable
- the table to be serializedjava.io.IOException
public static VOSerializer makeSerializer(DataFormat dataFormat, VOTableVersion version, StarTable table) throws java.io.IOException
dataFormat
- one of the supported VOTable serialization formatsversion
- specifies the version of the VOTable standard
to which the output will conformtable
- the table to be serializedjava.io.IOException
public static VOSerializer makeFitsSerializer(StarTable table, FitsTableSerializer fitser, VOTableVersion version) throws java.io.IOException
makeSerializer
which will have to construct another,
possibly an expensive step.table
- table for serializationfitser
- fits serializerversion
- output VOTable versionjava.io.IOException