annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/ResourceImpl.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;
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.util.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9 import javax.wadls.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 import javax.wadls.ModelReference;
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 org.w3c.dom.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 * This class represents a port type. It contains information about
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 * operations associated with this port type.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18 * @author Paul Fremantle
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19 * @author Nirmal Mukhi
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 * @author Matthew J. Duftler
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 * @author Zixin Wu
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23 public class ResourceImpl implements Resource
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25 protected QName name = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 protected List<ModelReference> modelReferences = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 protected List methods = new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 protected List categories = new Vector();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 protected Element docEl = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 protected Map extensionAttributes = new HashMap();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31 protected List nativeAttributeNames =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 Arrays.asList(Constants.PORT_TYPE_ATTR_NAMES);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 protected boolean isUndefined = true;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 public static final long serialVersionUID = 1;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 * Get the category specifications in this portType.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 * @return All the categories in this portType.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 public List getCategories()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 return this.categories;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 }
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 * Set the name of this port type.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 * @param name the desired name
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 public void setQName(QName name)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 this.name = name;
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 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 * Get the name of this port type.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 * @return the port type name
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 QName getQName()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 return name;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 * Add an operation to this port type.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 * @param operation the operation to be added
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 void addMethod(Method operation)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 methods.add(operation);
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 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 * Get the specified operation. Note that operation names can
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 * be overloaded within a PortType. In case of overloading, the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 * names of the input and output messages can be used to further
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 * refine the search.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 * @param name the name of the desired operation.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 * @param inputName the name of the input message; if this is null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 * it will be ignored.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 * @param outputName the name of the output message; if this is null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87 * it will be ignored.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 * @return the corresponding operation, or null if there wasn't
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 * any matching operation
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 public Method getMethod(String name,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 String inputName,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93 String outputName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 boolean found = false;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 Method ret = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 Iterator opIterator = methods.iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 while (opIterator.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 Method op = (Method)opIterator.next();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102 String opName = op.getName();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 if (name != null && opName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 if (!name.equals(opName))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111 else if (name != null || opName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113 op = 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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116 if (op != null && inputName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119 String defaultInputName = opName;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120 defaultInputName = opName + "Request";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121 boolean specifiedDefault = inputName.equals(defaultInputName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122 Request input = op.getRequest();
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 (input != 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 String opInputName = input.getName();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128 if (opInputName == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 if (!specifiedDefault)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135 else if (!opInputName.equals(inputName))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137 op = null;
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 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 }
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 (op != null && outputName != 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 String defaultOutputName = opName;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149 defaultOutputName = opName + "Response";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
150 boolean specifiedDefault = outputName.equals(defaultOutputName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
151 Response output = op.getResponse();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
152
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 if (output != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
155 String opOutputName = output.getName();
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 (opOutputName == 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 if (!specifiedDefault)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
160 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
161 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
162 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
163 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
164 else if (!opOutputName.equals(outputName))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
165 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
166 op = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
167 }
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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
170 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
171 op = null;
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 if (op != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
176 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
177 if (found)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
178 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
179 throw new IllegalArgumentException("Duplicate operation with " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
180 "name=" + name +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
181 (inputName != null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
182 ? ", inputName=" + inputName
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
183 : "") +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
184 (outputName != null
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
185 ? ", outputName=" + outputName
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
186 : "") +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
187 ", found in portType '" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
188 getQName() + "'.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
189 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
190 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
191 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
192 found = true;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
193 ret = op;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
194 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
195 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
196 }
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 ret;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
199 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
200 public ModelReference getModelReference(){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
201 if(modelReferences == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
202 return null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
203 return modelReferences.get(0);
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 * Set the modelReference.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
208 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
209 * @param modelReference The desired modelReference.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
210 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
211 public void addModelReference(ModelReference modelReference){
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
212 if(modelReferences == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
213 modelReferences = new ArrayList<ModelReference>();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
214 modelReferences.add(0, modelReference);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
215 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
216 public List<ModelReference> getModelReferences() {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
217 return modelReferences;
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 public void setModelReferences(List<ModelReference> refs) {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
221 modelReferences = refs;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
222 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
223 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
224 * Get all the operations defined here.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
225 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
226 public List getMethods()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
227 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
228 return methods;
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 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
232 * Set the documentation element for this document. This dependency
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
233 * on org.w3c.dom.Element should eventually be removed when a more
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
234 * appropriate way of representing this information is employed.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
235 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
236 * @param docEl the documentation element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
237 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
238 public void setDocumentationElement(Element docEl)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
239 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
240 this.docEl = docEl;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
241 }
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 * Get the documentation element. This dependency on org.w3c.dom.Element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
245 * should eventually be removed when a more appropriate way of
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
246 * representing this information is employed.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
247 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
248 * @return the documentation element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
249 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
250 public Element getDocumentationElement()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
251 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
252 return docEl;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
253 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
254
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
255 public void setUndefined(boolean isUndefined)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
256 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
257 this.isUndefined = isUndefined;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
258 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
259
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
260 public boolean isUndefined()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
261 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
262 return isUndefined;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
263 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
264
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
265 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
266 * Set an extension attribute on this element. Pass in a null value to remove
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
267 * an extension attribute.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
268 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
269 * @param name the extension attribute name
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
270 * @param value the extension attribute value. Can be a String, a QName, a
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
271 * List of Strings, or a List of QNames.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
272 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
273 * @see #getExtensionAttribute
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
274 * @see #getExtensionAttributes
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
275 * @see ExtensionRegistry#registerExtensionAttributeType
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
276 * @see ExtensionRegistry#queryExtensionAttributeType
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
277 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
278 public void setExtensionAttribute(QName name, Object value)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
279 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
280 if (value != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
281 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
282 extensionAttributes.put(name, value);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
283 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
284 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
285 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
286 extensionAttributes.remove(name);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
287 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
288 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
289
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
290 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
291 * Retrieve an extension attribute from this element. If the extension
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
292 * attribute is not defined, null is returned.
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 name the extension attribute name
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
295 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
296 * @return the value of the extension attribute, or null if
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
297 * it is not defined. Can be a String, a QName, a List of Strings, or a List
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
298 * of QNames.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
299 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
300 * @see #setExtensionAttribute
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
301 * @see #getExtensionAttributes
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
302 * @see ExtensionRegistry#registerExtensionAttributeType
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
303 * @see ExtensionRegistry#queryExtensionAttributeType
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
304 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
305 public Object getExtensionAttribute(QName name)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
306 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
307 return extensionAttributes.get(name);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
308 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
309
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
310 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
311 * Get the map containing all the extension attributes defined
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
312 * on this element. The keys are the qnames of the attributes.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
313 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
314 * @return a map containing all the extension attributes defined
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
315 * on this element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
316 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
317 * @see #setExtensionAttribute
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
318 * @see #getExtensionAttribute
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
319 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
320 public Map getExtensionAttributes()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
321 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
322 return extensionAttributes;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
323 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
324
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
325 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
326 * Get the list of local attribute names defined for this element in
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
327 * the WSDL specification.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
328 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
329 * @return a List of Strings, one for each local attribute name
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
330 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
331 public List getNativeAttributeNames()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
332 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
333 return nativeAttributeNames;
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 public String toString()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
337 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
338 StringBuffer strBuf = new StringBuffer();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
339
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
340 strBuf.append("PortType: name=" + name);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
341
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
342 if (methods != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
343 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
344 Iterator opIterator = methods.iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
345
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
346 while (opIterator.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
347 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
348 strBuf.append("\n" + opIterator.next());
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
349 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
350 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
351
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
352 Iterator keys = extensionAttributes.keySet().iterator();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
353
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
354 while (keys.hasNext())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
355 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
356 QName name = (QName)keys.next();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
357
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
358 strBuf.append("\nextension attribute: " + name + "=" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
359 extensionAttributes.get(name));
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 return strBuf.toString();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
363 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
364 }