Class: SOAP::Mapping::TypedArrayFactory_
Instance Method Summary
collapse
Methods inherited from Factory
#setiv2obj, #setiv2soap
#mark_marshalled_obj, #mark_unmarshalled_obj
Constructor Details
#initialize(allow_original_mapping = false) ⇒ TypedArrayFactory_
258
259
260
261
|
# File 'lib/soap/mapping/factory.rb', line 258
def initialize(allow_original_mapping = false)
super()
@allow_original_mapping = allow_original_mapping
end
|
Instance Method Details
#obj2soap(soap_class, obj, info, map) ⇒ Object
263
264
265
266
267
268
269
270
271
272
273
274
|
# File 'lib/soap/mapping/factory.rb', line 263
def obj2soap(soap_class, obj, info, map)
if !@allow_original_mapping and !obj.instance_variables.empty?
return nil
end
arytype = info[:type] || info[0]
soap_obj = SOAPArray.new(ValueArrayName, 1, arytype)
mark_marshalled_obj(obj, soap_obj)
obj.each do |var|
soap_obj.add(Mapping._obj2soap(var, map))
end
soap_obj
end
|
#soap2obj(obj_class, node, info, map) ⇒ Object
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
|
# File 'lib/soap/mapping/factory.rb', line 276
def soap2obj(obj_class, node, info, map)
if node.rank > 1
return false
end
arytype = info[:type] || info[0]
unless node.arytype == arytype
return false
end
obj = Mapping.create_empty_object(obj_class)
mark_unmarshalled_obj(node, obj)
node.soap2array(obj) do |elem|
elem ? Mapping._soap2obj(elem, map) : nil
end
return true, obj
end
|