annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/SAWADLParserDriver.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 package edu.uga.cs.lsdis.meteors.wadls;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
2
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
3 import java.net.MalformedURLException;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
4 import java.net.URL;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
5 import java.util.ArrayList;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
6 import java.util.HashMap;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
7 import java.util.List;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8 import java.util.Map;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9 import java.util.Vector;
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.wadls.Application;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12 import javax.wadls.Method;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 import javax.wadls.Param;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14 import javax.wadls.Request;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 import javax.wadls.Resource;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 import javax.wadls.WADLSException;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 import javax.wadls.factory.WADLFactory;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18 import javax.wadls.xml.WADLReader;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19 import javax.xml.namespace.QName;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 public class SAWADLParserDriver {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25 private List<Method> completeMethodList = new ArrayList<Method>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 private List<String> url = new ArrayList<String>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 private List<String> paramList = new ArrayList<String>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 private List<String> paramTypeList = new ArrayList<String>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 private List<String> paramModelRef = new ArrayList<String>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 private Application application;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 public List<Method> getCompleteMethodList() {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 return completeMethodList;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 public List<String> getUrl() {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 return url;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 public List<String> getParamList() {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 return paramList;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 public List<String> getParamTypeList() {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 return paramTypeList;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 public static void main(String[] args) throws Exception {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 //WADLParserDriver mpw = new WADLParserDriver();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 //mpw.parse(new URL(args[0]));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 SAWADLParserDriver spd = new SAWADLParserDriver();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56 //String fileURL = "/home/ganjoo/parser/SAWADLParser/Files/sample.wadl";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 String fileURL = "/home/ganjoo/parser/SAWADLParser/euPathWADL/GenesByTextSearch.sawadl";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 //String fileURL = "http://cs.uga.edu/~ganjoo/galaxy/GenesByTextSearch.sawadl";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 spd.parse(fileURL);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 public void parse(String fileURL) throws Exception {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 int i=0;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 Map resources = new HashMap();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 List methods = new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 List<ParamImpl> paramList = new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 //URL fileURL = new URL("http://www.eupathdb.org/webservices/GeneQuestions/GenesByMolecularWeight.wadl");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 WADLReader wadlReader;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 try {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 wadlReader = WADLFactory.newInstance().newWADLReader();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 wadlReader.setFeature(Constants.FEATURE_PARSE_SAWADL,true);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 //wadlReader.setExtensionRegistry(new PopulatedExtensionRegistry());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 Application app = wadlReader.readWADL(fileURL);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 this.application = app;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 String temp = "";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 String tempHref="";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 int count =0;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 Map<QName, Resource> resourceMap = app.getResources();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 for(Map.Entry entry : resourceMap.entrySet() ){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 count++;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 Resource resource = (Resource) entry.getValue();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 // System.out.println("Resource " + count + "is " + resource.getQName().getNamespaceURI());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87 methods = resource.getMethods();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 for(int j =0;j<methods.size();j++){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 Method method = (Method) methods.get(j);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 completeMethodList.add(method);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93 url.add(app.getResourcesPath()+resource.getQName().getLocalPart());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 System.out.println("-------------------------------\n");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 System.out.println("Resources path : " + app.getResourcesPath());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 System.out.println("Method name is : " + method.getName());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 System.out.println("Qname uri : " + resource.getQName().getNamespaceURI());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 System.out.println("Qname local part : " + resource.getQName().getLocalPart());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100 System.out.println("Qname prefix : " + resource.getQName().getPrefix());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 System.out.println("\n-------------------------------\n");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103 Request request = method.getRequest();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 paramList = request.getParamList();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 // Map namespaces = new HashMap();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107 // namespaces = app.getNamespaces();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108 // System.out.println( namespaces.get("euPathOntology"));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110 for(Param param : paramList){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111 System.out.println("Parameter : ");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112 System.out.println("\t name: "+ param.getName());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113 System.out.println("\t type: "+param.getType());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
114 System.out.println("\t ontology reference: "+ param.getModelreference());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
115 System.out.println("\t required: " + param.getRequired());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116 System.out.println("\t option size: "+param.getOptionvalue().size());
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 }
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 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124
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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134 } catch (WADLSException e) {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135 // TODO Auto-generated catch block
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 e.printStackTrace();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137
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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 public String getCompleteModelReference(Param param){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142 String prefix = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143 String namespace = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 if(param.getModelreference() != null){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145 prefix = param.getModelreference().split("#")[0];
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146 namespace = application.getNamespace(prefix);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
148
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149 return namespace+"#"+param.getModelreference().split("#")[1];
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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 }