class WsdlMapper::SvcGeneration::OperationS8rGenerator

Constants

SOAP_BODY
SOAP_ENV_NS
SOAP_HEADER

Public Instance Methods

build_simple(f, type, obj_name, attr_name, element_name) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 240
def build_simple(f, type, obj_name, attr_name, element_name)
  root_type = type.root.name.name
  f.block "x.simple(#{generate_name(type.name)}, #{element_name})", ['x'] do
    f.call 'x.text_builtin', "#{obj_name}.#{attr_name}", root_type.inspect
  end
end
call_wrapper(f, op, suffix = '', &block) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 125
def call_wrapper(f, op, suffix = '', &block)
  f.block "x.complex(nil, #{generate_name(op.name, suffix)}, [])", ['x'], &block
end
encoded?(in_out) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 145
def encoded?(in_out)
  in_out.body.use == 'encoded'
end
generate_body(f, port, op, body_parts, in_out) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 129
def generate_body(f, port, op, body_parts, in_out)
  if rpc?(port)
    if encoded?(in_out)
      generate_rpc_encoded_body f, op, in_out, body_parts
    else #literal
      generate_rpc_literal_body f, op, in_out, body_parts
    end
  else #document
    if encoded?(in_out)
      generate_doc_encoded_body f, body_parts
    else #literal
      generate_doc_literal_body f, body_parts
    end
  end
end
generate_doc_encoded_body(f, body_parts) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 181
def generate_doc_encoded_body(f, body_parts)
  soap_body_wrapper f do
    body_parts.each do |part|
      generate_encoded_body_part f, part
    end
  end
end
generate_doc_literal_body(f, body_parts) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 153
def generate_doc_literal_body(f, body_parts)
  with_type = body_parts.first.part.element.nil?

  if with_type
    generate_doc_literal_type_body f, body_parts.first
  else
    generate_doc_literal_elements_body f, body_parts
  end
end
generate_doc_literal_elements_body(f, body_parts) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 169
def generate_doc_literal_elements_body(f, body_parts)
  soap_body_wrapper f do
    body_parts.each do |part|
      generate_doc_literal_elements_body_part f, part
    end
  end
