Class AxisTableDeserializer

java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.apache.axis.message.SOAPHandler
org.apache.axis.encoding.DeserializerImpl
uk.ac.starlink.votable.soap.AxisTableDeserializer
All Implemented Interfaces:
Serializable, javax.xml.rpc.encoding.Deserializer, org.apache.axis.encoding.Callback, org.apache.axis.encoding.Deserializer, ContentHandler, DTDHandler, EntityResolver, ErrorHandler, TableHandler

public class AxisTableDeserializer extends org.apache.axis.encoding.DeserializerImpl implements TableHandler
Custom deserializer for VOTables. The serialized stream is assumed to be a valid VOTABLE element containing a RESOURCE element containing a TABLE element.

The implementation of this class is tailored to various ill-documented idiosyncracies of AXIS's deserialization machinery. Tinker at your peril.

Since:
23 Mar 2005
Author:
Mark Taylor (Starlink)
See Also:
  • Constructor Details

    • AxisTableDeserializer

      public AxisTableDeserializer(uk.ac.starlink.table.StoragePolicy storagePolicy)
      Constructor.
      Parameters:
      storagePolicy - policy for storing streamed table data
  • Method Details

    • onStartChild

      public org.apache.axis.message.SOAPHandler onStartChild(String namespace, String localName, String prefix, Attributes atts, org.apache.axis.encoding.DeserializationContext context) throws SAXException
      Specified by:
      onStartChild in interface org.apache.axis.encoding.Deserializer
      Overrides:
      onStartChild in class org.apache.axis.encoding.DeserializerImpl
      Throws:
      SAXException
    • onEndElement

      public void onEndElement(String namespace, String localName, org.apache.axis.encoding.DeserializationContext context) throws SAXException
      Specified by:
      onEndElement in interface org.apache.axis.encoding.Deserializer
      Overrides:
      onEndElement in class org.apache.axis.encoding.DeserializerImpl
      Throws:
      SAXException
    • startTable

      public void startTable(uk.ac.starlink.table.StarTable meta)
      Description copied from interface: TableHandler
      Called when a table is about to be transmitted. This call will occur somewhere between matched DATA element startElement and endElement calls. The metadata argument signals column and table metadata argument about the table whose rows are about to be transmitted. If the number of rows that will be transmitted via subsequent calls to rowData is known, this value should be made available as the row count of metadata (StarTable.getRowCount()); if it is not known, the row count should be -1. However, this object should not attempt to read any of meta's cell data.

      The data to be transmitted in subsequent calls of acceptRow must match the metadata transmitted in this call in the same way that rows of a StarTable must match its own metadata (number and content clases of columns etc).

      Specified by:
      startTable in interface TableHandler
      Parameters:
      meta - metadata object
    • rowData

      public void rowData(Object[] row) throws SAXException
      Description copied from interface: TableHandler
      Called when a row has been read. This method will be called between matched startTable and endTable calls.
      Specified by:
      rowData in interface TableHandler
      Parameters:
      row - array of data objects representing a row in the current table
      Throws:
      SAXException
    • endTable

      public void endTable() throws SAXException
      Description copied from interface: TableHandler
      Called when there are no more rows to be transmitted.
      Specified by:
      endTable in interface TableHandler
      Throws:
      SAXException
    • getValue

      public Object getValue()
      Specified by:
      getValue in interface org.apache.axis.encoding.Deserializer
      Overrides:
      getValue in class org.apache.axis.encoding.DeserializerImpl
    • componentsReady

      public boolean componentsReady()
      Specified by:
      componentsReady in interface org.apache.axis.encoding.Deserializer
      Overrides:
      componentsReady in class org.apache.axis.encoding.DeserializerImpl
    • valueComplete

      public void valueComplete() throws SAXException
      Specified by:
      valueComplete in interface org.apache.axis.encoding.Deserializer
      Overrides:
      valueComplete in class org.apache.axis.encoding.DeserializerImpl
      Throws:
      SAXException