package org.jboss.net.jmx.adaptor;
import org.jboss.axis.encoding.DeserializationContext;
import org.jboss.axis.encoding.Deserializer;
import org.jboss.axis.encoding.DeserializerImpl;
import org.jboss.axis.encoding.DeserializerTarget;
import org.jboss.axis.message.SOAPHandler;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.xml.namespace.QName;
public class ObjectInstanceDeser extends DeserializerImpl
{
ObjectName objectName;
String className;
public void onStartElement(String namespace,
String localName,
String prefix,
Attributes attributes,
DeserializationContext context)
throws SAXException
{
if (context.isNil(attributes))
{
return;
}
}
public SOAPHandler onStartChild(String namespace,
String localName,
String prefix,
Attributes attributes,
DeserializationContext context)
throws SAXException
{
QName itemType =
context.getTypeFromAttributes(namespace, localName, attributes);
Deserializer dSer = null;
if (itemType != null)
{
dSer = context.getDeserializerForType(itemType);
}
if (dSer == null)
{
dSer = new DeserializerImpl();
}
dSer.registerValueTarget(new DeserializerTarget(this, localName));
addChildDeserializer(dSer);
return (SOAPHandler)dSer;
}
public void setChildValue(Object value, Object hint) throws SAXException
{
if (hint.equals("className"))
className = (String)value;
else if (hint.equals("objectName"))
objectName = (ObjectName)value;
}
public void onEndElement(String s,
String s1,
DeserializationContext deserializationcontext)
{
try
{
super.value = new ObjectInstance(objectName, className);
}
catch (Exception exception)
{
exception.printStackTrace();
}
}
}