end
generate_doc_literal_elements_body_part(f, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 177
def generate_doc_literal_elements_body_part(f, part)
  get_and_build_body f, part, part.part.element.name
end
generate_doc_literal_type_body(f, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 163
def generate_doc_literal_type_body(f, part)
  soap_body_wrapper f do
    get_and_build_body f, part, part.part.name
  end
end
generate_each_header(f, headers) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 62
def generate_each_header(f, headers)
  headers.each do |header|
    part = header.header.part
    if header.header.use == 'encoded'
      generate_encoded_header f, header, part
    else #literal
      generate_literal_header f, header, part
    end
  end
end
generate_encoded_body_part(f, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 223
def generate_encoded_body_part(f, part)
  get_and_build_body f, part, part.part.name
end
generate_encoded_header(f, header, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 93
def generate_encoded_header(f, header, part)
  soap_header_wrapper f do
    get_and_build_header f, header, part.name
  end
end
generate_literal_element_header(f, header, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 87
def generate_literal_element_header(f, header, part)
  soap_header_wrapper f do
    get_and_build_header f, header, part.element.name
  end
end
generate_literal_header(f, header, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 73
def generate_literal_header(f, header, part)
  if part.element
    generate_literal_element_header f, header, part
  else
    generate_literal_type_header f, header, part
  end
end
generate_literal_type_header(f, header, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 81
def generate_literal_type_header(f, header, part)
  soap_header_wrapper f do
    get_and_build_header f, header, part.name
  end
end
generate_op_input_s8r(service, port, op, result) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 18
def generate_op_input_s8r(service, port, op, result)
  modules = get_module_names service.name
  name = service_namer.get_input_s8r_name service.type, port.type, op.type

  type_file_for name, result do |f|
    f.requires input_s8r_base.require_path

    f.in_modules modules do
      in_classes f, service.name.class_name, port.name.class_name, op.name.class_name do
        generate_op_s8r_class f, port, op, name, op.type.input, input_s8r_base
      end
    end
  end
end
generate_op_output_s8r(service, port, op, result) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 33
def generate_op_output_s8r(service, port, op, result)
  modules = get_module_names service.name
  name = service_namer.get_output_s8r_name service.type, port.type, op.type

  type_file_for name, result do |f|
    f.requires output_s8r_base.require_path

    f.in_modules modules do
      in_classes f, service.name.class_name, port.name.class_name, op.name.class_name do
        generate_op_s8r_class f, port, op, name, op.type.output, output_s8r_base
      end
    end
  end
end
generate_op_s8r_body(f, port, op, in_out) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 106
def generate_op_s8r_body(f, port, op, in_out)
  body_parts = get_body_parts in_out
  f.in_def :build_body, 'x', 'body' do
    generate_body f, port, op, body_parts, in_out
  end
end
generate_op_s8r_class(f, port, op, name, in_out, base) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 48
def generate_op_s8r_class(f, port, op, name, in_out, base)
  f.in_sub_class name.class_name, base.name do
    generate_op_s8r_header f, port, op, in_out
    generate_op_s8r_body f, port, op, in_out
  end
end
generate_op_s8r_header(f, _port, _op, in_out) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 55
def generate_op_s8r_header(f, _port, _op, in_out)
  headers = get_header_parts in_out
  f.in_def :build_header, 'x', 'header' do
    generate_each_header f, headers
  end
end
generate_operation_s8r(service, port, op, result) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 13
def generate_operation_s8r(service, port, op, result)
  generate_op_input_s8r service, port, op, result
  generate_op_output_s8r service, port, op, result
end
generate_rpc_encoded_body(f, op, in_out, body_parts) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 212
def generate_rpc_encoded_body(f, op, in_out, body_parts)
  soap_body_wrapper f do
    suffix = in_out == op.type.output ? 'Response' : ''
    call_wrapper f, op.type, suffix do
      body_parts.each do |part|
        generate_encoded_body_part f, part
      end
    end
  end
end
generate_rpc_literal_body(f, op, in_out, body_parts) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 189
def generate_rpc_literal_body(f, op, in_out, body_parts)
  soap_body_wrapper f do
    suffix = in_out == op.type.output ? 'Response' : ''
    call_wrapper f, op.type, suffix do
      body_parts.each do |part|
        if part.part.element
          generate_rpc_literal_element_body_part f, part
        else
          generate_rpc_literal_type_body_part f, part
        end
      end
    end
  end
end
generate_rpc_literal_element_body_part(f, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 208
def generate_rpc_literal_element_body_part(f, part)
  get_and_build_body f, part, part.part.element.name
end
generate_rpc_literal_type_body_part(f, part) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 204
def generate_rpc_literal_type_body_part(f, part)
  get_and_build_body f, part, part.part.name
end
get_and_build(f, type_name, obj_name, attr_name, element_name) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 247
def get_and_build(f, type_name, obj_name, attr_name, element_name)
  f.statement "x.get(#{type_name}).build(x, #{obj_name}.#{attr_name}, #{element_name})"
end
get_and_build_body(f, part, element) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 227
def get_and_build_body(f, part, element)
  attr_name = part.property_name.attr_name
  element_name = generate_name element

  type_name = get_type_name part.type
  if WsdlMapper::Dom::BuiltinType.builtin?(type_name.name)
    build_simple f, part.type, 'body', attr_name, element_name
  else
    type_name = namer.get_type_name(get_type_name(part.type)).name.inspect
    get_and_build f, type_name, 'body', attr_name, element_name
  end
end
get_and_build_header(f, header, element) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 99
def get_and_build_header(f, header, element)
  type_name = namer.get_type_name(get_type_name(header.type)).name.inspect
  attr_name = header.property_name.attr_name
  element_name = generate_name element
  get_and_build f, type_name, 'header', attr_name, element_name
end
input_s8r_base() click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 251
def input_s8r_base
  @input_s8r_base ||= @generator.runtime_base 'InputS8r', 'input_s8r'
end
output_s8r_base() click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 255
def output_s8r_base
  @output_s8r_base ||= @generator.runtime_base 'OutputS8r', 'output_s8r'
end
part_wrapper(f, part, &block) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 121
def part_wrapper(f, part, &block)
  f.block "x.complex(nil, #{generate_name(part.name)}, [])", ['x'], &block
end
rpc?(port) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 149
def rpc?(port)
  port.type.binding.style == 'rpc'
end
soap_body_wrapper(f, &block) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 117
def soap_body_wrapper(f, &block)
  f.block "x.complex(nil, #{generate_name(SOAP_BODY)}, [])", ['x'], &block
end
soap_header_wrapper(f, &block) click to toggle source
# File lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb, line 113
def soap_header_wrapper(f, &block)
  f.block "x.complex(nil, #{generate_name(SOAP_HEADER)}, [])", ['x'], &block
end