In: |
soap/mapping/registry.rb
|
Parent: | Object |
# File soap/mapping/registry.rb, line 121 def initialize(registry) @map = [] @registry = registry end
Give priority to latter entry.
# File soap/mapping/registry.rb, line 157 def add(obj_class, soap_class, factory, info) info ||= {} @map.unshift([obj_class, soap_class, factory, info]) end
# File soap/mapping/registry.rb, line 175 def find_mapped_obj_class(target_soap_class) @map.each do |obj_class, soap_class, factory, info| if soap_class == target_soap_class return obj_class end end nil end
# File soap/mapping/registry.rb, line 166 def find_mapped_soap_class(target_obj_class) @map.each do |obj_class, soap_class, factory, info| if obj_class == target_obj_class return soap_class end end nil end
Give priority to former entry.
# File soap/mapping/registry.rb, line 149 def init(init_map = []) clear init_map.reverse_each do |obj_class, soap_class, factory, info| add(obj_class, soap_class, factory, info) end end
# File soap/mapping/registry.rb, line 126 def obj2soap(klass, obj, type_qname = nil) @map.each do |obj_class, soap_class, factory, info| if klass == obj_class or (info[:derived_class] and klass <= obj_class) ret = factory.obj2soap(soap_class, obj, info, @registry) return ret if ret end end nil end
# File soap/mapping/registry.rb, line 137 def soap2obj(klass, node) @map.each do |obj_class, soap_class, factory, info| if klass == soap_class or (info[:derived_class] and klass <= soap_class) conv, obj = factory.soap2obj(obj_class, node, info, @registry) return true, obj if conv end end return false end