annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/src/lsdis/WADLParser.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 * Copyright (c) 2009 Srikalyan Swayampakula.. All rights reserved.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
3 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
4 * Author : Srikalyan Swayampakula. .
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
5 * Name of the File : WADLParser.java .
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
6 * Created on : Nov 22, 2009 at 5:30:47 PM .
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
7 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8 * Redistribution and use in source and binary forms, with or without
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9 * modification, are permitted provided that the following conditions
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 * are met:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12 * 1. Redistributions of source code must retain the above
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 * copyright notice, this list of conditions and the following
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14 * disclaimer.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 * 2. Redistributions in binary form must reproduce the above
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 * copyright notice, this list of conditions and the following
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 * disclaimer in the documentation and/or other materials
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18 * provided with the distribution.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19 * 3. Neither the name of the University of Georgia nor the names
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 * of its contributors may be used to endorse or promote
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 * products derived from this software without specific prior
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 * written permission.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 package lsdis;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 import java.io.File;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 import java.net.URI;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 import java.net.URL;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 import java.util.ArrayList;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 import java.util.List;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 import org.jdom.Attribute;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 import org.jdom.Document;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47 import org.jdom.Element;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 import org.jdom.Namespace;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 import org.jdom.input.SAXBuilder;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 import org.xml.sax.Attributes;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 * @author Srikalyan Swayampakula.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56 public class WADLParser
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 static Document currentDocument;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 static Element rootElement;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61 static Namespace wadlNamespace;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 public Application application;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 public WADLParser(URL fileURL) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 currentDocument = generateDocumentation(fileURL);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 rootElement = currentDocument.getRootElement();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 wadlNamespace = rootElement.getNamespace();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 application = getApplication();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 public Application getApplicationOfWADL()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 return application;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 private Document generateDocumentation(URL fileName) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 Document doc = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 SAXBuilder builder = new SAXBuilder();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 //doc = builder.build(new File(fileName.toURI()));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 doc = builder.build(fileName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 return doc;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 private Application getApplication() throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 List<Doc> docs = getDocs(rootElement);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 List<Resources> resources = getResources(rootElement);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 Grammar grammar = getGrammar(rootElement);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 return new Application(resources, docs, grammar, null);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 /***
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 * used to get docs list for an element eg. applicaiton.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 * @param e
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 * @return
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 private List<Doc> getDocs(Element e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105 List<Doc> docs = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 List<Element> xmlDoc = e.getChildren(WADLConstant.DOC, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107 if (xmlDoc != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 docs = new ArrayList<Doc>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110 for (Element e1 : xmlDoc)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112 Doc tempDoc = getDoc(e1);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113 if (tempDoc != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
114 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
115 docs.add(tempDoc);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119 return docs;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122 private Doc getDoc(Element e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124 if (e == 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 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128 String title = e.getAttributeValue(WADLConstant.DOC_TITLE);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 String lang = e.getAttributeValue(WADLConstant.DOC_LANG);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131 if (lang == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 List<Attribute> temp = e.getAttributes();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134 for (Attribute temp1 : temp)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 if((temp1.getName()).equals(WADLConstant.DOC_LANG))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137 lang=temp1.getValue();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
138 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
139 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
140 String innerText = e.getText();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 return new Doc(title, lang, innerText);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 private Grammar getGrammar(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
148 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
150 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
151 List<Include> includes = getIncludes(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
152 return new Grammar(docs, includes);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
155 private List<Include> getIncludes(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
156 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
157 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
158 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
159 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
160 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
161 List<Include> includes = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
162 List<Element> xmlIncludes = e.getChildren(WADLConstant.INCLUDE, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
163 if (xmlIncludes != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
164 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
165 includes = new ArrayList<Include>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
166 for (Element xmlInclude : xmlIncludes)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
167 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
168 Include tempInclude = getInclude(xmlInclude);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
169 if (tempInclude != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
170 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
171 includes.add(tempInclude);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
172 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
173 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
174 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
175 return includes;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
176 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
177
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
178 private Include getInclude(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
179 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
180 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
181 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
182 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
183 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
184 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
185 URI href = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
186 String tempHref = e.getAttributeValue(WADLConstant.INCLUDE_HREF);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
187 if (tempHref != 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 href = new URI(tempHref);
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 new Include(docs, href);
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 private List<Resources> getResources(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
195 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
196 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
197 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
198 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
199 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
200
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
201 List<Resources> resources = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
202 List<Element> xmlResources = e.getChildren(WADLConstant.RESOURCES, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
203 if (xmlResources != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
204 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
205 resources = new ArrayList<Resources>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
206 for (Element tempResources : xmlResources)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
207 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
208 Resources tempResource = getResourcesInstance(tempResources);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
209 if (tempResource != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
210 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
211 resources.add(tempResource);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
212 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
213 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
214 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
215
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
216 return resources;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
217
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
218 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
219
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
220 private Resources getResourcesInstance(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
221 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
222 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
223 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
224 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
225 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
226 String tempBase = e.getAttributeValue(WADLConstant.RESOURCES_BASE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
227 URI base = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
228 if (tempBase != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
229 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
230 base = new URI(tempBase);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
231 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
232 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
233 List<Resource> subResources = getSubResources(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
234 return new Resources(docs, subResources, base);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
235 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
236
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
237 private List<Resource> getSubResources(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
238 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
239 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
240 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
241 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
242
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
243 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
244 List<Resource> subResources = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
245 List<Element> xmlSubResources = e.getChildren(WADLConstant.RESOURCE, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
246 if (xmlSubResources != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
247 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
248 subResources = new ArrayList<Resource>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
249 for (Element xmlSubResource : xmlSubResources)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
250 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
251 Resource subResource = getSubResource(xmlSubResource);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
252 if (subResource != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
253 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
254 subResources.add(subResource);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
255 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
256 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
257 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
258
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
259 return subResources;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
260
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
261 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
262
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
263 private Resource getSubResource(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
264 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
265 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
266 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
267 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
268 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
269 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
270 List<Param> params = getParams(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
271 List<Method> methods = getMethods(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
272 List<Resource> resources = getSubResources(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
273 String id = e.getAttributeValue(WADLConstant.RESOURCE_ID);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
274 String queryType = e.getAttributeValue(WADLConstant.RESOURCE_QUERY_TYPE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
275 String path = e.getAttributeValue(WADLConstant.RESOURCE_PATH);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
276 //System.out.println("the path is " + path + " wadlNampeSpace is " + wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
277 return new Resource(docs, params, methods, resources, id, queryType, path);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
278 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
279
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
280 private List<Param> getParams(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
281 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
282 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
283 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
284 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
285
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
286 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
287 List<Param> params = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
288 List<Element> xmlParams = e.getChildren(WADLConstant.PARAM, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
289 if (xmlParams != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
290 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
291 params = new ArrayList<Param>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
292 for (Element xmlParam : xmlParams)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
293 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
294 Param param = getParam(xmlParam);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
295 if (param != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
296 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
297 params.add(param);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
298
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
299 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
300 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
301 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
302 return params;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
303 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
304
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
305 private Param getParam(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
306 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
307 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
308 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
309 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
310 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
311 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
312 List<Option> options = getOptions(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
313 Link link = getLink(e.getChild(WADLConstant.LINK, wadlNamespace));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
314 String tempHref = e.getAttributeValue(WADLConstant.PARAM_HREF);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
315 URI href = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
316 if (tempHref != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
317 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
318 href = new URI(tempHref);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
319 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
320 String name = e.getAttributeValue(WADLConstant.PARAM_NAME);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
321 String style = e.getAttributeValue(WADLConstant.PARAM_STYLE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
322 String id = e.getAttributeValue(WADLConstant.PARAM_ID);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
323 String type = e.getAttributeValue(WADLConstant.PARAM_TYPE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
324 String default1 = e.getAttributeValue(WADLConstant.PARAM_DEFAULT);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
325 String tempRequired = e.getAttributeValue(WADLConstant.PARAM_REQUIRED);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
326 boolean required = false;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
327 if (tempRequired != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
328 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
329 required = Boolean.valueOf(tempRequired);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
330 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
331 String tempRepeating = e.getAttributeValue(WADLConstant.PARAM_REPEATING);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
332 boolean repeating = false;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
333 if (tempRepeating != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
334 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
335 repeating = Boolean.valueOf(tempRepeating);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
336 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
337 String fixed = e.getAttributeValue(WADLConstant.PARAM_FIXED);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
338 String path = e.getAttributeValue(WADLConstant.PARAM_PATH);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
339 return new Param(docs, options, link, href, name, style, id, type, default1, fixed, path,required);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
340 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
341
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
342 private List<Option> getOptions(Element e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
343 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
344 System.out.println(e.getName());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
345 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
346 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
347 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
348 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
349 List<Option> options = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
350 List<Element> xmlOptions = e.getChildren(WADLConstant.OPTION, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
351 if (xmlOptions != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
352 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
353 options = new ArrayList<Option>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
354 for (Element xmlOption : xmlOptions)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
355 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
356 Option option = getOption(xmlOption);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
357 if (option != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
358 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
359 options.add(option);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
360 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
361 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
362 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
363 return options;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
364 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
365
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
366 private Option getOption(Element e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
367 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
368 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
369 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
370 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
371 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
372 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
373 String value = e.getAttributeValue(WADLConstant.OPTION_VALUE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
374 String mediaType = e.getAttributeValue(WADLConstant.OPTION_MEDIA_TYPE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
375 return new Option(docs, value, mediaType);
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 private Link getLink(Element e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
379 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
380 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
381 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
382 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
383 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
384 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
385 String resourceType = e.getAttributeValue(WADLConstant.LINK_RESOURCE_TYPE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
386 String rel = e.getAttributeValue(WADLConstant.LINK_REL);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
387 String rev = e.getAttributeValue(WADLConstant.LINK_REV);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
388 return new Link(docs, resourceType, rel, rev);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
389 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
390
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
391 private List<Method> getMethods(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
392 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
393 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
394 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
395 return 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 List<Method> methods = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
398 List<Element> xmlMethods = e.getChildren(WADLConstant.METHOD, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
399 if (xmlMethods != 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 methods = new ArrayList<Method>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
402 for (Element xmlMethod : xmlMethods)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
403 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
404 Method method = getMethod(xmlMethod);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
405 if (method != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
406 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
407 methods.add(method);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
408 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
409 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
410 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
411 return methods;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
412 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
413
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
414 private Method getMethod(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
415 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
416 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
417 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
418 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
419 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
420 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
421 Request request = getRequest(e.getChild(WADLConstant.REQUEST, wadlNamespace));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
422 List<Response> responses = getResponses(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
423 String id = e.getAttributeValue(WADLConstant.METHOD_ID);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
424 String tempHref = e.getAttributeValue(WADLConstant.METHOD_HREF);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
425 URI href = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
426 if (tempHref != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
427 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
428 href = new URI(tempHref);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
429 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
430 String name = e.getAttributeValue(WADLConstant.METHOD_NAME);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
431 return new Method(docs, request, responses, id, name, href);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
432 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
433
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
434 private Request getRequest(Element e) throws Exception
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 (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
437 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
438 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
439 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
440 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
441 List<Param> params = getParams(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
442 List<Representation> representations = getRepresentations(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
443 return new Request(docs, params, representations);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
444 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
445
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
446 private List<Representation> getRepresentations(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
447 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
448 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
449 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
450 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
451 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
452 List<Representation> representations = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
453 List<Element> xmlRepresentations = e.getChildren(WADLConstant.REPRESENTATION, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
454 if (xmlRepresentations != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
455 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
456 representations = new ArrayList<Representation>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
457 for (Element xmlRepresentation : xmlRepresentations)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
458 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
459 Representation representation = getRepresentation(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
460 if (representation != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
461 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
462 representations.add(representation);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
463 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
464 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
465 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
466 return representations;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
467 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
468
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
469 private Representation getRepresentation(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
470 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
471 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
472 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
473 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
474 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
475 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
476 List<Param> params = getParams(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
477 String id = e.getAttributeValue(WADLConstant.REPRESENTATION_ID);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
478 String element = e.getAttributeValue(WADLConstant.REPRESENTATION_ELEMENT);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
479 String mediaType = e.getAttributeValue(WADLConstant.REPRESENTATION_MEDIA_TYPE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
480 String tempHref = e.getAttributeValue(WADLConstant.REPRESENTATION_HREF);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
481 URI href = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
482 if (tempHref != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
483 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
484 href = new URI(tempHref);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
485 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
486 String profile = e.getAttributeValue(WADLConstant.REPRESENTATION_PROFILE);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
487 return new Representation(docs, params, id, element, mediaType, href, profile);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
488 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
489
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
490 private List<Response> getResponses(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
491 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
492 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
493 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
494 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
495 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
496 List<Response> responses = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
497 List<Element> xmlResponses = e.getChildren(WADLConstant.RESPONSE, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
498 if (xmlResponses != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
499 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
500 responses = new ArrayList<Response>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
501 for (Element xmlResponse : xmlResponses)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
502 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
503 Response response = getResponse(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
504 if (response != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
505 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
506 responses.add(response);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
507 }
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 return responses;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
511 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
512
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
513 private Response getResponse(Element e) throws Exception
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
514 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
515 if (e == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
516 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
517 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
518 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
519 List<Doc> docs = getDocs(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
520 List<Param> params = getParams(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
521 List<Representation> representations = getRepresentations(e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
522 String tempStatus = e.getAttributeValue(WADLConstant.RESPONSE_STATUS);//, wadlNamespace);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
523 int status = -1;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
524 if (tempStatus != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
525 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
526 status = Integer.parseInt(tempStatus);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
527 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
528 return new Response(docs, params, representations, status);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
529
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
530 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
531 }