annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/xml/WADLReaderImpl.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.*;
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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11 import javax.xml.namespace.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12 import javax.xml.parsers.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 import org.w3c.dom.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14 import org.xml.sax.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 import javax.wadls.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 import javax.wadls.extensions.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18 import javax.wadls.extensions.schema.Schema;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19 import javax.wadls.extensions.schema.SchemaReference;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 import javax.wadls.factory.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 import javax.wadls.xml.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 import javax.wadls.Effect;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23 import javax.wadls.PreCondition;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 import javax.wadls.extensions.ExtensionRegistry;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 import javax.wadls.extensions.ExtensibilityElement;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 import javax.wadls.extensions.ExtensionDeserializer;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 import javax.wadls.factory.WADLFactory;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 import edu.uga.cs.lsdis.meteors.wadls.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 import edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaConstants;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 import edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaSerializer;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 import edu.uga.cs.lsdis.meteors.wadls.util.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36 import edu.uga.cs.lsdis.meteors.wadls.util.xml.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 import edu.uga.cs.lsdis.meteors.wadls.Constants;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 import edu.uga.cs.lsdis.meteors.wadls.util.xml.QNameUtils;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 import edu.uga.cs.lsdis.meteors.wadls.util.StringUtils;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 import edu.uga.cs.lsdis.meteors.wadls.util.xml.XPathUtils;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 import edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaDeserializer;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 * This class describes a collection of methods
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 * that enable conversion of a WSDL-S document (in XML,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47 * following the WSDL schema described in the WSDL
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 * specification) into a WSDL-S model.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 * @author Zixin Wu (wuzixin@uga.edu)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 * @author Matthew J. Duftler
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 * @author Nirmal Mukhi
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 public class WADLReaderImpl implements WADLReader
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 static {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 Constants.setSemanticExtensionURI(Constants.SemanticExtensionType.SAWADL);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 // Used for determining the style of operations.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61 private static final List STYLE_ONE_WAY =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 Arrays.asList(new String[]{Constants.ELEM_INPUT});
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 private static final List STYLE_REQUEST_RESPONSE =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 Arrays.asList(new String[]{Constants.ELEM_INPUT, Constants.ELEM_OUTPUT});
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 private static final List STYLE_SOLICIT_RESPONSE =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 Arrays.asList(new String[]{Constants.ELEM_OUTPUT, Constants.ELEM_INPUT});
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 private static final List STYLE_NOTIFICATION =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 Arrays.asList(new String[]{Constants.ELEM_OUTPUT});
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 protected boolean verbose = true;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 protected ExtensionRegistry extReg = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 protected boolean importDocuments = true;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 protected boolean parseSAWSDL = false;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 protected String factoryImplName = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 protected WADLLocator loc = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 //Contains all schemas used by this wsdl, either in-line or nested
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 //via wsdl imports or schema imports, includes or redefines
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 protected Map allSchemas = new Hashtable();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 private String WORKING_SEMANTIC_NAMESPACE = Constants.NS_URI_SAWADL;
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 * Sets the specified feature to the specified value.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 * <p>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87 * The supported features are:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 * <p>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 * <table border=1>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 * <tr>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 * <th>Name</th>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 * <th>Description</th>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93 * <th>Default Value</th>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 * </tr>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 * <tr>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 * <td><center>javax.wsdls.verbose</center></td>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 * <td>If set to true, status messages will be displayed.</td>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 * <td><center>true</center></td>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 * </tr>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100 * <tr>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 * <td><center>javax.wsdls.importDocuments</center></td>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102 * <td>If set to true, imported WSDL documents will be
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103 * retrieved and processed.</td>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 * <td><center>true</center></td>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105 * </tr>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 * </table>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107 * <p>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108 * All feature names must be fully-qualified, Java package style. All
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 * names starting with javax.wsdls. are reserved for features defined
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110 * by the JWSDL specification. It is recommended that implementation-
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111 * specific features be fully-qualified to match the package name
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112 * of that implementation. For example: com.abc.featureName
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
114 * @param name the name of the feature to be set.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
115 * @param value the value to set the feature to.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116 * @throws IllegalArgumentException if the feature name is not recognized.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 * @see #getFeature(String)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119 public void setFeature(String name, boolean value)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120 throws IllegalArgumentException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122 if (name == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124 throw new IllegalArgumentException("Feature name must not be null.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
125 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
126
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127 if (name.equals(Constants.FEATURE_VERBOSE))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129 verbose = value;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131 else if (name.equals(Constants.FEATURE_IMPORT_DOCUMENTS))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 importDocuments = value;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134 } else if(name.equals(Constants.FEATURE_PARSE_SAWADL)) {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135 if(value) {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 WORKING_SEMANTIC_NAMESPACE = Constants.NS_URI_SAWADL;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137 Constants.setSemanticExtensionURI(Constants.SemanticExtensionType.SAWADL);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
138 } else {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
139 WORKING_SEMANTIC_NAMESPACE = Constants.NS_URI_WADLS;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
140 Constants.setSemanticExtensionURI(Constants.SemanticExtensionType.WADLS);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142 parseSAWSDL = value;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146 throw new IllegalArgumentException("Feature name '" + name +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147 "' not recognized.");
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 * Gets the value of the specified feature.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154 * @param name the name of the feature to get the value of.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
155 * @throws IllegalArgumentException if the feature name is not recognized.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
156 * @see #setFeature(String, boolean)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
157 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
158 public boolean getFeature(String name) throws IllegalArgumentException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
159 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
160 if (name == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
161 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
162 throw new IllegalArgumentException("Feature name must not be null.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
163 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
164
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
165 if (name.equals(Constants.FEATURE_VERBOSE))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
166 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
167 return verbose;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
168 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
169 else if (name.equals(Constants.FEATURE_IMPORT_DOCUMENTS))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
170 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
171 return importDocuments;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
172 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
173 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
174 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
175 throw new IllegalArgumentException("Feature name '" + name +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
176 "' not recognized.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
177 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
178 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
179
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
180 public void setExtensionRegistry(ExtensionRegistry extReg)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
181 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
182 this.extReg = extReg;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
183 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
184
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
185 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
186 * Get the extension registry, if one was set. Default is
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
187 * 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 public ExtensionRegistry getExtensionRegistry()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
190 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
191 return extReg;
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 * Set the extension registry to be used when reading
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
196 * WSDL documents into a WSDL definition. If an
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
197 * extension registry is set, that is the extension
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
198 * registry that will be set as the extensionRegistry
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
199 * property of the definitions resulting from invoking
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
200 * readWSDL(...). Default is null.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
201 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
202 * @param extReg the extension registry to use for new
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
203 * definitions
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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
207
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
208
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
209 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
210 * Set a different factory implementation to use for
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
211 * creating definitions when reading WSDL documents.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
212 * As some WSDLReader implementations may only be
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
213 * capable of creating definitions using the same
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
214 * factory implementation from which the reader was
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
215 * obtained, this method is optional. Default is null.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
216 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
217 * @param factoryImplName the fully-qualified class name of the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
218 * class which provides a concrete implementation of the abstract
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
219 * class WSDLFactory.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
220 * @throws UnsupportedOperationException if this method
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
221 * is invoked on an implementation which does not
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
222 * support it.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
223 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
224 public void setFactoryImplName(String factoryImplName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
225 throws UnsupportedOperationException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
226 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
227 this.factoryImplName = factoryImplName;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
228 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
229
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
230 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
231 * Get the factoryImplName, if one was set. Default is null.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
232 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
233 public String getFactoryImplName()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
234 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
235 return factoryImplName;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
236 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
237
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
238 protected Application parseApplications(String documentBaseURI,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
239 Element defEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
240 Map importedDefs)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
241 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
242 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
243 checkElementName(defEl, Constants.Q_ELEM_DEFINITIONS);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
244
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
245 WADLFactory factory = (factoryImplName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
246 ? WADLFactory.newInstance(factoryImplName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
247 : WADLFactory.newInstance();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
248 Application def = factory.newApplication();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
249
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
250
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
251
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
252 String name = DOMUtils.getAttribute(defEl, Constants.ATTR_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
253 String targetNamespace = DOMUtils.getAttribute(defEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
254 Constants.ATTR_TARGET_NAMESPACE);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
255 System.out.println("Target Name Space:"+targetNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
256 NamedNodeMap attrs = defEl.getAttributes();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
257
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
258 if (documentBaseURI != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
259 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
260 def.setDocumentBaseURI(documentBaseURI);
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 if (name != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
264 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
265 def.setQName(new QName(targetNamespace, name));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
266 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
267
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
268 if (targetNamespace != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
269 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
270 def.setTargetNamespace(targetNamespace);
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 int size = attrs.getLength();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
274
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
275 for (int i = 0; i < size; i++)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
276 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
277 Attr attr = (Attr)attrs.item(i);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
278 String namespaceURI = attr.getNamespaceURI();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
279 String localPart = attr.getLocalName();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
280 String value = attr.getValue();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
281
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
282
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
283 if (namespaceURI != null && namespaceURI.equals(Constants.NS_URI_XMLNS))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
284 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
285 if (localPart != null && !localPart.equals(Constants.ATTR_XMLNS))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
286 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
287 System.out.println("LocalPart is set to "+localPart+" and it's value is "+value);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
288 def.addNamespace(localPart, value);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
289 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
290 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
291 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
292 System.out.println("LocalPart is set to null and it's value is "+value);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
293 def.addNamespace(null, value);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
294 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
295 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
296 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
297
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
298 Element tempEl = DOMUtils.getFirstChildElement(defEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
299 System.out.println("%%%% ");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
300 System.out.println("%%%% First Child: "+tempEl.getNodeName());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
301
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
302 while (tempEl != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
303 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
304 if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
305 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
306 System.out.println("%%%% Documentation Element:"+tempEl.getTextContent());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
307 def.setDocumentationElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
308 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
309 else if (QNameUtils.matches(Constants.Q_ELEM_GRAMMARS, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
310 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
311 System.out.println("%%%% Grammars element is parsed.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
312 def.setGrammars(parseGrammars(tempEl, def));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
313 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
314 else if (QNameUtils.matches(Constants.Q_ELEM_RESOURCES, tempEl)){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
315
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
316 System.out.println("%%%% Resources Element is parsed.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
317 String path = DOMUtils.getAttribute(tempEl, Constants.ATTR_BASE);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
318 def.setResourcesPath(path);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
319 System.out.println("Resources path is:"+path);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
320 Element tempEl1 = DOMUtils.getFirstChildElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
321 for (; tempEl1 != null; tempEl1 = DOMUtils.getNextSiblingElement(tempEl1)){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
322 if (QNameUtils.matches(Constants.Q_ELEM_RESOURCE, tempEl1))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
323 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
324 def.addResource(parseResource(tempEl1, def));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
325 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
326 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
327
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
328 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
329 else{
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
330
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
331 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
332
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
333 tempEl = DOMUtils.getNextSiblingElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
334 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
335
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
336 return 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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
339 protected Include parseInclude(Element importEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
340 Application def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
341 Map importedDefs)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
342 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
343 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
344 Include importDef = def.createInclude();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
345
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
346 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
347 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
348 String namespaceURI = DOMUtils.getAttribute(importEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
349 Constants.ATTR_NAMESPACE);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
350 String locationURI = DOMUtils.getAttribute(importEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
351 Constants.ATTR_LOCATION);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
352 String contextURI = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
353
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
354 if (namespaceURI != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
355 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
356 importDef.setNamespaceURI(namespaceURI);
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 if (locationURI != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
360 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
361 importDef.setLocationURI(locationURI);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
362
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
363 if (importDocuments)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
364 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
365 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
366 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
367 contextURI = def.getDocumentBaseURI();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
368 Application importedDef = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
369 InputStream inputStream = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
370 InputSource inputSource = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
371 URL url = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
372
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
373 if (loc != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
374 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
375 inputSource = loc.getImportInputSource(contextURI, locationURI);
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 We now have available the latest import URI. This might
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
379 differ from the locationURI so check the importedDefs for it
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
380 since it is this that we pass as the documentBaseURI later.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
381 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
382 String liu = loc.getLatestImportURI();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
383
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
384 importedDef = (Application)importedDefs.get(liu);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
385 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
386 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
387 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
388 URL contextURL = (contextURI != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
389 ? StringUtils.getURL(null, contextURI)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
390 : null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
391
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
392 url = StringUtils.getURL(contextURL, locationURI);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
393 importedDef = (Application)importedDefs.get(url.toString());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
394
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
395 if (importedDef == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
396 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
397 inputStream = StringUtils.getContentAsInputStream(url);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
398
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
399 if (inputStream != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
400 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
401 inputSource = new InputSource(inputStream);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
402 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
403 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
404 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
405
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
406 if (importedDef == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
407 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
408 if (inputSource == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
409 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
410 throw new WADLSException(WADLSException.OTHER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
411 "Unable to locate imported document " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
412 "at '" + locationURI + "'" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
413 (contextURI == null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
414 ? "."
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
415 : ", relative to '" + contextURI +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
416 "'."));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
417 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
418
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
419 inputSource.setSystemId(url.toString());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
420 Document doc = getDocument(inputSource, url.toString());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
421
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
422 if (inputStream != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
423 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
424 inputStream.close();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
425 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
426
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
427 Element documentElement = doc.getDocumentElement();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
428
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
429 /*
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
430 Check if it's a wsdl document.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
431 If it's not, don't retrieve and process it.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
432 This should later be extended to allow other types of
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
433 documents to be retrieved and processed, such as schema
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
434 documents (".xsd"), etc...
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
435 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
436 if (QNameUtils.matches(Constants.Q_ELEM_DEFINITIONS,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
437 documentElement))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
438 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
439 if (verbose)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
440 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
441 System.out.println("Retrieving document at '" + locationURI +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
442 "'" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
443 (contextURI == null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
444 ? "."
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
445 : ", relative to '" + contextURI + "'."));
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 String urlString =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
449 (loc != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
450 ? loc.getLatestImportURI()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
451 : (url != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
452 ? url.toString()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
453 : locationURI;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
454
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
455 importedDef = readWADL(urlString,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
456 documentElement,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
457 importedDefs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
458 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
459 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
460 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
461 QName docElementQName = QNameUtils.newQName(documentElement);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
462
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
463 if (SchemaConstants.XSD_QNAME_LIST.contains(docElementQName))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
464 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
465 WADLFactory factory =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
466 (factoryImplName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
467 ? WADLFactory.newInstance(factoryImplName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
468 : WADLFactory.newInstance();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
469
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
470 importedDef = factory.newApplication();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
471
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
472
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
473 String urlString =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
474 (loc != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
475 ? loc.getLatestImportURI()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
476 : (url != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
477 ? url.toString()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
478 : locationURI;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
479
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
480 importedDef.setDocumentBaseURI(urlString);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
481
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
482 Params types = importedDef.createParams();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
483 importedDef.setParams(types);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
484 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
485 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
486 }
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 (importedDef != 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 importDef.setApplication(importedDef);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
491 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
492 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
493 catch (WADLSException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
494 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
495 throw e;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
496 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
497 catch (Throwable t)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
498 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
499 throw new WADLSException(WADLSException.OTHER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
500 "Unable to resolve imported document at '" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
501 locationURI +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
502 (contextURI == null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
503 ? "'." : "', relative to '" + contextURI + "'")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
504 , t);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
505 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
506 } //end importDocs
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
507 } //end locationURI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
508
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
509 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
510 catch (WADLSException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
511 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
512 if (e.getLocation() == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
513 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
514 e.setLocation(XPathUtils.getXPathExprFromNode(importEl));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
515 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
516 else
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 definitions are being parsed recursively for nested imports
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
519 //the exception location must be built up recursively too so
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
520 //prepend this element's xpath to exception location.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
521 String loc = XPathUtils.getXPathExprFromNode(importEl) + e.getLocation();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
522 e.setLocation(loc);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
523 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
524
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
525 throw e;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
526 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
527
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
528 Element tempEl = DOMUtils.getFirstChildElement(importEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
529
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
530 while (tempEl != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
531 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
532 if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
533 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
534 importDef.setDocumentationElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
535 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
536 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
537 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
538 DOMUtils.throwWADLException(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
539 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
540
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
541 tempEl = DOMUtils.getNextSiblingElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
542 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
543
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
544
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
545 return importDef;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
546
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
547 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
548
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
549
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
550
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
551 protected Grammars parseGrammars(Element typesEl, Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
552 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
553 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
554 Grammars grammars = def.createGrammars();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
555 List<String> schemaList =new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
556 List<Schema> docElement =new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
557 List<String> targetNS =new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
558 Element tempEl = DOMUtils.getFirstChildElement(typesEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
559 QName tempElType;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
560
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
561 while (tempEl != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
562 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
563 tempElType = QNameUtils.newQName(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
564
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
565 if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
566 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
567 grammars.setDocumentationElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
568 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
569 else if (QNameUtils.matches(Constants.Q_ELEM_INCLUDE, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
570 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
571 String xsd = DOMUtils.getAttribute(tempEl, Constants.ELEM_HREF);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
572 schemaList.add(xsd);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
573 System.out.println("Xsd element in Grammars tag:"+xsd);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
574
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
575 docElement.add(parseSchema(tempEl,def));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
576 //targetNS.add(parseSchemaNS(tempEl,def));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
577 List remainingAttrs = DOMUtils.getAttributes(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
578 //the element qname indicates it is a schema.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
579 String modelReference = DOMUtils.getAttributeNS(tempEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
580 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
581 Constants.ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
582 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
583 System.out.println("XSD Element's model reference is:"+modelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
584 if (modelReference != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
585 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
586 try {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
587 parseModelReference(modelReference, def, grammars);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
588 } catch (URISyntaxException e) {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
589 // TODO Auto-generated catch block
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
590 e.printStackTrace();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
591 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
592 /*ModelReference mr = def.createModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
593 mr.valueOf(modelReference, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
594 mr.setParent(preCondition);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
595 preCondition.addModelReference(mr);*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
596 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
597
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
598 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
599
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
600 tempEl = DOMUtils.getNextSiblingElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
601 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
602 grammars.setSchemas(this.allSchemas);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
603 Map temp = grammars.getSchemas();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
604 System.out.println("Schemas added to grammars class:"+temp.size());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
605 return grammars;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
606 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
607
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
608
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
609 protected Schema parseSchema(Element el,Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
610 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
611 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
612 /*
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
613 * This method returns ExtensibilityElement rather than Schema because we
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
614 * do not insist that a suitable XSD schema deserializer is registered.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
615 * PopulatedExtensionRegistry registers SchemaDeserializer by default, but
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
616 * if the user chooses not to register a suitable deserializer then the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
617 * UnknownDeserializer will be used, returning an UnknownExtensibilityElement.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
618 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
619
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
620
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
621 Schema schema = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
622 SchemaReference schemaRef = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
623 try
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 QName elementType = QNameUtils.newQName(el);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
627
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
628 edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaDeserializer scDS = new edu.uga.cs.lsdis.meteors.wadls.extensions.schema.SchemaDeserializer();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
629
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
630 //Now unmarshall the DOM element.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
631 Schema ee =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
632 scDS.unmarshall(elementType, el, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
633
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
634 if (ee instanceof Schema)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
635 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
636
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
637 schema = (Schema) ee;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
638 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
639 String location = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
640
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
641 //Keep track of parsed schemas to avoid duplicating Schema objects
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
642 //through duplicate or circular references (eg: A imports B imports A).
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
643 if (schema.getDocumentBaseURI() != 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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
646
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
647 this.allSchemas.put(schema.getDocumentBaseURI(), schema);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
648 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
649
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
650 ArrayList allSchemaRefs = new ArrayList();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
651
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
652 Collection ic = schema.getImports().values();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
653
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
654
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
655 Iterator importsIterator = ic.iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
656 while(importsIterator.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
657 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
658 allSchemaRefs.addAll( (Collection) importsIterator.next() );
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
659 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
660
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
661 allSchemaRefs.addAll(schema.getIncludes());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
662 allSchemaRefs.addAll(schema.getRedefines());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
663
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
664 //Then, retrieve the schema referred to by each schema reference. If the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
665 //schema has been read in previously, use the existing schema object.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
666 //Otherwise unmarshall the DOM element into a new schema object.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
667
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
668 ListIterator schemaRefIterator = allSchemaRefs.listIterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
669
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
670
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
671 while(schemaRefIterator.hasNext()){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
672
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
673 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
674 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
675 schemaRef = (SchemaReference) schemaRefIterator.next();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
676
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
677 if (schemaRef.getSchemaLocationURI() == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
678 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
679
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
680 //cannot get the referenced schema, so ignore this schema reference
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
681 continue;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
682 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
683
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
684 if (verbose)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
685 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
686 System.out.println("change: Retrieving schema at '" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
687 schemaRef.getSchemaLocationURI() +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
688 (schema.getDocumentBaseURI() == null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
689 ? "'."
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
690 : "', relative to '" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
691 schema.getDocumentBaseURI() + "'."));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
692 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
693
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
694
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
695 InputStream inputStream = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
696 InputSource inputSource = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
697
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
698
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
699
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
700 //This is the child schema referred to by the schemaReference
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
701 Schema referencedSchema = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
702
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
703 //This is the child schema's location obtained from the WSDLLocator or the URL
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
704
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
705
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
706 if (loc != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
707 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
708
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
709 //Try to get the referenced schema using the wsdl locator
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
710 inputSource = loc.getImportInputSource(
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
711 schema.getDocumentBaseURI(), schemaRef.getSchemaLocationURI());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
712
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
713 if (inputSource == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
714 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
715 throw new WADLSException(WADLSException.OTHER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
716 "Unable to locate with a locator "
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
717 + "the schema referenced at '"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
718 + schemaRef.getSchemaLocationURI()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
719 + "' relative to document base '"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
720 + schema.getDocumentBaseURI() + "'");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
721 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
722 location = loc.getLatestImportURI();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
723
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
724
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
725 //if a schema from this location has been read previously, use it.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
726 referencedSchema = (Schema) this.allSchemas.get(location);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
727 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
728 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
729 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
730 // We don't have a wsdl locator, so try to retrieve the schema by its URL
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
731
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
732 String contextURI = schema.getDocumentBaseURI();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
733 URL contextURL = (contextURI != null) ? StringUtils.getURL(null, contextURI) : null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
734 //System.out.println("%%%% Context URL OF SCHEMA:"+contextURL);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
735 URL url = StringUtils.getURL(contextURL, schemaRef.getSchemaLocationURI());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
736 //System.out.println("%%%%URL :"+url);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
737 location = url.toExternalForm();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
738 //System.out.println("%%%% schema location:"+location);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
739 //if a schema from this location has been retrieved previously, use it.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
740 referencedSchema = (Schema) this.allSchemas.get(location);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
741
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
742 if (referencedSchema == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
743 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
744 //System.out.println("%%%% Referenced Schema is equal to null");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
745 // We haven't read this schema in before so do it now
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
746 inputStream = url.openStream();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
747
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
748 if (inputStream != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
749 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
750 inputSource = new InputSource(inputStream);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
751 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
752
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
753 if (inputSource == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
754 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
755 throw new WADLSException(WADLSException.OTHER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
756 "Unable to locate with a url "
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
757 + "the document referenced at '"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
758 + schemaRef.getSchemaLocationURI()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
759 + "'"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
760 + (contextURI == null ? "." : ", relative to '"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
761 + contextURI + "'."));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
762 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
763 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
764
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
765 } //end if loc
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
766
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
767 // If we have not previously read the schema, get its DOM element now.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
768 if (referencedSchema == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
769 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
770 //System.out.println("%%%% Referenced Schema is equal to null 2");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
771 inputSource.setSystemId(location);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
772 Document doc = getDocument(inputSource, location);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
773
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
774 if (inputStream != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
775 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
776 inputStream.close();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
777 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
778
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
779 Element documentElement = doc.getDocumentElement();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
780 NodeList nodeList = documentElement.getChildNodes();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
781
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
782 /*for(int i=0; i<nodeList.getLength(); i++){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
783 Node childNode = nodeList.item(i);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
784 System.out.println("Children$$$$ : "+childNode.getTextContent());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
785 // Do something with childNode...
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
786 }*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
787 //System.out.println("#####Child Nodes:"+documentElement.getChildNodes());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
788 //System.out.println("%%%% documentElement:"+ documentElement.getNodeName());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
789 // If it's a schema doc process it, otherwise the schema reference remains null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
790
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
791 QName docElementQName = QNameUtils.newQName(documentElement);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
792
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
793 if (SchemaConstants.XSD_QNAME_LIST.contains(docElementQName))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
794 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
795 //We now need to call parseSchema recursively to parse the referenced
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
796 //schema. The document base URI of the referenced schema will be set to
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
797 //the document base URI of the current schema plus the schemaLocation in
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
798 //the schemaRef. We cannot explicitly pass in a new document base URI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
799 //to the schema deserializer, so instead we will create a dummy
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
800 //Definition and set its documentBaseURI to the new document base URI.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
801 //We can leave the other definition fields empty because we know
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
802 //that the SchemaDeserializer.unmarshall method uses the definition
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
803 //parameter only to get its documentBaseURI. If the unmarshall method
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
804 //implementation changes (ie: its use of definition changes) we may need
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
805 //to rethink this approach.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
806 //System.out.println("%%%%%SchemaConstants.XSD_QNAME_LIST.contains(docElementQName)"+docElementQName.getLocalPart());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
807
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
808 WADLFactory factory = (factoryImplName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
809 ? WADLFactory.newInstance(factoryImplName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
810 : WADLFactory.newInstance();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
811 Application dummyDef = factory.newApplication();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
812
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
813 dummyDef.setDocumentBaseURI(location);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
814 //System.out.println("%%%% End of Parse Schema");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
815 //By this point, we know we have a SchemaDeserializer registered
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
816 //so we can safely cast the ExtensibilityElement to a Schema.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
817 referencedSchema = (Schema) parseSchema( documentElement,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
818 dummyDef);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
819 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
820
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
821 } //end if referencedSchema
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
822
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
823 schemaRef.setReferencedSchema(referencedSchema);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
824 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
825 catch (WADLSException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
826 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
827 throw e;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
828 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
829 catch (Throwable t)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
830 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
831 throw new WADLSException(WADLSException.OTHER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
832 "An error occurred trying to resolve schema referenced at '"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
833 + schemaRef.getSchemaLocationURI()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
834 + "'"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
835 + (schema.getDocumentBaseURI() == null ? "." : ", relative to '"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
836 + schema.getDocumentBaseURI() + "'."),
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
837 t);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
838 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
839
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
840 } //end while loop
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
841
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
842 return schema;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
843
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
844 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
845 catch (WADLSException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
846 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
847 if (e.getLocation() == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
848 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
849 e.setLocation(XPathUtils.getXPathExprFromNode(el));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
850 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
851 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
852 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
853 //If this method has been called recursively for nested schemas
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
854 //the exception location must be built up recursively too so
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
855 //prepend this element's xpath to exception location.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
856 String loc = XPathUtils.getXPathExprFromNode(el) + e.getLocation();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
857 e.setLocation(loc);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
858 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
859
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
860 throw e;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
861 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
862
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
863 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
864
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
865
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
866
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
867
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
868 protected Resource parseResource(Element portTypeEl, Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
869 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
870 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
871 Resource portType = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
872 String path = DOMUtils.getAttribute(portTypeEl, Constants.RESOURCE_ATTR_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
873 List remainingAttrs = DOMUtils.getAttributes(portTypeEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
874 //read modelReference
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
875 //String modelReference= null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
876 if (path != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
877 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
878 QName resourceName = new QName(def.getTargetNamespace(), path);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
879 System.out.println("Resource Path:"+path);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
880 System.out.println("ResourceName:"+resourceName.toString());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
881
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
882 portType = def.getResource(resourceName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
883
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
884 if (portType == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
885 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
886 portType = def.createResource();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
887 portType.setQName(resourceName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
888 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
889 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
890 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
891 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
892 portType = def.createResource();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
893 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
894
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
895 // Whether it was retrieved or created, the definition has been found.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
896 portType.setUndefined(false);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
897 String modelReference = DOMUtils.getAttributeNS(portTypeEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
898 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
899 Constants.ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
900 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
901 System.out.println("Resource modelreference:"+modelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
902 if (modelReference != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
903 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
904 parseModelReference(modelReference, def, portType);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
905 /*ModelReference mr = def.createModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
906 mr.valueOf(modelReference, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
907 mr.setParent(preCondition);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
908 preCondition.addModelReference(mr);*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
909 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
910
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
911 Element tempEl = DOMUtils.getFirstChildElement(portTypeEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
912
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
913 while (tempEl != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
914 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
915 if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
916 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
917 portType.setDocumentationElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
918 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
919 else if (QNameUtils.matches(Constants.Q_ELEM_OPERATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
920 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
921 Method op = parseMethod(tempEl, portType, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
922
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
923 if (op != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
924 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
925 portType.addMethod(op);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
926 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
927 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
928 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
929 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
930 DOMUtils.throwWADLException(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
931 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
932
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
933 tempEl = DOMUtils.getNextSiblingElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
934 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
935
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
936 return portType;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
937 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
938
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
939 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
940 * This is for Ajith and Kats. Just make sure we handle the SAWSDL and WSDLS namespaces properly.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
941 * The point being that we still might have to support wsdls and hence we want to see if we can use this operation with an internal
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
942 * flag indicating if the parser is being used in the context of WSDLS or SAWSDL.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
943 * @param opEl
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
944 * @param portType
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
945 * @param def
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
946 * @return
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
947 * @throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
948 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
949 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
950 protected Method parseMethod(Element opEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
951 Resource portType,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
952 Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
953 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
954 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
955 Method op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
956 List remainingAttrs = DOMUtils.getAttributes(opEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
957 String name = DOMUtils.getAttribute(opEl, Constants.ID_NAME, remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
958 //read modelReference
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
959 //String modelReference= null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
960
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
961 String parameterOrderStr = DOMUtils.getAttribute(opEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
962 Constants.ATTR_PARAMETER_ORDER,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
963 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
964
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
965
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
966 Element tempEl = DOMUtils.getFirstChildElement(opEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
967 List messageOrder = new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
968 Element docEl = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
969 Request input = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
970 Response output = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
971 PreCondition preCondition = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
972 Effect effect = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
973 List extElements = new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
974 boolean retrieved = true;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
975
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
976 while (tempEl != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
977 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
978 if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
979 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
980 docEl = tempEl;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
981 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
982 else if (QNameUtils.matches(Constants.Q_ELEM_INPUT, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
983 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
984 input = parseRequest(tempEl, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
985
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
986 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
987 else if (QNameUtils.matches(Constants.Q_ELEM_PRECON, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
988 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
989 preCondition = parsePreCondition(tempEl, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
990 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
991 else if (QNameUtils.matches(Constants.Q_ELEM_EFFECT, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
992 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
993 effect = parseEffect(tempEl, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
994
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
995 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
996 else if (QNameUtils.matches(Constants.Q_ELEM_OUTPUT, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
997 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
998 output = parseResponse(tempEl, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
999 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1000 tempEl = DOMUtils.getNextSiblingElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1001 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1002
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1003 if (name != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1004 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1005 String inputName = (input != null ? input.getName() : null);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1006 String outputName = (output != null ? output.getName() : null);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1007
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1008 op = portType.getMethod(name, inputName, outputName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1009
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1010 if (op != null && !op.isUndefined())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1011 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1012 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1013 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1014
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1015 if (op != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1016 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1017 if (inputName == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1018 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1019 Request tempIn = op.getRequest();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1020
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1021 if (tempIn != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1022 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1023 if (tempIn.getName() != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1024 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1025 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1026 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1027 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1028 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1029 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1030
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1031 if (op != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1032 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1033 if (outputName == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1034 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1035 Response tempOut = op.getResponse();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1036
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1037 if (tempOut != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1038 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1039 if (tempOut.getName() != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1040 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1041 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1042 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1043 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1044 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1045 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1046
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1047 if (op == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1048 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1049 op = def.createMethod();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1050 op.setName(name);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1051 retrieved = false;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1052 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1053 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1054 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1055 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1056 op = def.createMethod();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1057 retrieved = false;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1058 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1059
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1060 // Whether it was retrieved or created, the definition has been found.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1061 op.setUndefined(false);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1062
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1063 if (parameterOrderStr != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1064 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1065 op.setParameterOrdering(StringUtils.parseNMTokens(parameterOrderStr));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1066 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1067
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1068 if (docEl != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1069 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1070 op.setDocumentationElement(docEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1071 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1072
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1073 if (input != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1074 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1075 op.setRequest(input);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1076 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1077
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1078 if (output != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1079 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1080 op.setResponse(output);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1081 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1082
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1083 if (preCondition != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1084 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1085 op.setPreCondition(preCondition);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1086 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1087 String modelReference = DOMUtils.getAttributeNS(opEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1088 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1089 Constants.ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1090 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1091 System.out.println("Model Reference of method:"+modelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1092 if (modelReference != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1093 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1094 parseModelReference(modelReference, def, op);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1095 /*ModelReference mr = def.createModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1096 mr.valueOf(modelReference, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1097 mr.setParent(preCondition);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1098 preCondition.addModelReference(mr);*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1099 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1100 if (effect != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1101 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1102 op.setEffect(effect);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1103 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1104
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1105
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1106 if (retrieved)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1107 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1108 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1109 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1110
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1111 return op;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1112 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1113
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1114
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1115
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1116
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1117 protected Request parseRequest(Element inputEl, Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1118 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1119 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1120 Request input = def.createRequest();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1121 List<String> inputXSDList = new ArrayList<String>(10);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1122 List<Param> paramList = new ArrayList<Param>(20);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1123 Element tempEl = DOMUtils.getFirstChildElement(inputEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1124 List remainingAttrs = DOMUtils.getAttributes(inputEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1125 String modelReference = DOMUtils.getAttributeNS(inputEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1126 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1127 Constants.ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1128 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1129 System.out.println("Model reference for request:"+modelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1130 if (modelReference != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1131 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1132 try {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1133 parseModelReference(modelReference, def, input);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1134 } catch (URISyntaxException e) {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1135 // TODO Auto-generated catch block
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1136 e.printStackTrace();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1137 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1138 /*ModelReference mr = def.createModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1139 mr.valueOf(modelReference, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1140 mr.setParent(preCondition);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1141 preCondition.addModelReference(mr);*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1142 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1143 while (tempEl != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1144 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1145 if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1146 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1147 input.setDocumentationElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1148 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1149 else if (QNameUtils.matches(Constants.Q_ELEM_REPRESENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1150 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1151 String inputXSD = DOMUtils.getAttribute(tempEl, Constants.REQUEST_ELEMENT_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1152 //input.setName(inputXSD);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1153 inputXSDList.add(inputXSD);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1154 System.out.println("InPut XSD : "+inputXSD);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1155 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1156 else if (QNameUtils.matches(Constants.Q_ELEM_PARAM, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1157 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1158 System.out.println("New paramter is added to request");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1159 Param param = new ParamImpl();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1160 List remainingParamAttrs = DOMUtils.getAttributes(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1161 String parammodelReference = DOMUtils.getAttributeNS(tempEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1162 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1163 Constants.ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1164 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1165 String liftingschema = DOMUtils.getAttributeNS(tempEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1166 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1167 Constants.ATTR_LIFTINGSCHEMAMAPPING,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1168 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1169 String loweringschema = DOMUtils.getAttributeNS(tempEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1170 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1171 Constants.ATTR_LOWERINGSCHEMAMAPPING,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1172 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1173
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1174 param.setModelreference(parammodelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1175 param.setLiftingschemamapping(liftingschema);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1176 param.setLoweringschemamapping(loweringschema);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1177 //param.setModelreference(liftingschema);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1178 //param.setModelreference(loweringschema);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1179
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1180 String style = DOMUtils.getAttribute(tempEl, Constants.PARAM_STYLE);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1181 System.out.println("Param Style:"+style);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1182 String type = DOMUtils.getAttribute(tempEl, Constants.PARAM_TYPE);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1183 System.out.println("Param Type:"+type);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1184
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1185 param.setName(DOMUtils.getAttribute(tempEl, Constants.PARAM_NAME));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1186 param.setDefault1(DOMUtils.getAttribute(tempEl, Constants.PARAM_DEFAULT));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1187 param.setRequired(DOMUtils.getAttribute(tempEl, Constants.PARAM_REQUIRED));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1188
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1189
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1190 if(type!=null){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1191 param.setType(type);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1192 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1193
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1194 List<String> optionValue = new ArrayList<String>(30);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1195 Element paramoption = DOMUtils.getFirstChildElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1196
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1197
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1198 for (; paramoption != null; paramoption = DOMUtils.getNextSiblingElement(paramoption))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1199 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1200 if(paramoption.getLocalName().toString().equals("option")){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1201 optionValue.add(DOMUtils.getAttribute(paramoption, Constants.OPTION_VALUE));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1202 System.out.println("Param Option Value:"+DOMUtils.getAttribute(paramoption, Constants.OPTION_VALUE));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1203 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1204 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1205
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1206 param.setOptionvalue(optionValue);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1207
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1208
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1209 paramList.add(param);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1210
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1211 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1212 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1213 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1214 DOMUtils.throwWADLException(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1215 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1216 tempEl = DOMUtils.getNextSiblingElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1217 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1218
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1219 input.setInputXSDList(inputXSDList);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1220 input.setParamList(paramList);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1221 return input;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1222 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1223
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1224 protected Response parseResponse(Element outputEl, Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1225 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1226 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1227 Response output = def.createResponse();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1228 List<String> outputXSDList = new ArrayList<String>(10);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1229 List<Param> paramList = new ArrayList<Param>(20);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1230 String name = DOMUtils.getAttribute(outputEl, Constants.ATTR_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1231 QName messageName = getQualifiedAttributeValue(outputEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1232 Constants.ATTR_MESSAGE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1233 Constants.ELEM_OUTPUT,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1234 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1235
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1236 if (name != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1237 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1238 output.setName(name);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1239 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1240 List remainingAttrs = DOMUtils.getAttributes(outputEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1241 String modelReference = DOMUtils.getAttributeNS(outputEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1242 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1243 Constants.ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1244 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1245 System.out.println("Model reference for response:"+modelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1246 if (modelReference != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1247 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1248 try {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1249 parseModelReference(modelReference, def, output);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1250 } catch (URISyntaxException e) {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1251 // TODO Auto-generated catch block
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1252 e.printStackTrace();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1253 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1254 /*ModelReference mr = def.createModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1255 mr.valueOf(modelReference, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1256 mr.setParent(preCondition);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1257 preCondition.addModelReference(mr);*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1258 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1259 Element tempEl = DOMUtils.getFirstChildElement(outputEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1260
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1261 while (tempEl != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1262 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1263 if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1264 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1265 output.setDocumentationElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1266 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1267 else if (QNameUtils.matches(Constants.Q_ELEM_REPRESENTATION, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1268 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1269 String outputXSD = DOMUtils.getAttribute(tempEl, Constants.REQUEST_ELEMENT_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1270 //output.setName(outputXSD);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1271 outputXSDList.add(outputXSD);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1272 System.out.println("OutPut XSD:"+outputXSD);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1273
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1274 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1275 else if (QNameUtils.matches(Constants.Q_ELEM_PARAM, tempEl))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1276 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1277 Param param = new ParamImpl();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1278 List remainingParamAttrs = DOMUtils.getAttributes(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1279 String parammodelReference = DOMUtils.getAttributeNS(tempEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1280 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1281 Constants.ATTR_MODELREF,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1282 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1283 String liftingschema = DOMUtils.getAttributeNS(tempEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1284 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1285 Constants.ATTR_LIFTINGSCHEMAMAPPING,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1286 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1287 String loweringschema = DOMUtils.getAttributeNS(tempEl,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1288 WORKING_SEMANTIC_NAMESPACE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1289 Constants.ATTR_LOWERINGSCHEMAMAPPING,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1290 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1291
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1292 param.setModelreference(parammodelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1293 param.setModelreference(liftingschema);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1294 param.setModelreference(loweringschema);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1295
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1296 String style = DOMUtils.getAttribute(tempEl, Constants.PARAM_STYLE);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1297 String type = DOMUtils.getAttribute(tempEl, Constants.PARAM_TYPE);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1298
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1299 param.setName(DOMUtils.getAttribute(tempEl, Constants.PARAM_NAME));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1300 param.setDefault1(DOMUtils.getAttribute(tempEl, Constants.PARAM_DEFAULT));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1301 param.setRequired(DOMUtils.getAttribute(tempEl, Constants.PARAM_REQUIRED));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1302
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1303 if(style.equalsIgnoreCase("query") && type!=null){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1304 param.setType(type);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1305 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1306 else{
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1307 List<String> optionValue = new ArrayList<String>(30);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1308 Element paramoption = DOMUtils.getFirstChildElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1309
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1310
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1311 for (; paramoption != null; paramoption = DOMUtils.getNextSiblingElement(paramoption))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1312 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1313 optionValue.add(DOMUtils.getAttribute(paramoption, Constants.OPTION_VALUE));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1314 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1315
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1316 param.setOptionvalue(optionValue);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1317 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1318
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1319 paramList.add(param);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1320
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1321 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1322
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1323 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1324 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1325 DOMUtils.throwWADLException(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1326 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1327
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1328 tempEl = DOMUtils.getNextSiblingElement(tempEl);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1329 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1330
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1331 output.setInputXSDList(outputXSDList);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1332 output.setParamList(paramList);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1333
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1334 return output;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1335 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1336
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1337 protected PreCondition parsePreCondition(Element preConEl, Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1338 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1339 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1340 PreCondition preCondition = def.createPreCondition();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1341
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1342 //String name = DOMUtils.getAttribute(preConEl, Constants.ATTR_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1343 String attrModelReference = DOMUtils.getQualifiedValue(WORKING_SEMANTIC_NAMESPACE, Constants.ATTR_MODELREF, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1344 String modelReference = DOMUtils.getAttribute(preConEl, attrModelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1345 String expression = DOMUtils.getAttribute(preConEl, Constants.ATTR_EXPRESSION);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1346 System.out.println("Pre Condition:"+expression);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1347
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1348
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1349 if (modelReference != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1350 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1351 parseModelReference(modelReference, def, preCondition);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1352 /*ModelReference mr = def.createModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1353 mr.valueOf(modelReference, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1354 mr.setParent(preCondition);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1355 preCondition.addModelReference(mr);*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1356 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1357
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1358 if (expression != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1359 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1360 preCondition.setExpression(expression);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1361 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1362
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1363
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1364 // parseExtensibilityAttributes(preConEl, PreCondition.class, preCondition, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1365
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1366 return preCondition;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1367 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1368
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1369 protected Effect parseEffect(Element effectEl, Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1370 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1371 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1372 Effect effect = def.createEffect();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1373 //String name = DOMUtils.getAttribute(effectEl, Constants.ATTR_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1374 String attrModelReference = DOMUtils.getQualifiedValue(WORKING_SEMANTIC_NAMESPACE, Constants.ATTR_MODELREF, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1375 String modelReference = DOMUtils.getAttribute(effectEl, attrModelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1376 String expression = DOMUtils.getAttribute(effectEl, Constants.ATTR_EXPRESSION);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1377 System.out.println("EFFECT:"+expression);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1378
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1379 /*if (name != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1380 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1381 effect.setName(name);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1382 }*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1383
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1384 if (modelReference != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1385 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1386 parseModelReference(modelReference, def, effect);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1387 /*ModelReference mr = def.createModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1388 mr.valueOf(modelReference, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1389 mr.setParent(effect);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1390 effect.addModelReference(mr);*/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1391 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1392
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1393 if (expression != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1394 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1395 effect.setExpression(expression);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1396 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1397
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1398
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1399 // parseExtensibilityAttributes(effectEl, Effect.class, effect, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1400
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1401 return effect;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1402 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1403
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1404 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1405 * This method should be used for elements that support extension
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1406 * attributes because it does not track unexpected remaining attributes.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1407 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1408 private static QName getQualifiedAttributeValue(Element el,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1409 String attrName,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1410 String elDesc,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1411 Application def)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1412 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1413 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1414 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1415 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1416 return DOMUtils.getQualifiedAttributeValue(el,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1417 attrName,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1418 elDesc,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1419 false,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1420 def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1421 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1422 catch (WADLSException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1423 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1424 if (e.getFaultCode().equals(WADLSException.NO_PREFIX_SPECIFIED))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1425 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1426 String attrValue = DOMUtils.getAttribute(el, attrName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1427
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1428 return new QName(attrValue);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1429 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1430 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1431 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1432 throw e;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1433 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1434 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1435 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1436
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1437 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1438 * This method should be used for elements that do not support extension
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1439 * attributes because it tracks unexpected remaining attributes.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1440 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1441 private static QName getQualifiedAttributeValue(Element el,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1442 String attrName,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1443 String elDesc,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1444 Application def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1445 List remainingAttrs)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1446 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1447 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1448 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1449 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1450 return DOMUtils.getQualifiedAttributeValue(el,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1451 attrName,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1452 elDesc,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1453 false,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1454 def,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1455 remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1456 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1457 catch (WADLSException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1458 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1459 if (e.getFaultCode().equals(WADLSException.NO_PREFIX_SPECIFIED))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1460 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1461 String attrValue = DOMUtils.getAttribute(el, attrName, remainingAttrs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1462
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1463 return new QName(attrValue);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1464 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1465 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1466 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1467 throw e;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1468 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1469 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1470 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1471
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1472 private static void checkElementName(Element el, QName qname)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1473 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1474 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1475 System.out.println("Element Name:"+el);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1476 System.out.println("Q Name:"+qname.toString());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1477 if (!QNameUtils.matches(qname, el))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1478 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1479 WADLSException wsdlExc = new WADLSException(WADLSException.INVALID_WADL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1480 "Expected element '" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1481 qname + "'.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1482
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1483 wsdlExc.setLocation(XPathUtils.getXPathExprFromNode(el));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1484
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1485 throw wsdlExc;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1486 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1487 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1488
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1489 private static Document getDocument(InputSource inputSource,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1490 String desc) throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1491 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1492 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1493
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1494 factory.setNamespaceAware(true);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1495 factory.setValidating(false);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1496
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1497 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1498 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1499 DocumentBuilder builder = factory.newDocumentBuilder();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1500 Document doc = builder.parse(inputSource);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1501
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1502 return doc;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1503 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1504 catch (Throwable t)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1505 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1506 throw new WADLSException(WADLSException.XSDPARSER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1507 "Problem parsing '" + desc + "'.",
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1508 t);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1509 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1510 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1511
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1512 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1513 * Read the WSDL document accessible via the given input stream
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1514 * @param wsdlIS a InputStream for a WSDL XML definition
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1515 * @return the definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1516 * @throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1517 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1518 public Application readWADL(InputStream wsdlIS)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1519 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1520 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1521 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1522 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1523 InputSource inputSource = new InputSource(wsdlIS);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1524 Document doc = getDocument(inputSource, "");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1525
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1526 wsdlIS.close();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1527
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1528 //note that documentBaseURI will be null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1529 //importing wsdl or schema should use absolution path/URL
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1530 Application def = readWADL(null, doc);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1531
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1532 return def;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1533 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1534 catch (WADLSException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1535 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1536 throw e;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1537 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1538 catch (Throwable t)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1539 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1540 throw new WADLSException(WADLSException.OTHER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1541 "Unable to resolve imported document at '", t);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1542 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1543 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1544
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1545 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1546 * Read the WSDL document accessible via the specified
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1547 * URI into a WSDL definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1548 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1549 * @param wsdlURI a URI (can be a filename or URL) pointing to a
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1550 * WSDL XML definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1551 * @return the definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1552 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1553 public Application readWADL(String wsdlURI) throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1554 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1555 return readWADL(null, wsdlURI);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1556 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1557
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1558 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1559 * Read the WSDL document accessible via the specified
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1560 * URI into a WSDL definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1561 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1562 * @param contextURI the context in which to resolve the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1563 * wsdlURI, if the wsdlURI is relative. Can be null, in which
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1564 * case it will be ignored.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1565 * @param wsdlURI a URI (can be a filename or URL) pointing to a
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1566 * WSDL XML definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1567 * @return the definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1568 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1569 public Application readWADL(String contextURI, String wsdlURI)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1570 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1571 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1572 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1573 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1574 if (verbose)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1575 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1576 System.out.println("Retrieving document at '" + wsdlURI + "'" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1577 (contextURI == null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1578 ? "."
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1579 : ", relative to '" + contextURI + "'."));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1580 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1581
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1582 URL contextURL = (contextURI != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1583 ? StringUtils.getURL(null, contextURI)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1584 : null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1585 URL url = StringUtils.getURL(contextURL, wsdlURI);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1586 InputStream inputStream = url.openStream();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1587 InputSource inputSource = new InputSource(inputStream);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1588 inputSource.setSystemId(url.toString());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1589 Document doc = getDocument(inputSource, url.toString());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1590
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1591 inputStream.close();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1592
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1593 Application def = readWADL(url.toString(), doc);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1594
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1595 return def;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1596 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1597 catch (WADLSException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1598 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1599 throw e;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1600 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1601 catch (Throwable t)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1602 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1603 throw new WADLSException(WADLSException.OTHER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1604 "Unable to resolve imported document at '" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1605 wsdlURI +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1606 (contextURI == null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1607 ? "'."
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1608 : "', relative to '" + contextURI + "'.")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1609 , t);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1610 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1611 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1612
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1613 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1614 * Read the specified &lt;wsdl:definitions&gt; element into a WSDL
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1615 * definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1616 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1617 * @param documentBaseURI the document base URI of the WSDL definition
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1618 * described by the element. Will be set as the documentBaseURI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1619 * of the returned Definition. Can be null, in which case it
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1620 * will be ignored.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1621 * @param definitionsElement the &lt;wsdl:definitions&gt; element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1622 * @return the definition described by the element.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1623 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1624 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1625 public Application readWADL(String documentBaseURI,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1626 Element definitionsElement)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1627 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1628 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1629 return readWADL(documentBaseURI, definitionsElement, null);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1630 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1631
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1632 protected Application readWADL(String documentBaseURI,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1633 Element definitionsElement,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1634 Map importedDefs)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1635 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1636 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1637 return parseApplications(documentBaseURI, definitionsElement, importedDefs);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1638 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1639
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1640 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1641 * Read the specified WSDL document into a WSDL definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1642 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1643 * @param documentBaseURI the document base URI of the WSDL definition
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1644 * described by the document. Will be set as the documentBaseURI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1645 * of the returned Definition. Can be null, in which case it
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1646 * will be ignored.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1647 * @param wsdlDocument the WSDL document, an XML
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1648 * document obeying the WSDL schema.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1649 * @return the definition described in the document.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1650 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1651 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1652 public Application readWADL(String documentBaseURI, Document wsdlDocument)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1653 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1654 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1655 return readWADL(documentBaseURI, wsdlDocument.getDocumentElement());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1656 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1657
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1658 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1659 * Read a WSDL document into a WSDL definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1660 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1661 * @param documentBaseURI the document base URI of the WSDL definition
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1662 * described by the document. Will be set as the documentBaseURI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1663 * of the returned Definition. Can be null, in which case it
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1664 * will be ignored.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1665 * @param inputSource an InputSource pointing to the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1666 * WSDL document, an XML document obeying the WSDL schema.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1667 * @return the definition described in the document pointed to
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1668 * by the InputSource.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1669 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1670 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1671 public Application readWADL(String documentBaseURI, InputSource inputSource)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1672 throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1673 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1674 return readWADL(documentBaseURI,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1675 getDocument(inputSource, "- WSDL Document -"));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1676 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1677
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1678 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1679 * Read a WSDL document into a WSDL definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1680 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1681 * @param locator A WSDLLocator object used to provide InputSources
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1682 * pointing to the wsdl file.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1683 * @return the definition described in the document
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1684 * @throws URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1685 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1686 public Application readWADL(WADLLocator locator) throws WADLSException, URISyntaxException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1687 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1688 InputSource is = locator.getBaseInputSource();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1689 String base = locator.getBaseURI();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1690
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1691 if (is == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1692 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1693 throw new WADLSException(WADLSException.OTHER_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1694 "Unable to locate document at '" + base + "'.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1695 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1696
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1697 this.loc = locator;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1698
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1699 if (verbose)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1700 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1701 System.out.println("Retrieving document at '" + base + "'.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1702 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1703
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1704 return readWADL(base, is);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1705 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1706
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1707 protected List<ModelReference> parseModelReference (String modelReference, Application def, ModelReferenceExtensible op) throws URISyntaxException,WADLSException{
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1708 List <ModelReference> modelReferenceList= new ArrayList<ModelReference>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1709 String [] modelRefs= modelReference.split("\\s");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1710 ModelReference currentModelReference;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1711 for(int modelRefsIT= 0;modelRefsIT<modelRefs.length;modelRefsIT++){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1712 currentModelReference= def.createModelReference();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1713 currentModelReference.valueOf(modelRefs[modelRefsIT], def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1714 currentModelReference.setParent(op);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1715 modelReferenceList.add(currentModelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1716 op.addModelReference(currentModelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1717 }// end for modelRefsIT
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1718
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1719 return modelReferenceList;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1720
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1721
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1722 }// end method parseModelref
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1723
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1724 protected List<ModelReference> parseModelReference(String modelReferences, Application def) throws URISyntaxException, WADLSException {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1725 return ModelReferenceImpl.getModelReferences(modelReferences, def);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1726 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1727 }