Class | WSDL::Operation |
In: |
lib/wsdl/operation.rb
|
Parent: | Info |
fault | [R] | |
input | [R] | |
name | [R] | |
output | [R] | |
parameter_order | [R] | |
type | [R] |
# File lib/wsdl/operation.rb, line 34 34: def initialize 35: super 36: @name = nil 37: @type = nil 38: @parameter_order = nil 39: @input = nil 40: @output = nil 41: @fault = [] 42: end
# File lib/wsdl/operation.rb, line 48 48: def input_info 49: typename = input.find_message.name 50: NameInfo.new(@name, typename, inputparts) 51: end
# File lib/wsdl/operation.rb, line 62 62: def inputname 63: XSD::QName.new(targetnamespace, input.name ? input.name.name : @name.name) 64: end
# File lib/wsdl/operation.rb, line 58 58: def inputparts 59: sort_parts(input.find_message.parts) 60: end
# File lib/wsdl/operation.rb, line 53 53: def output_info 54: typename = output.find_message.name 55: NameInfo.new(@name, typename, outputparts) 56: end
# File lib/wsdl/operation.rb, line 70 70: def outputname 71: XSD::QName.new(targetnamespace, 72: output.name ? output.name.name : @name.name + 'Response') 73: end
# File lib/wsdl/operation.rb, line 66 66: def outputparts 67: sort_parts(output.find_message.parts) 68: end
# File lib/wsdl/operation.rb, line 97 97: def parse_attr(attr, value) 98: case attr 99: when NameAttrName 100: @name = XSD::QName.new(targetnamespace, value.source) 101: when TypeAttrName 102: @type = value 103: when ParameterOrderAttrName 104: @parameter_order = value.source.split(/\s+/) 105: else 106: nil 107: end 108: end
# File lib/wsdl/operation.rb, line 75 75: def parse_element(element) 76: case element 77: when InputName 78: o = Param.new 79: @input = o 80: o 81: when OutputName 82: o = Param.new 83: @output = o 84: o 85: when FaultName 86: o = Param.new 87: @fault << o 88: o 89: when DocumentationName 90: o = Documentation.new 91: o 92: else 93: nil 94: end 95: end
# File lib/wsdl/operation.rb, line 112 112: def sort_parts(parts) 113: return parts.dup unless parameter_order 114: result = [] 115: parameter_order.each do |orderitem| 116: if (ele = parts.find { |part| part.name == orderitem }) 117: result << ele 118: end 119: end 120: if result.length == 0 121: return parts.dup 122: end 123: # result length can be shorter than parts's. 124: # return part must not be a part of the parameterOrder. 125: result 126: end