class WsdlMapper::SvcDescParsing::BindingParser

Public Instance Methods

parse(node) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 7
def parse(node)
  name = parse_name_in_attribute 'name', node

  binding = Binding.new name
  binding.type_name = parse_name_in_attribute 'type', node

  success = true
  each_element node do |child|
    success = parse_binding_child(child, binding) && success
  end

  @base.description.add_binding(binding) if success
end
parse_binding_child(node, binding) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 21
def parse_binding_child(node, binding)
  case get_name node
  when OPERATION
    parse_binding_operation node, binding
  when Soap::BINDING
    parse_soap_binding node, binding
  when Soap12::BINDING
    log_msg node, :unsupported
    return false
  when Http::BINDING
    log_msg node, :unsupported
    return false
  when DOCUMENTATION
    @base.parse_documentation node, binding
  else
    log_msg node, :unknown
    return false
  end
end
parse_binding_operation(node, binding) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 46
def parse_binding_operation(node, binding)
  name = parse_name_in_attribute 'name', node

  operation = Binding::Operation.new name

  each_element node do |child|
    parse_operation_child child, operation
  end

  binding.add_operation operation
end
parse_body(node) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 111
def parse_body(node)
  body = Binding::Body.new
  body.use = fetch_attribute_value 'use', node
  body.encoding_styles = fetch_attribute_value('encodingStyle', node, '').split ' '
  body.namespace = fetch_attribute_value 'namespace', node
  body.part_names = fetch_attribute_value('parts', node, '').split(' ').map { |s| parse_name(s, node) }
  body
end
parse_fault_child(node, fault) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 179
def parse_fault_child(node, fault)
  case get_name node
  when Soap::FAULT
    parse_soap_fault node, fault
  when DOCUMENTATION
    @base.parse_documentation node, fault
  else
    log_msg node, :unknown
  end
end
parse_header(node) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 120
def parse_header(node)
  header = Binding::Header.new
  header.use = fetch_attribute_value 'use', node
  header.message_name = parse_name_in_attribute 'message', node
  header.part_name = parse_name_in_attribute 'part', node
  header.encoding_styles = fetch_attribute_value('encodingStyle', node, '').split ' '
  header.namespace = fetch_attribute_value 'namespace', node

  each_element node do |child|
    parse_header_child child, header
  end

  header
end
parse_header_child(node, header) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 135
def parse_header_child(node, header)
  case get_name node
  when Soap::HEADER_FAULT
    parse_header_fault node, header
  when DOCUMENTATION
    @base.parse_documentation node, header
  else
    log_msg node, :unknown
  end
end
parse_header_fault(node, header) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 146
def parse_header_fault(node, header)
  header_fault = Binding::HeaderFault.new
  header_fault.use = fetch_attribute_value 'use', node
  header_fault.message_name = parse_name_in_attribute 'message', node
  header_fault.part_name = parse_name_in_attribute 'part', node
  header_fault.encoding_styles = fetch_attribute_value('encodingStyle', node, '').split ' '
  header_fault.namespace = fetch_attribute_value 'namespace', node

  header.add_header_fault header_fault
end
parse_input_output_child(node, in_out) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 94
def parse_input_output_child(node, in_out)
  case get_name node
  when Soap::HEADER
    in_out.add_header parse_header node
  when Soap::BODY
    in_out.body = parse_body node
  when Soap12::HEADER
    log_msg node, :unsupported
  when Soap12::BODY
    log_msg node, :unsupported
  when DOCUMENTATION
    @base.parse_documentation node, in_out
  else
    log_msg node, :unknown
  end
end
parse_operation_child(node, operation) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 58
def parse_operation_child(node, operation)
  case get_name node
  when INPUT
    parse_operation_input node, operation
  when OUTPUT
    parse_operation_output node, operation
  when FAULT
    parse_operation_fault node, operation
  when Soap::OPERATION
    parse_operation_soap_action node, operation
  when Soap12::OPERATION
    log_msg node, :unsupported
  when Http::OPERATION
    log_msg node, :unsupported
  when DOCUMENTATION
    @base.parse_documentation node, operation
  else
    log_msg node, :unknown
  end
end
parse_operation_fault(node, operation) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 168
def parse_operation_fault(node, operation)
  name = parse_name_in_attribute 'name', node
  fault = Binding::Fault.new name

  each_element node do |child|
    parse_fault_child child, fault
  end

  operation.add_fault fault
end
parse_operation_input(node, operation) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 83
def parse_operation_input(node, operation)
  name = parse_name_in_attribute 'name', node
  input = Binding::InputOutput.new name

  each_element node do |child|
    parse_input_output_child child, input
  end

  operation.input = input
end
parse_operation_output(node, operation) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 157
def parse_operation_output(node, operation)
  name = parse_name_in_attribute 'name', node
  output = Binding::InputOutput.new name

  each_element node do |child|
    parse_input_output_child child, output
  end

  operation.output = output
end
parse_operation_soap_action(node, operation) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 79
def parse_operation_soap_action(node, operation)
  operation.soap_action = fetch_attribute_value 'soapAction', node
end
parse_soap_binding(node, binding) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 41
def parse_soap_binding(node, binding)
  binding.style = fetch_attribute_value 'style', node
  binding.transport = fetch_attribute_value 'transport', node
end
parse_soap_fault(node, fault) click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb, line 190
def parse_soap_fault(node, fault)
  name = parse_name_in_attribute 'name', node
  soap_fault = Binding::SoapFault.new name
  soap_fault.use = fetch_attribute_value 'use', node
  fault.soap_fault = soap_fault
end