Package uk.ac.starlink.ttools.copy
Class VotCopyHandler
- java.lang.Object
-
- uk.ac.starlink.ttools.copy.VotCopyHandler
-
- All Implemented Interfaces:
org.xml.sax.ContentHandler,org.xml.sax.ext.LexicalHandler,uk.ac.starlink.votable.TableHandler
public class VotCopyHandler extends java.lang.Object implements org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, uk.ac.starlink.votable.TableHandlerSAX content handler which takes SAX events and converts them to an output stream in a VOTable-sensitive way. As far as is possible given the SAX model, each input SAX event is sent to the output unchanged apart from events within a DATA element, which are written in one of the VOTable encodings as selected by the user.One exception to the rule is that, for implementation-specific reasons, FIELD elements with datatype="bit" are changed to have datatype="boolean" instead.
- Since:
- 18 Apr 2005
- Author:
- Mark Taylor (Starlink)
-
-
Constructor Summary
Constructors Constructor Description VotCopyHandler(boolean strict, uk.ac.starlink.votable.DataFormat format, uk.ac.starlink.votable.VOTableVersion version, boolean inline, boolean squashMagic, java.lang.String base, boolean cache, uk.ac.starlink.table.StoragePolicy policy)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcharacters(char[] ch, int start, int length)voidcomment(char[] ch, int start, int length)voidendCDATA()voidendDocument()voidendDTD()voidendElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)voidendEntity(java.lang.String name)voidendPrefixMapping(java.lang.String prefix)voidendTable()voidignorableWhitespace(char[] ch, int start, int length)voidprocessingInstruction(java.lang.String target, java.lang.String data)voidrowData(java.lang.Object[] row)voidsetDocumentLocator(org.xml.sax.Locator locator)voidsetOutput(java.io.Writer out)Sets the output stream for output.voidskippedEntity(java.lang.String name)voidstartCDATA()voidstartDocument()voidstartDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)voidstartElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)voidstartEntity(java.lang.String name)voidstartPrefixMapping(java.lang.String prefix, java.lang.String uri)voidstartTable(uk.ac.starlink.table.StarTable meta)voidwriteDataElement(uk.ac.starlink.table.StarTable table)Outputs a DATA element representing a table to the destination stream according to the current settings.
-
-
-
Constructor Detail
-
VotCopyHandler
public VotCopyHandler(boolean strict, uk.ac.starlink.votable.DataFormat format, uk.ac.starlink.votable.VOTableVersion version, boolean inline, boolean squashMagic, java.lang.String base, boolean cache, uk.ac.starlink.table.StoragePolicy policy)Constructor. The copy can be done in either cached or streamed mode, determined by the cache parameter. In streamed mode, each row encountered in the input SAX stream is copied to the output stream as soon as it is encountered. In cached mode, the whole table is assembled first, and then written out at the end of the input. Streamed mode is more efficient, but may not be possible under some circumstances, e.g. for FITS output when the number of rows is not known in advance. If a streamed copy is attempted when it's not possible, it will fail with aUnrepeatableSequenceException(wrapped in a SAXException).- Parameters:
strict- whether to effect strict interpretation of the VOTable standardformat- encoding type for output DATA elements; may be null for DATA-less outputversion- VOTable standard version for output; may be null for unknown or indeterminate, in which case input version will be copied as far as possibleinline- true for tables written inline, false for tables written to an href-referenced streamsquashMagic- if true, any VALUES/null attributes are not passed throughbase- base table location; used to construct URIs for out-of-line table streams (only used if inline=false)cache- whether tables will be cached prior to writingpolicy- storage policy for cached tables
-
-
Method Detail
-
setOutput
public void setOutput(java.io.Writer out)
Sets the output stream for output. By default output is written to standard output using the platform's default encoding.- Parameters:
out- output writer
-
startTable
public void startTable(uk.ac.starlink.table.StarTable meta) throws org.xml.sax.SAXException- Specified by:
startTablein interfaceuk.ac.starlink.votable.TableHandler- Throws:
org.xml.sax.SAXException
-
rowData
public void rowData(java.lang.Object[] row) throws org.xml.sax.SAXException- Specified by:
rowDatain interfaceuk.ac.starlink.votable.TableHandler- Throws:
org.xml.sax.SAXException
-
endTable
public void endTable() throws org.xml.sax.SAXException- Specified by:
endTablein interfaceuk.ac.starlink.votable.TableHandler- Throws:
org.xml.sax.SAXException
-
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
- Specified by:
setDocumentLocatorin interfaceorg.xml.sax.ContentHandler
-
startDocument
public void startDocument() throws org.xml.sax.SAXException- Specified by:
startDocumentin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
endDocument
public void endDocument() throws org.xml.sax.SAXException- Specified by:
endDocumentin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
startElement
public void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException- Specified by:
startElementin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
endElement
public void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException- Specified by:
endElementin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
characters
public void characters(char[] ch, int start, int length) throws org.xml.sax.SAXException- Specified by:
charactersin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
ignorableWhitespace
public void ignorableWhitespace(char[] ch, int start, int length) throws org.xml.sax.SAXException- Specified by:
ignorableWhitespacein interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws org.xml.sax.SAXException- Specified by:
startPrefixMappingin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
endPrefixMapping
public void endPrefixMapping(java.lang.String prefix) throws org.xml.sax.SAXException- Specified by:
endPrefixMappingin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
skippedEntity
public void skippedEntity(java.lang.String name) throws org.xml.sax.SAXException- Specified by:
skippedEntityin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
processingInstruction
public void processingInstruction(java.lang.String target, java.lang.String data) throws org.xml.sax.SAXException- Specified by:
processingInstructionin interfaceorg.xml.sax.ContentHandler- Throws:
org.xml.sax.SAXException
-
comment
public void comment(char[] ch, int start, int length) throws org.xml.sax.SAXException- Specified by:
commentin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
startCDATA
public void startCDATA() throws org.xml.sax.SAXException- Specified by:
startCDATAin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
endCDATA
public void endCDATA() throws org.xml.sax.SAXException- Specified by:
endCDATAin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
startDTD
public void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException- Specified by:
startDTDin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
endDTD
public void endDTD() throws org.xml.sax.SAXException- Specified by:
endDTDin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
startEntity
public void startEntity(java.lang.String name) throws org.xml.sax.SAXException- Specified by:
startEntityin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
endEntity
public void endEntity(java.lang.String name) throws org.xml.sax.SAXException- Specified by:
endEntityin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
writeDataElement
public void writeDataElement(uk.ac.starlink.table.StarTable table) throws java.io.IOExceptionOutputs a DATA element representing a table to the destination stream according to the current settings.- Parameters:
table- table to write- Throws:
java.io.IOException
-
-