Package uk.ac.starlink.vo

# Class DalResultStreamer

java.lang.Object
uk.ac.starlink.votable.TableContentHandler
uk.ac.starlink.vo.DalResultStreamer

All Implemented Interfaces:
  `ContentHandler`, `uk.ac.starlink.votable.TableHandler`

public class DalResultStreamer extends uk.ac.starlink.votable.TableContentHandler implements uk.ac.starlink.votable.TableHandler
SAX table handler for processing VOTable documents returned from DAL services. The result table has to be in a type="results" RESOURCE following DAL rules. The QUERY_STATUS INFO elements are understood, and a table marked with error status causes an exception to be thrown by the SAX parser. A successful parse streams the table data to a supplied sink.

Since:
  10 Apr 2013
Author:
  Mark Taylor

## Constructor Summary

Constructors
Constructor
Description
`DalResultStreamer(uk.ac.starlink.table.TableSink sink)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`characters(char[] ch, int start, int length)`
`void`
`endElement(String namespaceURI, String localName, String qName)`
`void`
`endTable()`
`boolean`
`getOverflow()`
Indicates whether the DAL result was marked as overflowing (with QUERY_STATUS INFO).
`void`
`rowData(Object[] row)`
`void`
`startElement(String namespaceURI, String localName, String qName, Attributes atts)`
`void`
`startTable(uk.ac.starlink.table.StarTable meta)`
`static boolean`
`streamResultTable(InputSource saxsrc, uk.ac.starlink.table.TableSink sink)`
Streams a DAL result table from a SAX source to a table sink.

### Methods inherited from class uk.ac.starlink.votable.TableContentHandler

`endDocument, endPrefixMapping, getLocator, getReadHrefTables, getTableHandler, ignorableWhitespace, processingInstruction, setDocumentLocator, setReadHrefTables, setTableHandler, skippedEntity, startDocument, startPrefixMapping`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.xml.sax.ContentHandler

`declaration`

## Constructor Details

### DalResultStreamer

public DalResultStreamer(uk.ac.starlink.table.TableSink sink)
Constructor.

Parameters:
  `sink` - table destination

## Method Details

### getOverflow

public boolean getOverflow()
Indicates whether the DAL result was marked as overflowing (with QUERY_STATUS INFO). Will be set or not set after a successful parse.

Returns:
  true iff an overflow marker has been encountered

### startElement

public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException

Specified by:
  `startElement` in interface `ContentHandler`
Overrides:
  `startElement` in class `uk.ac.starlink.votable.TableContentHandler`
Throws:
  `SAXException`

### endElement

public void endElement(String namespaceURI, String localName, String qName) throws SAXException

Specified by:
  `endElement` in interface `ContentHandler`
Overrides:
  `endElement` in class `uk.ac.starlink.votable.TableContentHandler`
Throws:
  `SAXException`

### characters

public void characters(char[] ch, int start, int length) throws SAXException

Specified by:
  `characters` in interface `ContentHandler`
Overrides:
  `characters` in class `uk.ac.starlink.votable.TableContentHandler`
Throws:
  `SAXException`

### startTable

public void startTable(uk.ac.starlink.table.StarTable meta) throws SAXException

Specified by:
  `startTable` in interface `uk.ac.starlink.votable.TableHandler`
Throws:
  `SAXException`

### rowData

public void rowData(Object[] row) throws SAXException

Specified by:
  `rowData` in interface `uk.ac.starlink.votable.TableHandler`
Throws:
  `SAXException`

### endTable

public void endTable() throws SAXException

Specified by:
  `endTable` in interface `uk.ac.starlink.votable.TableHandler`
Throws:
  `SAXException`

### streamResultTable

public static boolean streamResultTable(InputSource saxsrc, uk.ac.starlink.table.TableSink sink) throws IOException, SAXException
Streams a DAL result table from a SAX source to a table sink.

Parameters:
  `saxsrc` - SAX event source
  `sink` - table destination
Returns:
  true iff the result was marked as overflowed
Throws:
  `IOException`
  `SAXException`