| Class | SOAP::Mapping::ArrayFactory_ |
| In: |
lib/soap/mapping/factory.rb
|
| Parent: | Factory |
# File lib/soap/mapping/factory.rb, line 206
206: def initialize(allow_original_mapping = false)
207: super()
208: @allow_original_mapping = allow_original_mapping
209: end
To create M-D Array, you must call Mapping.ary2md.
# File lib/soap/mapping/factory.rb, line 213
213: def obj2soap(soap_class, obj, info, map)
214: if !@allow_original_mapping and !obj.instance_variables.empty?
215: return nil
216: end
217: arytype = Mapping.obj2element(obj)
218: if arytype.name
219: arytype.namespace ||= RubyTypeNamespace
220: else
221: arytype = XSD::AnyTypeName
222: end
223: soap_obj = SOAPArray.new(ValueArrayName, 1, arytype)
224: mark_marshalled_obj(obj, soap_obj)
225: obj.each do |item|
226: soap_obj.add(Mapping._obj2soap(item, map))
227: end
228: soap_obj
229: end
# File lib/soap/mapping/factory.rb, line 231
231: def soap2obj(obj_class, node, info, map)
232: obj = Mapping.create_empty_object(obj_class)
233: mark_unmarshalled_obj(node, obj)
234: node.soap2array(obj) do |elem|
235: elem ? Mapping._soap2obj(elem, map) : nil
236: end
237: return true, obj
238: end