package org.jboss.axis.message;
import org.jboss.axis.Constants;
import org.jboss.axis.encoding.Callback;
import org.jboss.axis.encoding.CallbackTarget;
import org.jboss.axis.encoding.DeserializationContext;
import org.jboss.axis.encoding.Deserializer;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import javax.xml.namespace.QName;
public class SOAPFaultCodeBuilder extends SOAPHandler implements Callback
{
protected QName faultCode = null;
protected SOAPFaultCodeBuilder next = null;
public SOAPFaultCodeBuilder()
{
}
public QName getFaultCode()
{
return faultCode;
}
public SOAPFaultCodeBuilder getNext()
{
return next;
}
public SOAPHandler onStartChild(String namespace,
String name,
String prefix,
Attributes attributes,
DeserializationContext context)
throws SAXException
{
QName thisQName = new QName(namespace, name);
if (thisQName.equals(Constants.QNAME_FAULTVALUE_SOAP12))
{
Deserializer currentDeser = null;
currentDeser = context.getDeserializerForType(Constants.XSD_QNAME);
if (currentDeser != null)
{
currentDeser.registerValueTarget(new CallbackTarget(this, thisQName));
}
return (SOAPHandler)currentDeser;
}
else if (thisQName.equals(Constants.QNAME_FAULTSUBCODE_SOAP12))
{
return (next = new SOAPFaultCodeBuilder());
}
else
return null;
}
public void setValue(Object value, Object hint)
{
QName thisQName = (QName)hint;
if (thisQName.equals(Constants.QNAME_FAULTVALUE_SOAP12))
{
faultCode = (QName)value;
}
}
}