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;
import java.util.ArrayList;
public class SOAPFaultReasonBuilder extends SOAPHandler implements Callback
{
private ArrayList text = new ArrayList();
private SOAPFaultBuilder faultBuilder;
public SOAPFaultReasonBuilder(SOAPFaultBuilder faultBuilder)
{
this.faultBuilder = faultBuilder;
}
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_TEXT_SOAP12))
{
Deserializer currentDeser = null;
currentDeser = context.getDeserializerForType(Constants.XSD_STRING);
if (currentDeser != null)
{
currentDeser.registerValueTarget(new CallbackTarget(faultBuilder, thisQName));
}
return (SOAPHandler)currentDeser;
}
else
{
return null;
}
}
public void setValue(Object value, Object hint)
{
text.add(value);
}
public ArrayList getText()
{
return text;
}
}