Package uk.ac.starlink.ttools.copy
Class VotCopyHandler
java.lang.Object
uk.ac.starlink.ttools.copy.VotCopyHandler
- All Implemented Interfaces:
ContentHandler,LexicalHandler,uk.ac.starlink.votable.TableHandler
public class VotCopyHandler
extends Object
implements ContentHandler, LexicalHandler, uk.ac.starlink.votable.TableHandler
SAX 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
ConstructorsConstructorDescriptionVotCopyHandler(boolean strict, uk.ac.starlink.votable.DataFormat format, uk.ac.starlink.votable.VOTableVersion version, boolean inline, boolean squashMagic, String base, boolean cache, uk.ac.starlink.table.StoragePolicy policy) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidcharacters(char[] ch, int start, int length) voidcomment(char[] ch, int start, int length) voidendCDATA()voidvoidendDTD()voidendElement(String namespaceURI, String localName, String qName) voidvoidendPrefixMapping(String prefix) voidendTable()voidignorableWhitespace(char[] ch, int start, int length) voidprocessingInstruction(String target, String data) voidvoidsetDocumentLocator(Locator locator) voidSets the output stream for output.voidskippedEntity(String name) voidvoidvoidvoidstartElement(String namespaceURI, String localName, String qName, Attributes atts) voidstartEntity(String name) voidstartPrefixMapping(String prefix, 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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.xml.sax.ContentHandler
declaration
-
Constructor Details
-
VotCopyHandler
public VotCopyHandler(boolean strict, uk.ac.starlink.votable.DataFormat format, uk.ac.starlink.votable.VOTableVersion version, boolean inline, boolean squashMagic, 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 Details
-
setOutput
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
- Specified by:
startTablein interfaceuk.ac.starlink.votable.TableHandler- Throws:
SAXException
-
rowData
- Specified by:
rowDatain interfaceuk.ac.starlink.votable.TableHandler- Throws:
SAXException
-
endTable
- Specified by:
endTablein interfaceuk.ac.starlink.votable.TableHandler- Throws:
SAXException
-
setDocumentLocator
- Specified by:
setDocumentLocatorin interfaceContentHandler
-
startDocument
- Specified by:
startDocumentin interfaceContentHandler- Throws:
SAXException
-
endDocument
- Specified by:
endDocumentin interfaceContentHandler- Throws:
SAXException
-
startElement
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException - Specified by:
startElementin interfaceContentHandler- Throws:
SAXException
-
endElement
- Specified by:
endElementin interfaceContentHandler- Throws:
SAXException
-
characters
- Specified by:
charactersin interfaceContentHandler- Throws:
SAXException
-
ignorableWhitespace
- Specified by:
ignorableWhitespacein interfaceContentHandler- Throws:
SAXException
-
startPrefixMapping
- Specified by:
startPrefixMappingin interfaceContentHandler- Throws:
SAXException
-
endPrefixMapping
- Specified by:
endPrefixMappingin interfaceContentHandler- Throws:
SAXException
-
skippedEntity
- Specified by:
skippedEntityin interfaceContentHandler- Throws:
SAXException
-
processingInstruction
- Specified by:
processingInstructionin interfaceContentHandler- Throws:
SAXException
-
comment
- Specified by:
commentin interfaceLexicalHandler- Throws:
SAXException
-
startCDATA
- Specified by:
startCDATAin interfaceLexicalHandler- Throws:
SAXException
-
endCDATA
- Specified by:
endCDATAin interfaceLexicalHandler- Throws:
SAXException
-
startDTD
- Specified by:
startDTDin interfaceLexicalHandler- Throws:
SAXException
-
endDTD
- Specified by:
endDTDin interfaceLexicalHandler- Throws:
SAXException
-
startEntity
- Specified by:
startEntityin interfaceLexicalHandler- Throws:
SAXException
-
endEntity
- Specified by:
endEntityin interfaceLexicalHandler- Throws:
SAXException
-
writeDataElement
Outputs a DATA element representing a table to the destination stream according to the current settings.- Parameters:
table- table to write- Throws:
IOException
-