public abstract class VOSerializer extends 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 String |
formatAttribute(String name,
String value)
Turns a name,value pair into an attribute assignment suitable for
putting in an XML start tag.
|
static String |
formatText(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(BufferedWriter writer)
Writes any DESCRIPTION element associated with this serializer's table.
|
abstract void |
writeFields(BufferedWriter writer)
Writes the FIELD headers corresponding to this table on a given writer.
|
abstract void |
writeHrefDataElement(BufferedWriter xmlwriter,
String href,
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(BufferedWriter xmlwriter,
String href,
OutputStream streamout) |
abstract void |
writeInlineDataElement(BufferedWriter writer)
Writes this serializer's table data as a self-contained
<DATA> element.
|
abstract void |
writeInlineDataElementUTF8(OutputStream out)
Writes this serializer's table data as a self-contained
<DATA> element to an output stream using UTF8 encoding.
|
void |
writeInlineTableElement(BufferedWriter writer)
Writes this serializer's table as a complete TABLE element.
|
void |
writeInlineTableElementUTF8(OutputStream out)
Writes this serializer's table as a complete TABLE element
to an output stream using UTF8 encoding.
|
void |
writeParams(BufferedWriter writer)
Writes any PARAM and INFO elements associated with this serializer's
table.
|
void |
writePostDataXML(BufferedWriter writer)
Outputs any content of the TABLE element following the DATA element
and the TABLE end tag.
|
void |
writePreDataXML(BufferedWriter writer)
Outputs the TABLE element start tag and all of its content before
the DATA element.
|
void |
writeServiceDescriptors(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(BufferedWriter writer) throws IOException
writer
- destination streamIOException
public abstract void writeInlineDataElement(BufferedWriter writer) throws IOException
writer
- destination streamIOException
public abstract void writeInlineDataElementUTF8(OutputStream out) throws IOException
writeInlineDataElement(java.io.BufferedWriter)
method.out
- output streamIOException
public abstract void writeHrefDataElement(BufferedWriter xmlwriter, String href, OutputStream streamout) throws 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 dataIOException
public void writeInlineTableElement(BufferedWriter writer) throws IOException
writer
- destination streamIOException
public void writeInlineTableElementUTF8(OutputStream out) throws IOException
This may be substantially faster than the otherwise equivalent
writeInlineTableElement(java.io.BufferedWriter)
method.
out
- output streamIOException
public void writeHrefTableElement(BufferedWriter xmlwriter, String href, OutputStream streamout) throws IOException
IOException
public void writeParams(BufferedWriter writer) throws IOException
writer
- destination streamIOException
public void writeDescription(BufferedWriter writer) throws IOException
writer
- destination streamIOException
public void writeServiceDescriptors(BufferedWriter writer) throws IOException
writer
- destination streamIOException
public void writePreDataXML(BufferedWriter writer) throws IOException
writer
- output streamIOException
public void writePostDataXML(BufferedWriter writer) throws IOException
writer
- output streamIOException
public long getRowCount()
getTable().getRowCount()
,
but this may be overridden if that value is known to be unreliable.public RowSequence getRowSequence() throws IOException
IOException
public static String formatAttribute(String name, String value)
name
- the attribute namevalue
- the attribute valuepublic static String formatText(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 IOException
dataFormat
- one of the supported VOTable serialization formatstable
- the table to be serializedIOException
public static VOSerializer makeSerializer(DataFormat dataFormat, VOTableVersion version, StarTable table) throws 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 serializedIOException
public static VOSerializer makeFitsSerializer(StarTable table, FitsTableSerializer fitser, VOTableVersion version) throws IOException
makeSerializer
which will have to construct another,
possibly an expensive step.table
- table for serializationfitser
- fits serializerversion
- output VOTable versionIOException
Copyright © 2024 Central Laboratory of the Research Councils. All Rights Reserved.