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:
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:
-
Field Summary
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
componentsReadyFlag, defaultType, id, isEnded, isHref, isNil, log, targets, valueFields inherited from class org.apache.axis.message.SOAPHandler
myElement -
Constructor Summary
ConstructorsConstructorDescriptionAxisTableDeserializer(uk.ac.starlink.table.StoragePolicy storagePolicy) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanvoidendTable()Called when there are no more rows to be transmitted.getValue()voidonEndElement(String namespace, String localName, org.apache.axis.encoding.DeserializationContext context) org.apache.axis.message.SOAPHandleronStartChild(String namespace, String localName, String prefix, Attributes atts, org.apache.axis.encoding.DeserializationContext context) voidCalled when a row has been read.voidstartTable(uk.ac.starlink.table.StarTable meta) Called when a table is about to be transmitted.voidMethods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, endElement, getDefaultType, getMechanismType, getValue, getValueTargets, moveValueTargets, onStartElement, registerValueTarget, removeValueTargets, setChildValue, setDefaultType, setValue, setValue, startElementMethods inherited from class org.apache.axis.message.SOAPHandler
characters, makeNewElement, onEndChildMethods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warningMethods 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
-
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:
onStartChildin interfaceorg.apache.axis.encoding.Deserializer- Overrides:
onStartChildin classorg.apache.axis.encoding.DeserializerImpl- Throws:
SAXException
-
onEndElement
public void onEndElement(String namespace, String localName, org.apache.axis.encoding.DeserializationContext context) throws SAXException - Specified by:
onEndElementin interfaceorg.apache.axis.encoding.Deserializer- Overrides:
onEndElementin classorg.apache.axis.encoding.DeserializerImpl- Throws:
SAXException
-
startTable
public void startTable(uk.ac.starlink.table.StarTable meta) Description copied from interface:TableHandlerCalled when a table is about to be transmitted. This call will occur somewhere between matched DATA elementstartElementandendElementcalls. Themetadataargument 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 torowDatais known, this value should be made available as the row count ofmetadata(StarTable.getRowCount()); if it is not known, the row count should be -1. However, this object should not attempt to read any ofmeta's cell data.The data to be transmitted in subsequent calls of
acceptRowmust 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:
startTablein interfaceTableHandler- Parameters:
meta- metadata object
-
rowData
Description copied from interface:TableHandlerCalled when a row has been read. This method will be called between matchedstartTableandendTablecalls.- Specified by:
rowDatain interfaceTableHandler- Parameters:
row- array of data objects representing a row in the current table- Throws:
SAXException
-
endTable
Description copied from interface:TableHandlerCalled when there are no more rows to be transmitted.- Specified by:
endTablein interfaceTableHandler- Throws:
SAXException
-
getValue
- Specified by:
getValuein interfaceorg.apache.axis.encoding.Deserializer- Overrides:
getValuein classorg.apache.axis.encoding.DeserializerImpl
-
componentsReady
public boolean componentsReady()- Specified by:
componentsReadyin interfaceorg.apache.axis.encoding.Deserializer- Overrides:
componentsReadyin classorg.apache.axis.encoding.DeserializerImpl
-
valueComplete
- Specified by:
valueCompletein interfaceorg.apache.axis.encoding.Deserializer- Overrides:
valueCompletein classorg.apache.axis.encoding.DeserializerImpl- Throws:
SAXException
-