class WsdlMapper::SvcDescParsing::Linker
The Linker
creates pointers between the different components of a WSDL schema, e.g. links service.port -> binding, portType
Public Class Methods
new(description)
click to toggle source
@param [WsdlMapper::SvcDesc::Wsdl11::Description] description
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 11 def initialize(description) @description = description end
Public Instance Methods
link()
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 15 def link schema = WsdlMapper::Dom::Schema.new @description.each_schema do |s| schema.add_import s.target_namespace, s end schema_linker = WsdlMapper::DomParsing::Linker.new schema schema_linker.link link_messages link_port_types link_bindings link_services [@description, schema] end
Private Instance Methods
link_binding_operation(b, op)
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 42 def link_binding_operation(b, op) op.target = b.type.find_operation op.name, op.input.name, op.output.name link_binding_operation_input op link_binding_operation_output op link_binding_operation_faults op end
link_binding_operation_faults(op)
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 50 def link_binding_operation_faults(op) op.each_fault do |fault| fault.target = op.target.get_fault fault.name end end
link_binding_operation_input(op)
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 74 def link_binding_operation_input(op) op.input.target = op.target.input op.input.message = op.target.input.message op.input.each_header do |header| if header.message_name header.message = @description.get_message header.message_name header.part = header.message.get_part header.part_name end header.each_header_fault do |header_fault| header_fault.message = @description.get_message header_fault.message_name header_fault.part = header_fault.message.get_part header_fault.part_name end end op.input.body.parts = op.input.body.part_names.map do |pn| op.input.message.get_part pn end end
link_binding_operation_output(op)
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 56 def link_binding_operation_output(op) op.output.target = op.target.output op.output.message = op.target.output.message op.output.each_header do |header| if header.message_name header.message = @description.get_message header.message_name header.part = header.message.get_part header.part_name end header.each_header_fault do |header_fault| header_fault.message = @description.get_message header_fault.message_name header_fault.part = header_fault.message.get_part header_fault.part_name end end op.output.body.parts = op.output.body.part_names.map do |pn| op.output.message.get_part pn end end
link_bindings()
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 32 def link_bindings @description.each_binding do |b| b.type = @description.get_port_type b.type_name b.each_operation do |op| link_binding_operation b, op end end end
link_messages()
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 113 def link_messages @description.each_message do |msg| msg.each_part do |part| if part.element_name part.element = @description.get_element part.element_name elsif part.type_name part.type = @description.get_type part.type_name end end end end
link_port_types()
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 100 def link_port_types @description.each_port_type do |pt| pt.each_operation do |op| op.input.message = @description.get_message op.input.message_name op.output.message = @description.get_message op.output.message_name op.each_fault do |fault| fault.message = @description.get_message fault.message_name end end end end
link_services()
click to toggle source
# File lib/wsdl_mapper/svc_desc_parsing/linker.rb, line 92 def link_services @description.each_service do |svc| svc.each_port do |p| p.binding = @description.get_binding p.binding_name end end end