Class AxisTableDeserializer

  • All Implemented Interfaces:
    java.io.Serializable, javax.xml.rpc.encoding.Deserializer, org.apache.axis.encoding.Callback, org.apache.axis.encoding.Deserializer, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.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:
    Serialized Form
    • Field Summary

      • Fields inherited from class org.apache.axis.encoding.DeserializerImpl

        componentsReadyFlag, defaultType, id, isEnded, isHref, isNil, log, targets, value
      • Fields inherited from class org.apache.axis.message.SOAPHandler

        myElement
    • Constructor Summary

      Constructors 
      Constructor Description
      AxisTableDeserializer​(uk.ac.starlink.table.StoragePolicy storagePolicy)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean componentsReady()  
      void endTable()
      Called when there are no more rows to be transmitted.
      java.lang.Object getValue()  
      void onEndElement​(java.lang.String namespace, java.lang.String localName, org.apache.axis.encoding.DeserializationContext context)  
      org.apache.axis.message.SOAPHandler onStartChild​(java.lang.String namespace, java.lang.String localName, java.lang.String prefix, org.xml.sax.Attributes atts, org.apache.axis.encoding.DeserializationContext context)  
      void rowData​(java.lang.Object[] row)
      Called when a row has been read.
      void startTable​(uk.ac.starlink.table.StarTable meta)
      Called when a table is about to be transmitted.
      void valueComplete()  
      • Methods inherited from class org.apache.axis.encoding.DeserializerImpl

        addChildDeserializer, endElement, getDefaultType, getMechanismType, getValue, getValueTargets, moveValueTargets, onStartElement, registerValueTarget, removeValueTargets, setChildValue, setDefaultType, setValue, setValue, startElement
      • Methods inherited from class org.apache.axis.message.SOAPHandler

        characters, makeNewElement, onEndChild
      • Methods inherited from class org.xml.sax.helpers.DefaultHandler

        endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AxisTableDeserializer

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

      • onStartChild

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

        public void onEndElement​(java.lang.String namespace,
                                 java.lang.String localName,
                                 org.apache.axis.encoding.DeserializationContext context)
                          throws org.xml.sax.SAXException
        Specified by:
        onEndElement in interface org.apache.axis.encoding.Deserializer
        Overrides:
        onEndElement in class org.apache.axis.encoding.DeserializerImpl
        Throws:
        org.xml.sax.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​(java.lang.Object[] row)
                     throws org.xml.sax.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:
        org.xml.sax.SAXException
      • endTable

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

        public java.lang.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 org.xml.sax.SAXException
        Specified by:
        valueComplete in interface org.apache.axis.encoding.Deserializer
        Overrides:
        valueComplete in class org.apache.axis.encoding.DeserializerImpl
        Throws:
        org.xml.sax.SAXException