Class: WSDL::SOAP::MethodDefCreator

Inherits:
Object
  • Object
show all
Includes:
ClassDefCreatorSupport
Defined in:
lib/action_web_service/wsdl/soap/methodDefCreator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ClassDefCreatorSupport

#basetype_mapped_class, #create_class_name, #dq, #dqname, #dump_method_signature, #ndq, #sym

Methods included from XSD::CodeGen::GenSupport

capitalize, #format, keyword?, safeconstname, safeconstname?, safemethodname, safemethodname?, safevarname, safevarname?, uncapitalize

Constructor Details

#initialize(definitions) ⇒ MethodDefCreator

Returns a new instance of MethodDefCreator.



23
24
25
26
27
28
29
# File 'lib/action_web_service/wsdl/soap/methodDefCreator.rb', line 23

def initialize(definitions)
  @definitions = definitions
  @simpletypes = @definitions.collect_simpletypes
  @complextypes = @definitions.collect_complextypes
  @elements = @definitions.collect_elements
  @types = []
end

Instance Attribute Details

#definitionsObject (readonly)

Returns the value of attribute definitions.



21
22
23
# File 'lib/action_web_service/wsdl/soap/methodDefCreator.rb', line 21

def definitions
  @definitions
end

Instance Method Details

#collect_documentparameter(operation) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/action_web_service/wsdl/soap/methodDefCreator.rb', line 66

def collect_documentparameter(operation)
  param = []
  operation.inputparts.each do |input|
    param << param_set(::SOAP::RPC::SOAPMethod::IN, input.name,
      documentdefinedtype(input), elementqualified(input))
  end
  operation.outputparts.each do |output|
    param << param_set(::SOAP::RPC::SOAPMethod::OUT, output.name,
      documentdefinedtype(output), elementqualified(output))
  end
  param
end

#collect_rpcparameter(operation) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/action_web_service/wsdl/soap/methodDefCreator.rb', line 46

def collect_rpcparameter(operation)
  result = operation.inputparts.collect { |part|
    collect_type(part.type)
    param_set(::SOAP::RPC::SOAPMethod::IN, part.name, rpcdefinedtype(part))
  }
  outparts = operation.outputparts
  if outparts.size > 0
    retval = outparts[0]
    collect_type(retval.type)
    result << param_set(::SOAP::RPC::SOAPMethod::RETVAL, retval.name,
      rpcdefinedtype(retval))
    cdr(outparts).each { |part|
	collect_type(part.type)
	result << param_set(::SOAP::RPC::SOAPMethod::OUT, part.name,
        rpcdefinedtype(part))
    }
  end
  result
end

#dump(porttype) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/action_web_service/wsdl/soap/methodDefCreator.rb', line 31

def dump(porttype)
  @types.clear
  result = ""
  operations = @definitions.porttype(porttype).operations
  binding = @definitions.porttype_binding(porttype)
  operations.each do |operation|
    op_bind = binding.operations[operation.name]
    next unless op_bind # no binding is defined
    next unless op_bind.soapoperation # not a SOAP operation binding
    result << ",\n" unless result.empty?
    result << dump_method(operation, op_bind).chomp
  end
  return result, @types
end