Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1807

Show
Ignore:
Timestamp:
05/25/07 15:06:29 (2 years ago)
Author:
nahi
Message:
  • WSDL parsing cleanups.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/wsdl/operation.rb

    r1711 r1807  
    4646  end 
    4747 
     48  def operationname 
     49    as_operationname(@name) 
     50  end 
     51 
    4852  def input_info 
    4953    if message = input_message 
     
    5256      typename = nil 
    5357    end 
    54     NameInfo.new(operationname(@name), typename, inputparts) 
     58    NameInfo.new(operationname, typename, inputparts) 
    5559  end 
    5660 
     
    6165      typename = nil 
    6266    end 
    63     NameInfo.new(operationname(@name), typename, outputparts) 
     67    NameInfo.new(operationname, typename, outputparts) 
    6468  end 
    6569 
    6670  EMPTY = [].freeze 
    67  
    6871  def inputparts 
    6972    if message = input_message 
     
    7679  def inputname 
    7780    if input 
    78       operationname(input.name ? input.name.name : @name) 
     81      as_operationname(input.name ? input.name.name : @name) 
    7982    else 
    8083      nil 
     
    9295  def outputname 
    9396    if output 
    94       operationname(output.name ? output.name.name : @name + 'Response') 
     97      as_operationname(output.name ? output.name.name : @name + 'Response') 
    9598    else 
    9699      nil 
     
    167170  end 
    168171 
    169   def operationname(name) 
     172  def as_operationname(name) 
    170173    XSD::QName.new(targetnamespace, name) 
    171174  end 
  • trunk/lib/wsdl/operationBinding.rb

    r1783 r1807  
    5050 
    5151  def soapoperation_name 
    52     if @soapoperation 
    53       @soapoperation.input_info.op_name 
    54     else 
    55       find_operation.name 
     52    op_name = find_operation.operationname 
     53    if @input and @input.soapbody and @input.soapbody.namespace 
     54      op_name = XSD::QName.new(@input.soapbody.namespace, op_name.name) 
    5655    end 
     56    op_name 
    5757  end 
    5858 
     
    7575      nil 
    7676    end 
    77   end 
    78  
    79   def soapbody 
    80     (@input || @output).soapbody 
    81   end 
    82  
    83   def soapnamespace 
    84     soapbody ? soapbody.namespace : nil 
    8577  end 
    8678 
  • trunk/lib/wsdl/param.rb

    r1794 r1807  
    4545  end 
    4646 
     47  def soapbody_encodingstyle 
     48    if @soapbody 
     49      @soapbody.encodingstyle 
     50    else 
     51      nil 
     52    end 
     53  end 
     54 
    4755  def parse_element(element) 
    4856    case element 
  • trunk/lib/wsdl/soap/body.rb

    r1574 r1807  
    4444    when EncodingStyleAttrName 
    4545      @encodingstyle = value.source 
     46      @encodingstyle = nil if @encodingstyle.to_s.empty? 
     47      value.source 
    4648    when NamespaceAttrName 
    4749      @namespace = value.source 
  • trunk/lib/wsdl/soap/methodDefCreator.rb

    r1789 r1807  
    112112    inputuse = binding.input ? binding.input.soapbody_use : nil 
    113113    outputuse = binding.output ? binding.output.soapbody_use : nil 
    114     namespace = binding.soapnamespace 
    115114    if style == :rpc 
    116       qname = XSD::QName.new(namespace, name_as) 
     115      qname = binding.soapoperation_name 
    117116      paramstr = param2str(collect_rpcparameter(operation)) 
    118117    else 
  • trunk/lib/wsdl/soap/operation.rb

    r1520 r1807  
    1919    attr_reader :op_name 
    2020    attr_reader :optype_name 
     21    attr_reader :encodingstyle 
    2122    attr_reader :headerparts 
    2223    attr_reader :bodyparts 
     
    2425    attr_reader :soapaction 
    2526     
    26     def initialize(style, op_name, optype_name, headerparts, bodyparts, faultpart, soapaction) 
     27    def initialize(style, use, encodingstyle, op_name, optype_name, 
     28        headerparts, bodyparts, faultpart, soapaction) 
    2729      @style = style 
     30      @use = use 
     31      @encodingstyle = encodingstyle 
    2832      @op_name = op_name 
    2933      @optype_name = optype_name 
     
    8993 
    9094  def param_info(name_info, param) 
     95    op_style = operation_style() 
     96    op_use = param.soapbody_use 
     97    op_encodingstyle = param.soapbody_encodingstyle 
    9198    op_name = name_info.op_name 
    9299    optype_name = name_info.optype_name 
    93  
    94100    soapheader = param.soapheader 
    95101    headerparts = soapheader.collect { |item| item.find_part } 
    96  
    97102    soapbody = param.soapbody 
    98     if soapbody.encodingstyle and 
    99         soapbody.encodingstyle != ::SOAP::EncodingNamespace 
    100       raise NotImplementedError.new( 
    101         "EncodingStyle '#{ soapbody.encodingstyle }' not supported.") 
    102     end 
    103103    if soapbody.namespace 
    104104      op_name = XSD::QName.new(soapbody.namespace, op_name.name) 
     
    112112      bodyparts = name_info.parts 
    113113    end 
    114  
    115114    faultpart = nil 
    116     OperationInfo.new(operation_style, op_name, optype_name, headerparts, bodyparts, faultpart, parent.soapaction) 
     115    OperationInfo.new(op_style, op_use, op_encodingstyle, op_name, optype_name, 
     116      headerparts, bodyparts, faultpart, parent.soapaction) 
    117117  end 
    118118end