Package uk.ac.starlink.votable.soap
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:
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
-
-
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
-
-
-
-
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 interfaceorg.apache.axis.encoding.Deserializer
- Overrides:
onStartChild
in classorg.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 interfaceorg.apache.axis.encoding.Deserializer
- Overrides:
onEndElement
in classorg.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 interfaceTableHandler
- 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 interfaceTableHandler
- 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 interfaceTableHandler
- Throws:
org.xml.sax.SAXException
-
getValue
public java.lang.Object getValue()
- Specified by:
getValue
in interfaceorg.apache.axis.encoding.Deserializer
- Overrides:
getValue
in classorg.apache.axis.encoding.DeserializerImpl
-
componentsReady
public boolean componentsReady()
- Specified by:
componentsReady
in interfaceorg.apache.axis.encoding.Deserializer
- Overrides:
componentsReady
in classorg.apache.axis.encoding.DeserializerImpl
-
valueComplete
public void valueComplete() throws org.xml.sax.SAXException
- Specified by:
valueComplete
in interfaceorg.apache.axis.encoding.Deserializer
- Overrides:
valueComplete
in classorg.apache.axis.encoding.DeserializerImpl
- Throws:
org.xml.sax.SAXException
-
-