annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLWriterImpl.java @ 0:049760c677de default tip

Galaxy WSExtensions added successfully
author uga-galaxy-group
date Tue, 05 Jul 2011 19:34:18 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1 /*
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
2 * (c) Copyright IBM Corp 2001, 2005
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
3 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
4
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
5 package edu.uga.cs.lsdis.meteors.wadls.xml;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
6
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
7 import java.io.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8 import java.net.URISyntaxException;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9 import java.util.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 import javax.xml.namespace.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11 import javax.xml.parsers.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12 import org.w3c.dom.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 import org.xml.sax.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 import javax.wadls.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 import javax.wadls.extensions.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 import javax.wadls.factory.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18 import javax.wadls.xml.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 import edu.uga.cs.lsdis.meteors.wadls.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 import edu.uga.cs.lsdis.meteors.wadls.util.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 import edu.uga.cs.lsdis.meteors.wadls.util.xml.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25 * This class describes a collection of methods
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 * that allow a WSDL-S model to be written to a writer
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 * in an XML format that follows the WSDL schema.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 * @author Zixin Wu (wuzixin@uga.edu)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 * @author Matthew J. Duftler
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31 * @author Nirmal Mukhi
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 public class WADLWriterImpl implements WADLWriter
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36 * Sets the specified feature to the specified value.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 * <p>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 * There are no minimum features that must be supported.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 * <p>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 * All feature names must be fully-qualified, Java package style. All
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 * names starting with javax.wsdls. are reserved for features defined
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 * by the JWSDL specification. It is recommended that implementation-
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 * specific features be fully-qualified to match the package name
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 * of that implementation. For example: com.abc.featureName
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 * @param name the name of the feature to be set.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47 * @param value the value to set the feature to.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 * @throws IllegalArgumentException if the feature name is not recognized.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 * @see #getFeature(String)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 public void setFeature(String name, boolean value)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 throws IllegalArgumentException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 if (name == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56 throw new IllegalArgumentException("Feature name must not be null.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 throw new IllegalArgumentException("Feature name '" + name +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61 "' not recognized.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 * Gets the value of the specified feature.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 * @param name the name of the feature to get the value of.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 * @throws IllegalArgumentException if the feature name is not recognized.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 * @see #setFeature(String, boolean)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 public boolean getFeature(String name) throws IllegalArgumentException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 if (name == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76 throw new IllegalArgumentException("Feature name must not be null.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 throw new IllegalArgumentException("Feature name '" + name +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 "' not recognized.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 protected void printDefinition(Application def, PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 if (def == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 return;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93 if (def.getPrefix(Constants.NS_URI_WADL) == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 String prefix = "wsdl";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 int subscript = 0;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 while (def.getNamespace(prefix) != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100 prefix = "wsdl" + subscript++;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103 def.addNamespace(prefix, Constants.NS_URI_WADL);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 if (def.getPrefix(Constants.NS_URI_WADLS) == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108 String prefix = Constants.PREFIX_WSDLS;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 int subscript = 0;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111 while (def.getNamespace(prefix) != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113 prefix = Constants.PREFIX_WSDLS + subscript++;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
114 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
115
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116 def.addNamespace(prefix, Constants.NS_URI_WADLS);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120 DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121 Constants.ELEM_DEFINITIONS,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124 pw.print('<' + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
125
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
126 QName name = def.getQName();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127 String targetNamespace = def.getTargetNamespace();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128 Map namespaces = def.getNamespaces();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 if (name != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 DOMUtils.printAttribute(Constants.ATTR_NAME, name.getLocalPart(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135 DOMUtils.printAttribute(Constants.ATTR_TARGET_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 targetNamespace,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
138
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
139 printNamespaceDeclarations(namespaces, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
140
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 pw.println('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143 printDocumentation(def.getDocumentationElement(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 printIncludes(def.getIncludes(), def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145 printTypes(def.getParams(), def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146 printResources(def.getResources(), def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
148
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
150
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
151
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
152 pw.println("</" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154 pw.flush();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
155 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
156
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
157
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
158
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
159
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
160
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
161
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
162
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
163
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
164 protected void printResources(Map portTypes,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
165 Application def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
166 PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
167 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
168 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
169 if (portTypes != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
170 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
171 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
172 DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
173 Constants.ELEM_RESOURCE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
174 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
175 Iterator portTypeIterator = portTypes.values().iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
176
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
177 while (portTypeIterator.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
178 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
179 Resource portType = (Resource)portTypeIterator.next();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
180
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
181 if (!portType.isUndefined())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
182 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
183 pw.print(" <" + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
184
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
185 QName name = portType.getQName();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
186
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
187 if (name != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
188 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
189 DOMUtils.printAttribute(Constants.ATTR_NAME,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
190 name.getLocalPart(),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
191 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
192 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
193
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
194
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
195
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
196 pw.println('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
197
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
198 printDocumentation(portType.getDocumentationElement(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
199 printOperations(portType.getMethods(), def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
200 pw.println(" </" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
201 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
202 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
203 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
204 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
205
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
206 protected void printOperations(List operations,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
207 Application def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
208 PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
209 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
210 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
211 if (operations != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
212 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
213 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
214 DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
215 Constants.ELEM_OPERATION,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
216 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
217 Iterator operationIterator = operations.iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
218
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
219 while (operationIterator.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
220 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
221 Method operation = (Method)operationIterator.next();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
222
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
223 if (!operation.isUndefined())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
224 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
225 pw.print(" <" + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
226
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
227 DOMUtils.printAttribute(Constants.ATTR_NAME,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
228 operation.getName(),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
229 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
230 //write modelReference
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
231 ModelReference mr = operation.getModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
232 if (mr != null){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
233 if (mr.getNamespace() != null) //has namespaceURI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
234 mr.setPrefix(def.getPrefix(mr.getNamespace().toString()));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
235 else //no namespaceURI, try prefix
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
236 mr.setNamespace(def.getNamespace(mr.getPrefix()));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
237 if (mr.getNamespace() == null) //error
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
238 throw new WADLSException(WADLSException.UNBOUND_PREFIX,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
239 "Cannot find the namespace for the prefix " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
240 mr.getPrefix());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
241 DOMUtils.printQualifiedAttribute(Constants.Q_ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
242 mr.value(),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
243 def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
244 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
245 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
246
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
247 DOMUtils.printAttribute(Constants.ATTR_PARAMETER_ORDER,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
248 StringUtils.getNMTokens(operation.getParameterOrdering()),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
249 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
250
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
251 pw.println('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
252
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
253 printDocumentation(operation.getDocumentationElement(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
254 // Must be OperationType.REQUEST_RESPONSE.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
255 printInput(operation.getRequest(), def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
256 printOutput(operation.getResponse(), def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
257
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
258 printPreCondition(operation.getPreCondition(), def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
259 printEffect(operation.getEffect(), def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
260
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
261
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
262
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
263
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
264
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
265
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
266
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
267 pw.println(" </" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
268 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
269 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
270 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
271 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
272
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
273 protected void printPreCondition(PreCondition preCondition,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
274 Application def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
275 PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
276 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
277 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
278 if (preCondition != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
279 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
280 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
281 DOMUtils.getQualifiedValue(Constants.NS_URI_WADLS,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
282 Constants.ELEM_PRECON,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
283 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
284
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
285 pw.print(" <" + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
286
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
287 DOMUtils.printAttribute(Constants.ATTR_NAME, preCondition.getName(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
288
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
289 //write modelReference
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
290 ModelReference mr = preCondition.getModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
291 if (mr != null){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
292 if (mr.getNamespace() != null) //has namespaceURI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
293 mr.setPrefix(def.getPrefix(mr.getNamespace().toString()));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
294 else //no namespaceURI, try prefix
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
295 mr.setNamespace(def.getNamespace(mr.getPrefix()));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
296 if (mr.getNamespace() == null) //error
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
297 throw new WADLSException(WADLSException.UNBOUND_PREFIX,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
298 "Cannot find the namespace for the prefix " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
299 mr.getPrefix());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
300 DOMUtils.printQualifiedAttribute(Constants.Q_ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
301 mr.value(),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
302 def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
303 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
304 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
305
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
306 DOMUtils.printAttribute(Constants.ATTR_EXPRESSION, preCondition.getExpression(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
307
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
308 // printExtensibilityAttributes(PreCondition.class, preCondition, def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
309
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
310 Element docEl = preCondition.getDocumentationElement();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
311
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
312 if (docEl == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
313 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
314 pw.println("/>");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
315 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
316 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
317 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
318 pw.print('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
319
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
320 printDocumentation(docEl, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
321
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
322 pw.println("</" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
323 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
324 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
325 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
326 protected void printEffect(Effect effect,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
327 Application def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
328 PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
329 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
330 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
331 if (effect != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
332 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
333 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
334 DOMUtils.getQualifiedValue(Constants.NS_URI_WADLS,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
335 Constants.ELEM_EFFECT,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
336 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
337
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
338 pw.print(" <" + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
339
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
340 DOMUtils.printAttribute(Constants.ATTR_NAME, effect.getName(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
341
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
342 //write modelReference
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
343 ModelReference mr = effect.getModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
344 if (mr != null){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
345 if (mr.getNamespace() != null) //has namespaceURI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
346 mr.setPrefix(def.getPrefix(mr.getNamespace().toString()));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
347 else //no namespaceURI, try prefix
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
348 mr.setNamespace(def.getNamespace(mr.getPrefix()));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
349 if (mr.getNamespace() == null) //error
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
350 throw new WADLSException(WADLSException.UNBOUND_PREFIX,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
351 "Cannot find the namespace for the prefix " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
352 mr.getPrefix());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
353 DOMUtils.printQualifiedAttribute(Constants.Q_ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
354 mr.value(),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
355 def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
356 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
357 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
358
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
359 DOMUtils.printAttribute(Constants.ATTR_EXPRESSION, effect.getExpression(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
360
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
361 // printExtensibilityAttributes(Effect.class, effect, def, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
362
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
363 Element docEl = effect.getDocumentationElement();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
364
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
365 if (docEl == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
366 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
367 pw.println("/>");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
368 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
369 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
370 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
371 pw.print('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
372
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
373 printDocumentation(docEl, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
374
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
375 pw.println("</" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
376 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
377 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
378 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
379
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
380 protected void printInput(Request input,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
381 Application def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
382 PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
383 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
384 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
385 if (input != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
386 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
387 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
388 DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
389 Constants.ELEM_INPUT,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
390 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
391
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
392 pw.print(" <" + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
393
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
394 DOMUtils.printAttribute(Constants.ATTR_NAME, input.getName(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
395
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
396 Element docEl = input.getDocumentationElement();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
397
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
398 if (docEl == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
399 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
400 pw.println("/>");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
401 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
402 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
403 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
404 pw.println('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
405
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
406 printDocumentation(docEl, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
407
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
408 pw.println(" </" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
409 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
410 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
411 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
412
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
413 protected void printOutput(Response output,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
414 Application def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
415 PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
416 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
417 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
418 if (output != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
419 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
420 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
421 DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
422 Constants.ELEM_OUTPUT,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
423 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
424
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
425 pw.print(" <" + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
426
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
427 DOMUtils.printAttribute(Constants.ATTR_NAME, output.getName(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
428
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
429 Element docEl = output.getDocumentationElement();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
430
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
431 if (docEl == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
432 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
433 pw.println("/>");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
434 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
435 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
436 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
437 pw.println('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
438
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
439 printDocumentation(docEl, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
440
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
441 pw.println(" </" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
442 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
443 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
444 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
445
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
446
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
447
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
448
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
449
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
450 protected void printDocumentation(Element docElement,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
451 PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
452 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
453 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
454 if (docElement != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
455 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
456 DOM2Writer.serializeAsXML(docElement, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
457
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
458 pw.println();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
459 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
460 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
461
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
462 protected void printTypes(Params types, Application def, PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
463 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
464 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
465 if (types != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
466 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
467 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
468 DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
469 Constants.ELEM_TYPES,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
470 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
471 pw.print(" <" + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
472
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
473 pw.println('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
474
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
475 printDocumentation(types.getDocumentationElement(), pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
476
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
477
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
478
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
479
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
480
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
481 pw.println(" </" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
482 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
483 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
484
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
485 protected void printIncludes(Map imports, Application def, PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
486 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
487 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
488 if (imports != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
489 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
490 String tagName =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
491 DOMUtils.getQualifiedValue(Constants.NS_URI_WADL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
492 Constants.ELEM_INCLUDE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
493 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
494 Iterator importListIterator = imports.values().iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
495
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
496 while (importListIterator.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
497 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
498 List importList = (List)importListIterator.next();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
499 Iterator importIterator = importList.iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
500
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
501 while (importIterator.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
502 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
503 Include importDef = (Include)importIterator.next();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
504
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
505 pw.print(" <" + tagName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
506
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
507 DOMUtils.printAttribute(Constants.ATTR_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
508 importDef.getNamespaceURI(),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
509 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
510 DOMUtils.printAttribute(Constants.ATTR_LOCATION,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
511 importDef.getLocationURI(),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
512 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
513
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
514
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
515
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
516 Element docEl = importDef.getDocumentationElement();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
517
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
518 if (docEl == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
519 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
520 pw.println("/>");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
521 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
522 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
523 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
524 pw.println('>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
525
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
526 printDocumentation(docEl, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
527
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
528 pw.println(" </" + tagName + '>');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
529 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
530 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
531 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
532 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
533 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
534
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
535 protected void printNamespaceDeclarations(Map namespaces,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
536 PrintWriter pw)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
537 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
538 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
539 if (namespaces != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
540 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
541 Set keys = namespaces.keySet();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
542 Iterator keyIterator = keys.iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
543
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
544 while (keyIterator.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
545 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
546 String prefix = (String)keyIterator.next();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
547
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
548 if (prefix == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
549 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
550 prefix = "";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
551 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
552
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
553 DOMUtils.printAttribute(Constants.ATTR_XMLNS +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
554 (!prefix.equals("") ? ":" + prefix : ""),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
555 (String)namespaces.get(prefix),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
556 pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
557 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
558 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
559 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
560
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
561
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
562 private static Document getDocument(InputSource inputSource,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
563 String desc) throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
564 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
565 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
566
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
567 factory.setNamespaceAware(true);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
568 factory.setValidating(false);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
569
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
570 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
571 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
572 DocumentBuilder builder = factory.newDocumentBuilder();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
573 Document doc = builder.parse(inputSource);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
574
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
575 return doc;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
576 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
577 catch (Throwable t)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
578 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
579 throw new WADLSException(WADLSException.XSDPARSER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
580 "Problem parsing '" + desc + "'.",
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
581 t);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
582 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
583 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
584
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
585 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
586 * Return a document generated from the specified WSDL model.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
587 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
588 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
589 public Document getDocument(Application wsdlDef) throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
590 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
591 StringWriter sw = new StringWriter();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
592 PrintWriter pw = new PrintWriter(sw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
593
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
594 writeWADL(wsdlDef, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
595
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
596 StringReader sr = new StringReader(sw.toString());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
597 InputSource is = new InputSource(sr);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
598
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
599 return getDocument(is, "- WSDL Document -");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
600 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
601
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
602 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
603 * Write the specified WSDL definition to the specified Writer.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
604 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
605 * @param wsdlDef the WSDL definition to be written.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
606 * @param sink the Writer to write the xml to.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
607 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
608 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
609 public void writeWADL(Application wsdlDef, Writer sink)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
610 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
611 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
612 PrintWriter pw = new PrintWriter(sink);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
613 String javaEncoding = (sink instanceof OutputStreamWriter)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
614 ? ((OutputStreamWriter)sink).getEncoding()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
615 : null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
616
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
617 String xmlEncoding = DOM2Writer.java2XMLEncoding(javaEncoding);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
618
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
619 if (xmlEncoding == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
620 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
621 throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
622 "Unsupported Java encoding for writing " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
623 "wsdl file: '" + javaEncoding + "'.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
624 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
625
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
626 pw.println(Constants.XML_DECL_START +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
627 xmlEncoding +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
628 Constants.XML_DECL_END);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
629
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
630 printDefinition(wsdlDef, pw);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
631 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
632
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
633 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
634 * Write the specified WSDL definition to the specified OutputStream.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
635 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
636 * @param wsdlDef the WSDL definition to be written.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
637 * @param sink the OutputStream to write the xml to.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
638 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
639 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
640 public void writeWADL(Application wsdlDef, OutputStream sink)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
641 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
642 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
643 Writer writer = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
644
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
645 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
646 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
647 writer = new OutputStreamWriter(sink, "UTF8");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
648 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
649 catch (UnsupportedEncodingException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
650 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
651 e.printStackTrace();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
652
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
653 writer = new OutputStreamWriter(sink);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
654 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
655
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
656 writeWADL(wsdlDef, writer);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
657 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
658
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
659 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
660 * A test driver.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
661 *<code>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
662 *<pre>Usage:</pre>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
663 *<p>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
664 *<pre> java edu.uga.cs.lsdis.meteors.wsdls.xml.WSDLWriterImpl filename|URL</pre>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
665 *<p>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
666 *<pre> This test driver simply reads a WSDL document into a model
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
667 * (using a WSDLReader), and then serializes it back to
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
668 * standard out. In effect, it performs a round-trip test on
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
669 * the specified WSDL document.</pre>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
670 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
671 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
672 public static void main(String[] argv) throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
673 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
674 if (argv.length == 1)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
675 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
676 WADLFactory wsdlFactory = WADLFactory.newInstance();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
677 WADLReader wsdlReader = wsdlFactory.newWADLReader();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
678 WADLWriter wsdlWriter = wsdlFactory.newWADLWriter();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
679
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
680 wsdlWriter.writeWADL(wsdlReader.readWADL(null, argv[0]), System.out);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
681 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
682 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
683 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
684 System.err.println("Usage:");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
685 System.err.println();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
686 System.err.println(" java " + WADLWriterImpl.class.getName() +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
687 " filename|URL");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
688 System.err.println();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
689 System.err.println("This test driver simply reads a WSDL document " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
690 "into a model (using a WSDLReader), and then " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
691 "serializes it back to standard out. In effect, " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
692 "it performs a round-trip test on the specified " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
693 "WSDL document.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
694 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
695 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
696 }