01: /*
02: * Copyright (c) 2001-2004 Caucho Technology, Inc. All rights reserved.
03: *
04: * The Apache Software License, Version 1.1
05: *
06: * Redistribution and use in source and binary forms, with or without
07: * modification, are permitted provided that the following conditions
08: * are met:
09: *
10: * 1. Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
12: *
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in
15: * the documentation and/or other materials provided with the
16: * distribution.
17: *
18: * 3. The end-user documentation included with the redistribution, if
19: * any, must include the following acknowlegement:
20: * "This product includes software developed by the
21: * Caucho Technology (http://www.caucho.com/)."
22: * Alternately, this acknowlegement may appear in the software itself,
23: * if and wherever such third-party acknowlegements normally appear.
24: *
25: * 4. The names "Hessian", "Resin", and "Caucho" must not be used to
26: * endorse or promote products derived from this software without prior
27: * written permission. For written permission, please contact
28: * info@caucho.com.
29: *
30: * 5. Products derived from this software may not be called "Resin"
31: * nor may "Resin" appear in their names without prior written
32: * permission of Caucho Technology.
33: *
34: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
35: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
36: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37: * DISCLAIMED. IN NO EVENT SHALL CAUCHO TECHNOLOGY OR ITS CONTRIBUTORS
38: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
39: * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
40: * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
41: * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
42: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
43: * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
44: * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45: *
46: * @author Scott Ferguson
47: */
48:
49: package com.caucho.hessian.jmx;
50:
51: import com.caucho.hessian.io.AbstractDeserializer;
52: import com.caucho.hessian.io.AbstractHessianInput;
53:
54: import javax.management.MBeanConstructorInfo;
55: import javax.management.MBeanParameterInfo;
56: import java.io.IOException;
57:
58: /**
59: * Deserializing an MBeanConstructorInfo valued object
60: */
61: public class MBeanConstructorInfoDeserializer extends
62: AbstractDeserializer {
63: public Class getType() {
64: return MBeanConstructorInfo.class;
65: }
66:
67: public Object readMap(AbstractHessianInput in) throws IOException {
68: String name = null;
69: String description = null;
70: MBeanParameterInfo[] sig = null;
71:
72: while (!in.isEnd()) {
73: String key = in.readString();
74:
75: if ("name".equals(key))
76: name = in.readString();
77: else if ("description".equals(key))
78: description = in.readString();
79: else if ("signature".equals(key))
80: sig = (MBeanParameterInfo[]) in
81: .readObject(MBeanParameterInfo[].class);
82: else {
83: in.readObject();
84: }
85: }
86:
87: in.readMapEnd();
88:
89: try {
90: MBeanConstructorInfo info;
91:
92: info = new MBeanConstructorInfo(name, description, sig);
93:
94: return info;
95: } catch (Exception e) {
96: throw new IOException(String.valueOf(e));
97: }
98: }
99: }
|