KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mx4j > tools > remote > soap > axis > ser > MBeanOperationInfoSer


1 /*
2  * Copyright (C) The MX4J Contributors.
3  * All rights reserved.
4  *
5  * This software is distributed under the terms of the MX4J License version 1.0.
6  * See the terms of the MX4J License in the documentation provided with this software.
7  */

8
9 package mx4j.tools.remote.soap.axis.ser;
10
11 import java.io.IOException JavaDoc;
12 import javax.management.MBeanOperationInfo JavaDoc;
13 import javax.xml.namespace.QName JavaDoc;
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 JavaDoc;
19 import org.xml.sax.Attributes JavaDoc;
20
21 /**
22  * @version $Revision: 1.5 $
23  */

24 public class MBeanOperationInfoSer extends AxisSerializer
25 {
26    static final String JavaDoc TYPE = "MBeanOperationInfo";
27    static final String JavaDoc NAME = "name";
28    static final String JavaDoc CLASS_NAME = "type";
29    static final String JavaDoc DESCRIPTION = "description";
30    static final String JavaDoc SIGNATURE = "signature";
31    static final String JavaDoc IMPACT = "impact";
32    private static final QName JavaDoc NAME_QNAME = new QName JavaDoc("", NAME);
33    private static final QName JavaDoc CLASS_NAME_QNAME = new QName JavaDoc("", CLASS_NAME);
34    private static final QName JavaDoc DESCRIPTION_QNAME = new QName JavaDoc("", DESCRIPTION);
35    private static final QName JavaDoc SIGNATURE_QNAME = new QName JavaDoc("", SIGNATURE);
36    private static final QName JavaDoc IMPACT_QNAME = new QName JavaDoc("", IMPACT);
37
38    public void serialize(QName JavaDoc name, Attributes JavaDoc attributes, Object JavaDoc value, SerializationContext context) throws IOException JavaDoc
39    {
40       MBeanOperationInfo JavaDoc info = (MBeanOperationInfo JavaDoc)value;
41       context.startElement(name, attributes);
42       context.serialize(NAME_QNAME, null, info.getName());
43       context.serialize(DESCRIPTION_QNAME, null, info.getDescription());
44       context.serialize(SIGNATURE_QNAME, null, info.getSignature());
45       context.serialize(CLASS_NAME_QNAME, null, info.getReturnType());
46       context.serialize(IMPACT_QNAME, null, new Integer JavaDoc(info.getImpact()));
47       context.endElement();
48    }
49
50    public Element JavaDoc writeSchema(Class JavaDoc javaType, Types types) throws Exception JavaDoc
51    {
52       Element JavaDoc complexType = types.createElement(SCHEMA_COMPLEX_TYPE);
53       complexType.setAttribute("name", TYPE);
54       Element JavaDoc allElement = types.createElement(SCHEMA_ALL);
55       complexType.appendChild(allElement);
56
57       Element JavaDoc nameElement = types.createElement(SCHEMA_ELEMENT);
58       nameElement.setAttribute("name", NAME);
59       nameElement.setAttribute("type", XMLType.XSD_STRING.getLocalPart());
60       allElement.appendChild(nameElement);
61
62       Element JavaDoc descrElement = types.createElement(SCHEMA_ELEMENT);
63       descrElement.setAttribute("name", DESCRIPTION);
64       descrElement.setAttribute("type", XMLType.XSD_STRING.getLocalPart());
65       allElement.appendChild(descrElement);
66
67       Element JavaDoc signatureElement = types.createElement(SCHEMA_ELEMENT);
68       signatureElement.setAttribute("name", SIGNATURE);
69       signatureElement.setAttribute("type", XMLType.SOAP_ARRAY.getLocalPart());
70       allElement.appendChild(signatureElement);
71
72       Element JavaDoc typeElement = types.createElement(SCHEMA_ELEMENT);
73       typeElement.setAttribute("name", CLASS_NAME);
74       typeElement.setAttribute("type", XMLType.XSD_STRING.getLocalPart());
75       allElement.appendChild(typeElement);
76
77       Element JavaDoc impactElement = types.createElement(SCHEMA_ELEMENT);
78       impactElement.setAttribute("name", IMPACT);
79       impactElement.setAttribute("type", XMLType.XSD_INT.getLocalPart());
80       allElement.appendChild(impactElement);
81
82       return complexType;
83    }
84 }
85
Popular Tags