KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > axis > wsdl > toJava > JavaBeanFaultWriter


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 package org.jboss.axis.wsdl.toJava;
56
57 import org.jboss.axis.wsdl.symbolTable.TypeEntry;
58
59 import java.io.IOException JavaDoc;
60 import java.io.PrintWriter JavaDoc;
61 import java.util.Vector JavaDoc;
62
63 /**
64  * This is Wsdl2java's Complex Faylt Writer.
65  * It generates bean-like class for complexTypes used
66  * in a operation fault message.
67  */

68 public class JavaBeanFaultWriter extends JavaBeanWriter
69 {
70    /**
71     * Constructor.
72     *
73     * @param emitter
74     * @param type The type representing this class
75     * @param elements Vector containing the Type and name of each property
76     * @param extendType The type representing the extended class (or null)
77     * @param attributes Vector containing the attribute types and names
78     * @param helper Helper class writer
79     */

80    protected JavaBeanFaultWriter(Emitter emitter,
81                                  TypeEntry type,
82                                  Vector JavaDoc elements,
83                                  TypeEntry extendType,
84                                  Vector JavaDoc attributes,
85                                  JavaWriter helper)
86    {
87       super(emitter, type, elements,
88               extendType, attributes, helper);
89
90       // The Default Constructor is not JSR 101 v1.0 compliant, but
91
// is the only way that Axis can get something back over the wire.
92
// This will need to be changed when fault contents are supported
93
// over the wire.
94
enableDefaultConstructor = true;
95
96       // JSR 101 v1.0 requires a full constructor
97
enableFullConstructor = true;
98
99       // JSR 101 v1.0 does not support write access methods
100
enableSetters = true;
101    } // ctor
102

103    /**
104     * Returns the appropriate extends text
105     *
106     * @return "" or " extends <class> "
107     */

108    protected String JavaDoc getExtendsText()
109    {
110       // See if this class extends another class
111
String JavaDoc extendsText = super.getExtendsText();
112       if (extendsText.equals(""))
113       {
114          // JSR 101 compliant code should extend java.lang.Exception!
115
//extendsText = " extends java.lang.Exception ";
116
extendsText = " extends org.jboss.axis.AxisFault ";
117       }
118       return extendsText;
119    }
120
121    /**
122     * Write the Exception serialization code
123     * <p/>
124     * NOTE: This function is written in JavaFaultWriter.java also.
125     */

126    protected void writeFileFooter(PrintWriter JavaDoc pw) throws IOException JavaDoc
127    {
128       // We need to have the Exception class serialize itself
129
// with the correct namespace, which can change depending on which
130
// operation the exception is thrown from. We therefore have the
131
// framework call this generated routine with the correct QName,
132
// and allow it to serialize itself.
133

134       // method that serializes this exception (writeDetail)
135
pw.println();
136       pw.println(" /**");
137       pw.println(" * Writes the exception data to the faultDetails");
138       pw.println(" */");
139       pw.println(" public void writeDetails(javax.xml.namespace.QName qname, org.jboss.axis.encoding.SerializationContext context) throws java.io.IOException {");
140       pw.println(" context.serialize(qname, null, this);");
141       pw.println(" }");
142
143       super.writeFileFooter(pw);
144    } // writeFileFooter
145
} // class JavaBeanFaultWriter
146
Popular Tags