001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)WsdlWriter.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi.wsdl2.impl;
030:
031: import com.sun.jbi.wsdl2.Description;
032: import com.sun.jbi.wsdl2.Definitions;
033: import com.sun.jbi.wsdl2.WsdlException;
034:
035: import java.io.IOException;
036: import java.io.OutputStream;
037: import java.io.Writer;
038:
039: import org.apache.xmlbeans.XmlOptions;
040:
041: import org.w3c.dom.Document;
042: import org.w3c.dom.Node;
043:
044: /**
045: * This class supplies a WSDL serializer, where the serialization is
046: * WSDL 2.0 compliant XML.
047: *
048: * @author Sun Microsystems, Inc.
049: */
050: final class WsdlWriter implements com.sun.jbi.wsdl2.WsdlWriter {
051: /**
052: * Return a document generated from the specified WSDL model.
053: *
054: * @param model The WSDL definitions component to be written
055: * @return A DOM document that reflects the contents of the given model
056: * @exception WsdlException When a problem reading the <code>model</code>
057: * occurs.
058: */
059: public Document getDocument(Description model) throws WsdlException {
060: Document result = null;
061: DescriptionImpl defs = (DescriptionImpl) model;
062:
063: if (defs != null) {
064: Node node = defs.getDocBean().newDomNode();
065:
066: if (node != null
067: && node.getNodeType() == Node.DOCUMENT_NODE) {
068: result = (Document) node;
069: }
070: }
071:
072: return result;
073: }
074:
075: /**
076: *
077: * @deprecated - replaced by getDocument(Description model)
078: *
079: */
080: public Document getDocument(Definitions model) throws WsdlException {
081: return getDocument((Description) model);
082: }
083:
084: /**
085: * Write the specified WSDL definition to the specified Writer.
086: *
087: * @param model The WSDL definitions component to be written
088: * @param sink The Writer to write the xml to
089: * @exception WsdlException When a problem reading the <code>model</code>
090: * occurs.
091: * @exception IOException When a problem writing to <code>sink</code>
092: * occurs.
093: */
094: public void writeDescription(Description model, Writer sink)
095: throws WsdlException, IOException {
096: DescriptionImpl defs = (DescriptionImpl) model;
097:
098: if (defs != null && sink != null) {
099: XmlOptions opts = new XmlOptions();
100:
101: opts.setSavePrettyPrint();
102: opts
103: .setSavePrettyPrintIndent(Constants.XML_PRETTY_PRINT_INDENT);
104: defs.getDocBean().save(sink, opts);
105: }
106:
107: return;
108: }
109:
110: /**
111: * @deprecated - replaced by writeDescription
112: */
113: public void writeWsdl(Definitions model, Writer sink)
114: throws WsdlException, IOException {
115: writeDescription((Description) model, sink);
116: }
117:
118: /**
119: * Write the specified WSDL definition to the specified OutputStream.
120: *
121: * @param model The WSDL definitions component to be written
122: * @param sink The OutputStream to write the XML to
123: * @exception WsdlException When a problem reading the <code>model</code>
124: * occurs.
125: * @exception IOException When a problem writing to <code>sink</code>
126: * occurs.
127: */
128: public void writeDescription(Description model, OutputStream sink)
129: throws WsdlException, IOException {
130: DescriptionImpl defs = (DescriptionImpl) model;
131:
132: if (defs != null && sink != null) {
133: XmlOptions opts = new XmlOptions();
134:
135: opts.setSavePrettyPrint();
136: opts
137: .setSavePrettyPrintIndent(Constants.XML_PRETTY_PRINT_INDENT);
138: defs.getDocBean().save(sink);
139: }
140:
141: return;
142: }
143:
144: /**
145: * @deprecated - replaced by writeDescription
146: */
147: public void writeWsdl(Definitions model, OutputStream sink)
148: throws WsdlException, IOException {
149: writeDescription((Description) model, sink);
150: }
151: }
|