Class | SOAP::Mapping::HashFactory_ |
In: |
lib/soap/mapping/factory.rb
|
Parent: | Factory |
# File lib/soap/mapping/factory.rb, line 304 304: def initialize(allow_original_mapping = false) 305: super() 306: @allow_original_mapping = allow_original_mapping 307: end
# File lib/soap/mapping/factory.rb, line 309 309: def obj2soap(soap_class, obj, info, map) 310: if !@allow_original_mapping and !obj.instance_variables.empty? 311: return nil 312: end 313: if !obj.default.nil? or 314: (obj.respond_to?(:default_proc) and obj.default_proc) 315: return nil 316: end 317: soap_obj = SOAPStruct.new(MapQName) 318: mark_marshalled_obj(obj, soap_obj) 319: obj.each do |key, value| 320: elem = SOAPStruct.new 321: elem.add("key", Mapping._obj2soap(key, map)) 322: elem.add("value", Mapping._obj2soap(value, map)) 323: # ApacheAxis allows only 'item' here. 324: soap_obj.add("item", elem) 325: end 326: soap_obj 327: end
# File lib/soap/mapping/factory.rb, line 329 329: def soap2obj(obj_class, node, info, map) 330: unless node.type == MapQName 331: return false 332: end 333: if node.class == SOAPStruct and node.key?('default') 334: return false 335: end 336: obj = Mapping.create_empty_object(obj_class) 337: mark_unmarshalled_obj(node, obj) 338: if node.class == SOAPStruct 339: node.each do |key, value| 340: obj[Mapping._soap2obj(value['key'], map)] = 341: Mapping._soap2obj(value['value'], map) 342: end 343: else 344: node.each do |value| 345: obj[Mapping._soap2obj(value['key'], map)] = 346: Mapping._soap2obj(value['value'], map) 347: end 348: end 349: return true, obj 350: end