Mercurial > repos > ganjoo > webservice_toolsuite
comparison WebServiceToolWorkflow/ParserForWADL/src/lsdis/WADLParserDriver.java @ 0:e7482c82796e default tip
Migrated tool version 1.0.0 from old tool shed archive to new tool shed repository
author | ganjoo |
---|---|
date | Tue, 07 Jun 2011 17:34:26 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e7482c82796e |
---|---|
1 package lsdis; | |
2 import java.net.MalformedURLException; | |
3 import java.net.URL; | |
4 | |
5 import lsdis.*; | |
6 | |
7 import java.util.ArrayList; | |
8 import java.util.List; | |
9 | |
10 | |
11 /* | |
12 * generate url's and param names | |
13 */ | |
14 | |
15 public class WADLParserDriver { | |
16 | |
17 | |
18 // private List<List<String>> paramNames = new ArrayList<List<String>>(); | |
19 private List<Method> definedMethods = new ArrayList<Method>(); | |
20 | |
21 private int count = 0; | |
22 private List<Method> crossReferencedMethods = new ArrayList<Method>(); | |
23 private List<String> crossReferencedMethodURLS = new ArrayList<String>(); | |
24 | |
25 private List<Method> completeMethodList = new ArrayList<Method>(); | |
26 private List<String> url = new ArrayList<String>(); | |
27 | |
28 | |
29 public List<Method> getCompleteMethodList() { | |
30 return completeMethodList; | |
31 } | |
32 | |
33 public List<String> getUrl() { | |
34 return url; | |
35 } | |
36 | |
37 | |
38 | |
39 public static void main(String[] args) throws Exception { | |
40 | |
41 WADLParserDriver mpw = new WADLParserDriver(); | |
42 //mpw.parse(new URL("http://cs.uga.edu/~ganjoo/galaxy/DDBJNCBIGenomeAnnotationGetGeneList.wadl")); | |
43 mpw.parse(new URL("http://eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl")); | |
44 mpw.displayInfo(); | |
45 | |
46 } | |
47 | |
48 public void parse(URL fileURL) throws Exception { | |
49 int i=0; | |
50 | |
51 | |
52 | |
53 //URL fileURL = new URL("http://www.eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl"); | |
54 | |
55 WADLParser wadlP = new WADLParser(fileURL); | |
56 | |
57 Application app= new Application(); | |
58 app=wadlP.getApplicationOfWADL(); | |
59 | |
60 String temp = ""; | |
61 String tempHref=""; | |
62 | |
63 for(Resources resources : app.getResources()){ | |
64 temp = resources.getBase().toString(); | |
65 //traverseSubResources(temp, resources); | |
66 System.out.println(temp); | |
67 for(Resource resource : resources.getResources()){ | |
68 | |
69 temp = temp + resource.getPath(); | |
70 traverseResource(temp, resource); | |
71 //traverseSubResources(temp, resource); | |
72 System.out.println("resource path"+resource.getPath()); | |
73 if(resource.getParams()!=null && resource.getParams().size()!=0){ | |
74 for(Param param: resource.getParams()){ | |
75 System.out.println("params "+ param); | |
76 } | |
77 } | |
78 | |
79 | |
80 } | |
81 | |
82 } | |
83 | |
84 traverseCrossReferencedMethods(); | |
85 displayInfo(); | |
86 | |
87 }//end main | |
88 | |
89 | |
90 public void traverseSubResources(String passedString,Resource resource){ | |
91 | |
92 | |
93 | |
94 | |
95 for(Resource subResource : resource.getResources()){ | |
96 | |
97 String temp = passedString; | |
98 | |
99 if(temp.charAt(temp.length()-1) != '/') | |
100 temp += "/"; | |
101 temp += subResource.getPath(); | |
102 | |
103 // if(subResource.getParams()!=null && subResource.getParams().size()!=0){ | |
104 // for(Param param: subResource.getParams()){ | |
105 // if(param.getStyle().equalsIgnoreCase("template")){ | |
106 // System.out.println("params "+ param.getName()); | |
107 // temp=temp+"/{"+param.getName()+"}"; | |
108 // } | |
109 // } | |
110 // } | |
111 | |
112 //start | |
113 | |
114 | |
115 for(Method method : subResource.getMethods()){ | |
116 if(method.getId() != null){ | |
117 url.add(count, temp); | |
118 definedMethods.add(method); | |
119 | |
120 completeMethodList.add(count,method); | |
121 | |
122 count++; | |
123 } | |
124 else if(method.getHref()!=null){ //will work only for intra-document cross-reference currently | |
125 | |
126 crossReferencedMethods.add(method); | |
127 crossReferencedMethodURLS.add(temp); | |
128 | |
129 } | |
130 else{ | |
131 | |
132 System.out.println("ERROR : Method " + method.getName() + " does not have an id or a href !!" ); | |
133 } | |
134 } | |
135 | |
136 | |
137 traverseSubResources(temp, subResource); | |
138 | |
139 }//end for | |
140 | |
141 }//end method | |
142 | |
143 public void traverseResource(String passedString,Resource resource){ | |
144 | |
145 | |
146 | |
147 String temp = passedString ; | |
148 | |
149 //start | |
150 | |
151 | |
152 for(Method method : resource.getMethods()){ | |
153 if(method.getId() != null){ | |
154 url.add(count, temp); | |
155 definedMethods.add(method); | |
156 | |
157 completeMethodList.add(count,method); | |
158 | |
159 count++; | |
160 } | |
161 else if(method.getHref()!=null){ //will work only for intra-document cross-reference currently | |
162 | |
163 crossReferencedMethods.add(method); | |
164 crossReferencedMethodURLS.add(temp); | |
165 | |
166 } | |
167 else{ | |
168 | |
169 System.out.println("ERROR : Method " + method.getName() + " does not have an id or a href !!" ); | |
170 } | |
171 } | |
172 | |
173 | |
174 traverseSubResources(temp, resource); | |
175 | |
176 }//end method | |
177 | |
178 public void traverseCrossReferencedMethods(){ | |
179 int i =0; | |
180 String tempHref = ""; | |
181 | |
182 for(Method method : crossReferencedMethods){ | |
183 | |
184 url.add(count, crossReferencedMethodURLS.get(i)); | |
185 | |
186 | |
187 | |
188 tempHref = method.getHref().toString(); | |
189 if(tempHref.startsWith("#")){ | |
190 tempHref = tempHref.substring(1); | |
191 } | |
192 | |
193 for(Method m : definedMethods){ | |
194 if(m.getId().equals(tempHref)){ | |
195 | |
196 Method tempMethod = new Method(m.getDocs(),m.getRequest(),m.getResponse(),m.getId(),m.getName(),method.getHref()); | |
197 completeMethodList.add(count,tempMethod); | |
198 | |
199 break; | |
200 | |
201 } | |
202 | |
203 } | |
204 | |
205 count++; | |
206 i++; | |
207 } | |
208 | |
209 | |
210 | |
211 }//end of method | |
212 | |
213 // public void displayInfo(){ | |
214 // if(url.size()!=paramNames.size()){ | |
215 // System.out.println("Debug the code !!!! :( "); | |
216 // System.exit(0); | |
217 // } | |
218 // for(int i=0;i<url.size();i++){ | |
219 // System.out.println(url.get(i)); | |
220 // | |
221 // for(String p : paramNames.get(i)){ | |
222 // System.out.print(p + ", "); | |
223 // } | |
224 // | |
225 // System.out.println(); | |
226 // System.out.println(); | |
227 // } | |
228 // | |
229 // } | |
230 | |
231 public void displayInfo(){ | |
232 | |
233 if(url.size()!=completeMethodList.size()){ | |
234 System.out.println("Debug the code !!!! :( "); | |
235 System.exit(0); | |
236 } | |
237 for(int i=0;i<url.size();i++){ | |
238 System.out.println(url.get(i)); | |
239 | |
240 for(Method m : completeMethodList){ | |
241 System.out.println(m.getName()); | |
242 for(Param param : m.getRequest().getParams()){ | |
243 System.out.println("\t"+param.getName()); | |
244 System.out.println("\t"+param.isRequired()); | |
245 for(Doc doc : param.getDocs()){ | |
246 if(doc.getTitle().equalsIgnoreCase("prompt")){ | |
247 System.out.println("Prompt: " + doc.getInnerText()); | |
248 } | |
249 | |
250 } | |
251 List<Option> ops = param.getOptions(); | |
252 | |
253 // if(ops.size()==0){ | |
254 // System.out.println("No options available"); | |
255 // } | |
256 // else{ | |
257 // System.out.println("\t options:"); | |
258 // | |
259 // for(Option option:param.getOptions()){ | |
260 // System.out.println("\t "+option.getName()); | |
261 // } | |
262 // } | |
263 } | |
264 } | |
265 | |
266 System.out.println(); | |
267 System.out.println(); | |
268 } | |
269 } | |
270 } | |
271 | |
272 | |
273 | |
274 |