class SOAP::Mapping::Object

For anyType object: SOAP::Mapping::Object not ::Object

Public Class Methods

new() click to toggle source
# File lib/soap/mapping/registry.rb, line 65
def initialize
  @__xmlele_type = {}
  @__xmlele = []
  @__xmlattr = {}
end

Public Instance Methods

[](qname) click to toggle source
# File lib/soap/mapping/registry.rb, line 84
def [](qname)
  unless qname.is_a?(XSD::QName)
    qname = XSD::QName.new(nil, qname)
  end
  @__xmlele.each do |k, v|
    return v if k == qname
  end
  # fallback
  @__xmlele.each do |k, v|
    return v if k.name == qname.name
  end
  nil
end
[]=(qname, value) click to toggle source
# File lib/soap/mapping/registry.rb, line 98
def []=(qname, value)
  unless qname.is_a?(XSD::QName)
    qname = XSD::QName.new(nil, qname)
  end
  found = false
  @__xmlele.each do |pair|
    if pair[0] == qname
      found = true
      pair[1] = value
    end
  end
  unless found
    __define_attr_accessor(qname)
    @__xmlele << [qname, value]
  end
  @__xmlele_type[qname] = :single
end
__add_xmlele_value(qname, value) click to toggle source
# File lib/soap/mapping/registry.rb, line 116
def __add_xmlele_value(qname, value)
  found = false
  @__xmlele.map! do |k, v|
    if k == qname
      found = true
      [k, __set_xmlele_value(k, v, value)]
    else
      [k, v]
    end
  end
  unless found
    __define_attr_accessor(qname)
    @__xmlele << [qname, value]
    @__xmlele_type[qname] = :single
  end
  value
end
__xmlattr() click to toggle source
# File lib/soap/mapping/registry.rb, line 76
def __xmlattr
  @__xmlattr
end
__xmlele() click to toggle source
# File lib/soap/mapping/registry.rb, line 80
def __xmlele
  @__xmlele
end
inspect() click to toggle source
# File lib/soap/mapping/registry.rb, line 71
def inspect
  sprintf("#<%s:0x%x%s>", self.class.name, __id__,
    @__xmlele.collect { |name, value| " #{name}=#{value.inspect}" }.join)
end

Private Instance Methods

__define_attr_accessor(qname) click to toggle source
# File lib/soap/mapping/registry.rb, line 137
def __define_attr_accessor(qname)
  name = XSD::CodeGen::GenSupport.safemethodname(qname.name)
  Mapping.define_attr_accessor(self, name,
    proc { self[qname] },
    proc { |value| self[qname] = value })
end
__set_xmlele_value(key, org, value) click to toggle source
# File lib/soap/mapping/registry.rb, line 158
def __set_xmlele_value(key, org, value)
  case @__xmlele_type[key]
  when :multi
    org << value
    org
  when :single
    @__xmlele_type[key] = :multi
    [org, value]
  else
    raise RuntimeError.new("unknown type")
  end
end