annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/msHandler.py @ 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 @author Rui Wang
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
3 @see LICENSE (MIT style license file).
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
4 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
5
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 ZSI.TC
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8 import copy
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 __author__="Rui Wang, Chaitanya Guttula"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12 class MessageHandler:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 '''handle message class'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 def msAssign(self, msInstance, nameValueDic):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 '''given message class instance, _name:value tree structure dictionary,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 assign the values to the correct leaves in the message tree,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18 return message class instance with values'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 #get the list of all parts of message
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 for part in partList:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23 #_name of part of message
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 partName=getattr(part, 'aname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25 if partName not in nameValueDic.keys():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 continue
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 partValue=nameValueDic[partName]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 if isinstance(part, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 complextypeHolderClassInstance=self.complextypeAssign(part, partValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31 setattr(msInstance, partName, complextypeHolderClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 elif isinstance(part, ZSI.TC.Array) :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 subArray=self.arraytypeAssign(part, partValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 setattr(msInstance, partName, subArray)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 print 'the arraay type is : ',subArray
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 #simple type such as string...directly assign the value to the part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 setattr(msInstance, partName, partValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 return msInstance
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 def complextypeAssign(self, complextypeInstance, subNameValueDic):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 '''given complex type instance, subtree of _name:value dictionary
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 traverse the tree structure recursively,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 return top complextype holder class instance with values filled in'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47 raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 #element instance list of complex type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 elementList=getattr(complextypeInstance, 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 for ele in elementList:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 #_name of element of complex type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56 eleName=getattr(ele, 'aname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 if eleName not in subNameValueDic.keys():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 continue
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61 eleValue=subNameValueDic[eleName]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 if isinstance(ele, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 subclomplextypeClassInstance=self.complextypeAssign(ele, eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 elif isinstance(ele, ZSI.TC.Array) :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 subArray=self.arraytypeAssign(ele, eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 setattr(complextypeHolderClassInstance, eleName, subArray)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 #simple type such as string...directly assign the value to the element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 setattr(complextypeHolderClassInstance, eleName, eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 return complextypeHolderClassInstance
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 def arraytypeAssign(self,arraytypeInstance, subValueArray):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76 '''given arraytype class instance, [values...],
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 recursively handle values,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 return [arraytypeInstance filled with values]'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 if not isinstance(arraytypeInstance, ZSI.TC.Array):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 resultArray=[]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 if subValueArray is None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 return None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87 if subValueArray is []:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 return []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 #element instance of array type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 elementInstance=getattr(arraytypeInstance, 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 if isinstance(elementInstance, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93 for eleValue in subValueArray:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 subclomplextypeClassInstance=self.complextypeAssign(copy.deepcopy(elementInstance), eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 resultArray.append(subclomplextypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 elif isinstance(elementInstance, ZSI.TC.Array) :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 for eleValue in subValueArray:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 subArray=self.arraytypeAssign(copy.deepcopy(elementInstance), eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 resultArray.append(subArray)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103 #simple type such as string...directly return the [value,...]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 resultArray=subValueArray
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 return resultArray
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108 def msParser(self, msInstance):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 '''given message class instance,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110 parse the message class tree,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111 return message tree of _name:value dictionary'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113 nameValueDic={}
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 #get the list of all parts of message
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118 for part in partList:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120 #_name of part of message
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121 partName=getattr(part, 'aname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122 partValueDefault=getattr(msInstance, partName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124 #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
125 # partValue=nameValueDic[partName]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
126 # nameValueDic[partName]=None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127 if isinstance(part, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128 nameValueDic[partName]=self.complextypeParser(part)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129 elif isinstance(part, ZSI.TC.Array) :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 nameValueDic[partName]=self.arraytypeParser(part, partValueDefault)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 #simple type such as string...directly retrieve the value of the part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 nameValueDic[partName]=partValueDefault
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134 return nameValueDic
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 def complextypeParser(self, complextypeInstance):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137 '''given complex type class instance,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
138 traverse the tree structure recursively,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
139 return subtree of _name:value dictionary'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
140
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142 raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 subNameValueDic={}
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145 complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146 #element instance list of complex type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147 elementList=getattr(complextypeInstance, 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
148 for ele in elementList:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149 #_name of element of complex type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
150 eleName=getattr(ele, 'aname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
151 eleValueDefault=getattr(complextypeHolderClassInstance,eleName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
152 print eleName
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154 # eleValue=subNameValueDic[eleName]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
155 if isinstance(ele, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
156 if(getattr(ele,'maxOccurs')=='unbounded'): # Handling element with maxOccurances as unbounded and type as complextype
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
157 print 'arraytype',eleName
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
158 tempArray=[]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
159 sub = self.complextypeParser(ele)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
160 tempArray.append(sub)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
161 print 'array is : ',tempArray
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
162 subNameValueDic[eleName]=tempArray #tempArray.append(sub)#self.arraytypeParser(ele, eleValueDefault)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
163 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
164 print 'complextype', eleName
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
165 subNameValueDic[eleName]=self.complextypeParser(ele)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
166 elif isinstance(ele, ZSI.TC.Array):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
167 print 'arraytype', eleValueDefault
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
168 subNameValueDic[eleName]=self.arraytypeParser(ele, eleValueDefault)
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 subNameValueDic[eleName] = eleValueDefault
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
171
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
172 return subNameValueDic
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 def arraytypeParser(self,arraytypeInstance, defaultValueArray):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
176 '''given arraytype class instance, and its default value [defaultvalues...]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
177 if element of array is not simple type then recursively handle traverse the type tree,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
178 return [values...]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
179 else return defaultValueArray[defaultvalues...]'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
180
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
181
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
182 if (not isinstance(arraytypeInstance, ZSI.TC.Array)): #or (getattr(arraytypeInstance,'maxOccurs')!='unbounded') :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
183 raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
184 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
185 subValueArray=[]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
186
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
187
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
188 #element instance of array type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
189 elementInstance=getattr(arraytypeInstance, 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
190 if isinstance(elementInstance, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
191 if defaultValueArray is None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
192 subclomplextypeClassInstance=self.complextypeParser(elementInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
193 subValueArray.append(subclomplextypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
194 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
195 for eleValue in defaultValueArray:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
196 subclomplextypeClassInstance=self.complextypeParser(eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
197 subValueArray.append(subclomplextypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
198 elif isinstance(elementInstance, ZSI.TC.Array) :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
199 if defaultValueArray is None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
200 subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
201 subValueArray.append(subarraytypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
202 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
203 for eleValue in defaultValueArray:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
204 subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
205 subValueArray.append(subArray)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
206
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
207 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
208 #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
209 subValueArray=defaultValueArray
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
210
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
211 return subValueArray
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 def flatten(self,obj):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
215 if obj is None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
216 return None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
217 elif hasattr(obj, '__dict__') and obj.__dict__:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
218 return dict([(k, self.flatten(v)) for (k, v) in obj.__dict__.items()])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
219 if isinstance(obj, (dict,)):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
220 return dict([(k, self.flatten(v)) for (k, v) in obj.items()])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
221 elif isinstance(obj, (list,)):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
222 return [self.flatten(x) for x in obj]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
223 elif isinstance(obj, (tuple,)):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
224 return tuple([flatten(x) for x in obj])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
225 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
226 return obj
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
227
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
228 def getParameter(self, msInstance,param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
229 '''given message class instance, and parameter
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
230 parse the message class tree,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
231 return the element '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
232 nameValueDic={}
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
233 plist = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
234 if(param.find('|0|')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
235 s = param.split('|0|')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
236 print 'found |0|',s
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
237 for l in s:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
238 if(l.find('|')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
239 t = l.split('|')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
240 print 'found |',t
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
241 for i in t:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
242 print 'i',i
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
243 plist.append(i)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
244 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
245 plist.append(l)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
246 elif(param.find('|')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
247 plist = param.split('|')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
248 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
249 partlist = getattr(getattr(msInstance , 'typecode'),'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
250 for part in partlist:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
251 if param == getattr(part,'aname'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
252 print part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
253 return part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
254
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
255
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
256 element = None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
257 #get the list of all parts of message
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
258 partList=getattr(getattr(msInstance, 'typecode'), 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
259 for part in partList:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
260 #_name of part of message
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
261 partName=getattr(part, 'aname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
262
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
263 if(partName == plist[0]):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
264
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
265 partname=getattr(part,'pname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
266 partValueDefault=getattr(msInstance, partName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
267 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
268 #value assigned to part, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
269 # partValue=nameValueDic[partName]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
270 # nameValueDic[partName]=None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
271 if isinstance(part, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
272 print 'complextype', getattr(part,'aname')#plist[-1]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
273 sp = ( self.complextypParser(part,plist[-1]))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
274 if(sp !=None):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
275 element = sp
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
276
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
277 elif isinstance(part, ZSI.TC.Array) :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
278 element = self.arraytypParser(part, partValueDefault,plist[-1])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
279 #nameValueDic[partName]=self.arraytypeParser(part, partValueDefault,param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
280 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
281 #simple type such as string...directly retrieve the value of the part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
282 if(partName == plist[-1]):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
283 element = part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
284 print 'spart',element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
285 res = getattr(element,'nillable')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
286 print res
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
287 return element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
288
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
289 def complextypParser(self, complextypeInstance,param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
290 '''given complex type class instance, and paramater name
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
291 traverse the tree structure recursively,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
292 return the element with parameter name'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
293 part =None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
294 if not isinstance(complextypeInstance, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
295 raise TypeError, 'First parameter has to be instance of ZSI.TC.ComplexType'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
296 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
297 subNameValueDic={}
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
298 complextypeHolderClassInstance=getattr(complextypeInstance,'pyclass')()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
299 #element instance list of complex type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
300 elementList=getattr(complextypeInstance, 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
301
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
302 for ele in elementList:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
303 #_name of element of complex type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
304 eleName=getattr(ele, 'aname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
305 eleValueDefault=getattr(complextypeHolderClassInstance, eleName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
306 #value assigned to element, can be simple type(directly assign) or tree structure(pass to complextypeAssign() or arraytypeAssign())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
307 # eleValue=subNameValueDic[eleName]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
308 if isinstance(ele, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
309
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
310 if getattr(ele,'aname') == param:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
311 print 'returning the middle complex type'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
312 return ele
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
313 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
314 part = self.complextypParser(ele,param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
315 return part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
316 #subNameValueDic[eleName]=self.complextypeParser(ele)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
317 # setattr(complextypeHolderClassInstance, eleName, subclomplextypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
318 elif isinstance(ele, ZSI.TC.Array) :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
319 part = self.arraytypParser(ele, eleValueDefault,param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
320 return part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
321
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
322 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
323 if(param == eleName):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
324 print 'matched',param
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
325 part = (ele)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
326 return part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
327 #simple type such as string...directly retrieve the value of the element
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
328 subNameValueDic[eleName]=eleValueDefault
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
329 return None#subNameValueDic
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
330
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
331
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
332
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
333 def arraytypParser(self,arraytypeInstance, defaultValueArray,param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
334 '''given arraytype class instance, and its default value [defaultvalues...]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
335 if element of array is not simple type then recursively handle traverse the type tree,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
336 return [values...]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
337 else return defaultValueArray[defaultvalues...]'''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
338
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
339
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
340 if not isinstance(arraytypeInstance, ZSI.TC.Array):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
341 raise TypeError, 'First parameter has to be instance of ZSI.TC.Array'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
342 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
343 subValueArray=[]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
344
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
345 #element instance of array type
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
346 elementInstance=getattr(arraytypeInstance, 'ofwhat')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
347 if isinstance(elementInstance, ZSI.TC.ComplexType):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
348 if defaultValueArray is None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
349 part = self.complextypParser(elementInstance,param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
350 return part
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
351 # subclomplextypeClassInstance=self.complextypeParser(elementInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
352 # subValueArray.append(subclomplextypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
353 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
354 for eleValue in defaultValueArray:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
355 part = self.complextypParser(eleValue,defaulValueArray,param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
356 subclomplextypeClassInstance=self.complextypeParser(eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
357 # subValueArray.append(subclomplextypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
358 # setattr(elementInstance, eleName, subclomplextypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
359 elif isinstance(elementInstance, ZSI.TC.Array) :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
360 # print 'arraytype', elementInstance
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
361 if defaultValueArray is None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
362 part = self.arraytypParser(elementInstance, None,param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
363 # subarraytypeClassInstance=self.arraytypeParser(elementInstance, None)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
364 # subValueArray.append(subarraytypeClassInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
365 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
366 for eleValue in defaultValueArray:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
367 part = self.arraytypParser(copy.deepcopy(elementInstance), eleValue,param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
368 # subArray=self.arraytypeParser(copy.deepcopy(elementInstance), eleValue)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
369 # subValueArray.append(subArray)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
370
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
371 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
372 #simple type such as string...directly return the [value,...]of the arraytypeInstance (default value)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
373 return elementInstance
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
374 return None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
375
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 #if __name__=="__main__":
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
379
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
380