KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > clients > zipcode > LiteralSerializer


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  *
5  * Copyright (c) 2002 The Apache Software Foundation. All rights
6  * reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Apache Software Foundation (http://www.apache.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "WSIF" and "Apache Software Foundation" must
28  * not be used to endorse or promote products derived from this
29  * software without prior written permission. For written
30  * permission, please contact apache@apache.org.
31  *
32  * 5. Products derived from this software may not be called "Apache",
33  * nor may "Apache" appear in their name, without prior written
34  * permission of the Apache Software Foundation.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47  * SUCH DAMAGE.
48  * ====================================================================
49  *
50  * This software consists of voluntary contributions made by many
51  * individuals on behalf of the Apache Software Foundation and was
52  * originally based on software copyright (c) 2001, 2002, International
53  * Business Machines, Inc., http://www.apache.org. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  */

57
58 package clients.zipcode;
59
60 import java.io.IOException JavaDoc;
61 import java.io.Writer JavaDoc;
62
63 import org.apache.soap.Utils;
64 import org.apache.soap.rpc.SOAPContext;
65 import org.apache.soap.util.Bean;
66 import org.apache.soap.util.xml.NSStack;
67 import org.apache.soap.util.xml.QName;
68 import org.apache.soap.util.xml.XMLJavaMappingRegistry;
69 import org.apache.wsif.providers.soap.apachesoap.PartSerializer;
70 import org.w3c.dom.Element JavaDoc;
71 import org.w3c.dom.Node JavaDoc;
72
73 /**
74  * @version 1.0
75  * @author
76  */

77 public class LiteralSerializer implements PartSerializer {
78
79     private Object JavaDoc customBean;
80     private javax.xml.namespace.QName JavaDoc customBeanQName;
81
82     /*
83      * @see PartSerializer#setCustomBean(Object)
84      */

85     public void setPart(Object JavaDoc aCustomBean) {
86         this.customBean = aCustomBean;
87     }
88
89     /*
90      * @see PartSerializer#getCustomBean()
91      */

92     public Object JavaDoc getPart() {
93         return this.customBean;
94     }
95
96     public Object JavaDoc getPart(Class JavaDoc resultClass) {
97         return null;
98     }
99     /*
100      * @see Serializer#marshall(String, Class, Object, Object, Writer, NSStack, XMLJavaMappingRegistry, SOAPContext)
101      */

102     public void marshall(
103         String JavaDoc inScopeEncStyle,
104         Class JavaDoc javaType,
105         Object JavaDoc src,
106         Object JavaDoc context,
107         Writer JavaDoc sink,
108         NSStack nsStack,
109         XMLJavaMappingRegistry xjmr,
110         SOAPContext ctx)
111         throws IllegalArgumentException JavaDoc, IOException JavaDoc {
112
113         // Invoke utility method to get the FormatHandler
114
PartFormatHandler fh = new ShortZipCodeFormatHandler();
115         fh.setCustomBean(customBean);
116         fh.setCustomBeanQName(this.customBeanQName);
117         Element JavaDoc element = fh.getElement();
118         Utils.marshallNode((Node JavaDoc) element, sink);
119     }
120
121     /*
122      * @see Deserializer#unmarshall(String, QName, Node, XMLJavaMappingRegistry, SOAPContext)
123      */

124     public Bean unmarshall(
125         String JavaDoc inScopeEncStyle,
126         QName elementType,
127         Node JavaDoc src,
128         XMLJavaMappingRegistry xjmr,
129         SOAPContext ctx)
130         throws IllegalArgumentException JavaDoc {
131         // Invoke utility method to get the FormatHandler
132
// PartFormatHandler fh = getFormatHandler(customBean, customBeanQName);
133
PartFormatHandler fh = new ShortZipCodeResponseFormatHandler();
134         fh.setElement((Element JavaDoc) src);
135         this.customBean = fh.getCustomBean();
136         return new Bean(this.customBean.getClass(), this.customBean);
137     }
138
139     private PartFormatHandler getFormatHandler(Object JavaDoc bean, QName namespace) {
140
141         // Invoke utility method to get the FormatHandler
142
// PartFormatHandler fh = (PartFormatHandler)JCAUtil.getFormatHandler(bean, namespace, "soap", "literal");
143
// return fh;
144
return null;
145     }
146
147     /**
148      * Gets the customBeanQName.
149      * @return Returns a QName
150      */

151     public javax.xml.namespace.QName JavaDoc getPartQName() {
152         return customBeanQName;
153     }
154
155     /**
156      * Sets the customBeanQName.
157      * @param customBeanQName The customBeanQName to set
158      */

159     public void setPartQName(javax.xml.namespace.QName JavaDoc customBeanQName) {
160         this.customBeanQName = customBeanQName;
161
162     }
163
164 }
165
Popular Tags