Source code: org/apache/axis/encoding/ser/castor/AxisContentHandler.java
1 /*
2 * The Apache Software License, Version 1.1
3 *
4 *
5 * Copyright (c) 2001 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 package org.apache.axis.encoding.ser.castor;
56
57 import org.apache.axis.encoding.SerializationContext;
58 import org.xml.sax.Attributes;
59 import org.xml.sax.SAXException;
60 import org.xml.sax.helpers.DefaultHandler;
61
62 import javax.xml.namespace.QName;
63 import java.io.IOException;
64
65 /**
66 * This ContentHandler delegates all serialization to an axis SerializationContext
67 *
68 * @author <a href="mailto:fabien.nisol@advalvas.be">Fabien Nisol</a>
69 */
70 public class AxisContentHandler extends DefaultHandler {
71 /**
72 * serialization context to delegate to
73 */
74 private SerializationContext context;
75
76 /**
77 * Creates a contentHandler delegate
78 *
79 * @param context : axis context to delegate to
80 */
81 public AxisContentHandler(SerializationContext context) {
82 super();
83 setContext(context);
84 }
85
86 /**
87 * Getter for property context.
88 *
89 * @return Value of property context.
90 */
91 public SerializationContext getContext() {
92 return context;
93 }
94
95 /**
96 * Setter for property context.
97 *
98 * @param context New value of property context.
99 */
100 public void setContext(SerializationContext context) {
101 this.context = context;
102 }
103
104 /**
105 * delegates to the serialization context
106 */
107 public void startElement(String uri, String localName, String qName,
108 Attributes attributes) throws SAXException {
109 try {
110 context.startElement(new QName(uri, localName), attributes);
111 } catch (IOException ioe) {
112 throw new SAXException(ioe);
113 }
114 }
115
116 /**
117 * delegates to the serialization context
118 */
119 public void endElement(String uri, String localName, String qName)
120 throws SAXException {
121 try {
122 context.endElement();
123 } catch (IOException ioe) {
124 throw new SAXException(ioe);
125 }
126 }
127
128 /**
129 * delegates to the serialization context
130 */
131 public void characters(char[] ch, int start, int length)
132 throws org.xml.sax.SAXException {
133 try {
134 context.writeChars(ch, start, length);
135 } catch (IOException ioe) {
136 throw new SAXException(ioe);
137 }
138 }
139 }
140