KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > axis > encoding > ser > JAFDataHandlerDeserializer


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  *
5  * Copyright (c) 2001-2003 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 "Axis" 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. For more
52  * information on the Apache Software Foundation, please see
53  * <http://www.apache.org/>.
54  */

55
56 package org.jboss.axis.encoding.ser;
57
58 import org.jboss.axis.AxisFault;
59 import org.jboss.axis.attachments.AttachmentUtils;
60 import org.jboss.axis.encoding.DeserializationContext;
61 import org.jboss.axis.encoding.DeserializerImpl;
62 import org.jboss.axis.message.SOAPHandler;
63 import org.jboss.axis.soap.SOAPConstants;
64 import org.jboss.axis.utils.Messages;
65 import org.jboss.logging.Logger;
66 import org.xml.sax.Attributes JavaDoc;
67 import org.xml.sax.SAXException JavaDoc;
68
69 import javax.xml.namespace.QName JavaDoc;
70
71 /**
72  * JAFDataHandler Serializer
73  *
74  * @author Rick Rineholt
75  * Modified by Rich Scheuerle <scheu@us.ibm.com>
76  */

77 public class JAFDataHandlerDeserializer extends DeserializerImpl
78 {
79    private static Logger log = Logger.getLogger(JAFDataHandlerDeserializer.class.getName());
80
81    public void startElement(String JavaDoc namespace, String JavaDoc localName,
82                             String JavaDoc prefix, Attributes JavaDoc attributes,
83                             DeserializationContext context)
84            throws SAXException JavaDoc
85    {
86
87       if (!context.isDoneParsing())
88       {
89          if (myElement == null)
90          {
91             try
92             {
93                myElement = makeNewElement(namespace, localName, prefix, attributes, context);
94             }
95             catch (AxisFault axisFault)
96             {
97                throw new SAXException JavaDoc(axisFault);
98             }
99             context.pushNewElement(myElement);
100          }
101       }
102 // super.startElement(namespace, localName, qName, attributes, context);
103

104       SOAPConstants soapConstants = context.getMessageContext().getSOAPConstants();
105
106       QName JavaDoc type = context.getTypeFromAttributes(namespace,
107               localName,
108               attributes);
109       if (log.isDebugEnabled())
110       {
111          log.debug(Messages.getMessage("gotType00", "Deser", "" + type));
112       }
113
114       String JavaDoc href = attributes.getValue(soapConstants.getAttrHref());
115       if (href != null)
116       {
117          Object JavaDoc ref = context.getObjectByRef(href);
118          log.debug("About to getActivationDataHandler for: " + ref);
119          try
120          {
121             ref = AttachmentUtils.getActivationDataHandler((org.jboss.axis.Part)ref);
122          }
123          catch (AxisFault e)
124          {
125             log.debug("Failed to get activation data handler", e);
126          }
127
128          setValue(ref);
129       }
130    }
131
132    /**
133     * Deserializer interface called on each child element encountered in
134     * the XML stream.
135     */

136    public SOAPHandler onStartChild(String JavaDoc namespace,
137                                    String JavaDoc localName,
138                                    String JavaDoc prefix,
139                                    Attributes JavaDoc attributes,
140                                    DeserializationContext context)
141            throws SAXException JavaDoc
142    {
143       throw new SAXException JavaDoc(Messages.getMessage("noSubElements", namespace + ":" + localName));
144    }
145 }
146
Popular Tags