1 8 9 package mx4j.tools.remote.soap.axis.ser; 10 11 import java.io.IOException ; 12 import javax.management.Notification ; 13 import javax.xml.namespace.QName ; 14 15 import org.apache.axis.encoding.SerializationContext; 16 import org.apache.axis.encoding.XMLType; 17 import org.apache.axis.wsdl.fromJava.Types; 18 import org.w3c.dom.Element ; 19 import org.xml.sax.Attributes ; 20 21 24 public class NotificationSer extends AxisSerializer 25 { 26 static final String TYPE = "Notification"; 27 static final String CLASS_NAME = "type"; 28 static final String SOURCE = "source"; 29 static final String SEQUENCE_NUMBER = "sequenceNumber"; 30 static final String TIMESTAMP = "timeStamp"; 31 static final String MESSAGE = "message"; 32 static final String USER_DATA = "userData"; 33 private static final QName CLASS_NAME_QNAME = new QName ("", CLASS_NAME); 34 private static final QName SOURCE_QNAME = new QName ("", SOURCE); 35 private static final QName SEQUENCE_NUMBER_QNAME = new QName ("", SEQUENCE_NUMBER); 36 private static final QName TIMESTAMP_QNAME = new QName ("", TIMESTAMP); 37 private static final QName MESSAGE_QNAME = new QName ("", MESSAGE); 38 private static final QName USER_DATA_QNAME = new QName ("", USER_DATA); 39 40 public void serialize(QName name, Attributes attributes, Object value, SerializationContext context) throws IOException  41 { 42 Notification notification = (Notification )value; 43 context.startElement(name, attributes); 44 onSerialize(context, notification); 45 context.endElement(); 46 } 47 48 protected void onSerialize(SerializationContext context, Notification notification) throws IOException  49 { 50 context.serialize(CLASS_NAME_QNAME, null, notification.getType()); 51 context.serialize(SOURCE_QNAME, null, notification.getSource()); 52 context.serialize(SEQUENCE_NUMBER_QNAME, null, new Long (notification.getSequenceNumber())); 53 context.serialize(TIMESTAMP_QNAME, null, new Long (notification.getTimeStamp())); 54 context.serialize(MESSAGE_QNAME, null, notification.getMessage()); 55 context.serialize(USER_DATA_QNAME, null, notification.getUserData()); 56 } 57 58 public Element writeSchema(Class aClass, Types types) throws Exception  59 { 60 Element complexType = types.createElement(SCHEMA_COMPLEX_TYPE); 61 complexType.setAttribute("name", TYPE); 62 Element allElement = types.createElement(SCHEMA_ALL); 63 complexType.appendChild(allElement); 64 65 Element typeElement = types.createElement(SCHEMA_ELEMENT); 66 typeElement.setAttribute("name", CLASS_NAME); 67 typeElement.setAttribute("type", XMLType.XSD_STRING.getLocalPart()); 68 allElement.appendChild(typeElement); 69 70 Element sourceElement = types.createElement(SCHEMA_ELEMENT); 71 sourceElement.setAttribute("name", SOURCE); 72 sourceElement.setAttribute("type", XMLType.XSD_ANYTYPE.getLocalPart()); 73 allElement.appendChild(sourceElement); 74 75 Element sequenceNumberElement = types.createElement(SCHEMA_ELEMENT); 76 sequenceNumberElement.setAttribute("name", SEQUENCE_NUMBER); 77 sequenceNumberElement.setAttribute("type", XMLType.XSD_LONG.getLocalPart()); 78 allElement.appendChild(sequenceNumberElement); 79 80 Element timeStampElement = types.createElement(SCHEMA_ELEMENT); 81 timeStampElement.setAttribute("name", TIMESTAMP); 82 timeStampElement.setAttribute("type", XMLType.XSD_LONG.getLocalPart()); 83 allElement.appendChild(timeStampElement); 84 85 Element messageElement = types.createElement(SCHEMA_ELEMENT); 86 messageElement.setAttribute("name", MESSAGE); 87 messageElement.setAttribute("type", XMLType.XSD_STRING.getLocalPart()); 88 allElement.appendChild(messageElement); 89 90 Element userDataElement = types.createElement(SCHEMA_ELEMENT); 91 userDataElement.setAttribute("name", USER_DATA); 92 userDataElement.setAttribute("type", XMLType.XSD_ANYTYPE.getLocalPart()); 93 allElement.appendChild(userDataElement); 94 95 return complexType; 96 } 97 } 98 | Popular Tags |