Parent

Files

Class/Module Index [+]

Quicksearch

WSDL::OperationBinding

Attributes

fault[R]
input[R]
name[R]
output[R]
soapoperation[R]

Public Class Methods

new() click to toggle source
# File lib/wsdl/operationBinding.rb, line 78
def initialize
  super
  @name = nil
  @input = nil
  @output = nil
  @fault = []
  @soapoperation = nil
end

Public Instance Methods

boundid() click to toggle source
# File lib/wsdl/operationBinding.rb, line 121
def boundid
  BoundId.new(name, soapaction)
end
find_operation() click to toggle source
# File lib/wsdl/operationBinding.rb, line 125
def find_operation
  porttype.operations.each do |op|
    next if op.name != @name
    next if op.input and @input and op.input.name and @input.name and
      op.input.name != @input.name
    next if op.output and @output and op.output.name and @output.name and
      op.output.name != @output.name
    return op
  end
  raise RuntimeError.new("#{@name} not found")
end
operation_info() click to toggle source
# File lib/wsdl/operationBinding.rb, line 87
def operation_info
  qname = soapoperation_name()
  style = soapoperation_style()
  use_input = soapbody_use(@input)
  use_output = soapbody_use(@output)
  info = OperationInfo.new(boundid, qname, style, use_input, use_output)
  op = find_operation()
  if style == :rpc
    info.parts.concat(collect_rpcparameter(op))
  else
    info.parts.concat(collect_documentparameter(op))
  end
  @fault.each do |fault|
    op_fault = {}
    soapfault = fault.soapfault
    next if soapfault.nil?
    op_fault[:ns] = fault.name.namespace
    op_fault[:name] = fault.name.name
    op_fault[:namespace] = soapfault.namespace
    op_fault[:use] = soapfault.use || "literal"
    op_fault[:encodingstyle] = soapfault.encodingstyle || "document"
    info.faults[fault.name] = op_fault
  end
  info
end
parse_attr(attr, value) click to toggle source
# File lib/wsdl/operationBinding.rb, line 191
def parse_attr(attr, value)
  case attr
  when NameAttrName
    @name = value.source
  else
    nil
  end
end
parse_element(element) click to toggle source
# File lib/wsdl/operationBinding.rb, line 165
def parse_element(element)
  case element
  when InputName
    o = Param.new
    @input = o
    o
  when OutputName
    o = Param.new
    @output = o
    o
  when FaultName
    o = Param.new
    @fault << o
    o
  when SOAPOperationName
    o = WSDL::SOAP::Operation.new
    @soapoperation = o
    o
  when DocumentationName
    o = Documentation.new
    o
  else
    nil
  end
end
porttype() click to toggle source
# File lib/wsdl/operationBinding.rb, line 117
def porttype
  root.porttype(parent.type)
end
soapaction() click to toggle source
# File lib/wsdl/operationBinding.rb, line 157
def soapaction
  if @soapoperation
    @soapoperation.soapaction
  else
    nil
  end
end
soapoperation_name() click to toggle source
# File lib/wsdl/operationBinding.rb, line 137
def soapoperation_name
  op_name = find_operation.operationname
  if @input and @input.soapbody and @input.soapbody.namespace
    op_name = XSD::QName.new(@input.soapbody.namespace, op_name.name)
  end
  op_name
end
soapoperation_style() click to toggle source
# File lib/wsdl/operationBinding.rb, line 145
def soapoperation_style
  style = nil
  if @soapoperation
    style = @soapoperation.operation_style
  elsif parent.soapbinding
    style = parent.soapbinding.style
  else
    raise TypeError.new("operation style definition not found")
  end
  style || :document
end
targetnamespace() click to toggle source
# File lib/wsdl/operationBinding.rb, line 113
def targetnamespace
  parent.targetnamespace
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.