Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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