Class: WsdlMapper::Deserializers::Deserializer

Inherits:
Object
  • Object
show all
Includes:
WsdlMapper::Dom
Defined in:
lib/wsdl_mapper/deserializers/deserializer.rb

Direct Known Subclasses

LazyLoadingDeserializer

Instance Method Summary (collapse)

Constructor Details

- (Deserializer) initialize(type_mapping: WsdlMapper::TypeMapping::DEFAULT, qualified_elements: false, qualified_attributes: false)

Returns a new instance of Deserializer



19
20
21
22
23
24
25
26
27
28
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 19

def initialize(type_mapping: WsdlMapper::TypeMapping::DEFAULT, qualified_elements: false, qualified_attributes: false)
  @tm = type_mapping
  @element_mappings = Directory.new on_nil: Errors::UnknownElementError
  @type_mappings = Directory.new on_nil: Errors::UnknownTypeError
  @element_type_mappings = Directory.new do |name|
    get_type_mapping get_element_type name
  end
  @qualified_elements = qualified_elements
  @qualified_attributes = qualified_attributes
end

Instance Method Details

- (Object) from_xml(xml)



30
31
32
33
34
35
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 30

def from_xml(xml)
  doc = SaxDocument.new self
  parser = Nokogiri::XML::SAX::Parser.new doc
  parser.parse xml
  doc.object
end

- (Object) get_element_type(element_name)



48
49
50
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 48

def get_element_type(element_name)
  @element_mappings[element_name]
end

- (Object) get_element_type_mapping(element_name)



52
53
54
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 52

def get_element_type_mapping(element_name)
  @element_type_mappings[element_name]
end

- (Object) get_type_mapping(type_name)



56
57
58
59
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 56

def get_type_mapping(type_name)
  return if WsdlMapper::Dom::BuiltinType.builtin? type_name
  @type_mappings[type_name]
end

- (Boolean) qualified_attributes?

Returns:

  • (Boolean)


69
70
71
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 69

def qualified_attributes?
  !!@qualified_attributes
end

- (Boolean) qualified_elements?

Returns:

  • (Boolean)


65
66
67
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 65

def qualified_elements?
  !!@qualified_elements
end

- (Object) register_element(element_name, type_name)



37
38
39
40
41
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 37

def register_element(element_name, type_name)
  element_name = Name.get *element_name
  type_name = Name.get *type_name
  @element_mappings[element_name] = type_name
end

- (Object) register_type(type_name, class_mapping)



43
44
45
46
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 43

def register_type(type_name, class_mapping)
  type_name = Name.get *type_name
  @type_mappings[type_name] = class_mapping
end

- (Object) to_ruby(type, value)



61
62
63
# File 'lib/wsdl_mapper/deserializers/deserializer.rb', line 61

def to_ruby(type, value)
  @tm.to_ruby type, value
end