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

root/branches/1_5/lib/wsdl/port.rb

Revision 1824, 1.6 kB (checked in by nahi, 1 year ago)
  • Copyright notice updated. add '2000-2007' uniformly.
  • Property svn:eol-style set to native
  • Property svn:keywords set to author date id revision
Line 
1 # WSDL4R - WSDL port definition.
2 # Copyright (C) 2000-2007  NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
4 # This program is copyrighted free software by NAKAMURA, Hiroshi.  You can
5 # redistribute it and/or modify it under the same terms of Ruby's license;
6 # either the dual license version in 2003, or any later version.
7
8
9 require 'wsdl/info'
10
11
12 module WSDL
13
14
15 class Port < Info
16   attr_reader :name             # required
17   attr_reader :binding          # required
18   attr_reader :soap_address
19
20   def initialize
21     super
22     @name = nil
23     @binding = nil
24     @soap_address = nil
25   end
26
27   def targetnamespace
28     parent.targetnamespace
29   end
30
31   def porttype
32     root.porttype(find_binding.type)
33   end
34
35   def find_binding
36     root.binding(@binding) or raise RuntimeError.new("#{@binding} not found")
37   end
38
39   def inputoperation_map
40     result = {}
41     find_binding.operations.each do |op_bind|
42       op_info = op_bind.soapoperation.input_info
43       result[op_info.op_name] = op_info
44     end
45     result
46   end
47
48   def outputoperation_map
49     result = {}
50     find_binding.operations.each do |op_bind|
51       op_info = op_bind.soapoperation.output_info
52       result[op_info.op_name] = op_info
53     end
54     result
55   end
56
57   def parse_element(element)
58     case element
59     when SOAPAddressName
60       o = WSDL::SOAP::Address.new
61       @soap_address = o
62       o
63     when DocumentationName
64       o = Documentation.new
65       o
66     else
67       nil
68     end
69   end
70
71   def parse_attr(attr, value)
72     case attr
73     when NameAttrName
74       @name = XSD::QName.new(targetnamespace, value.source)
75     when BindingAttrName
76       @binding = value
77     else
78       nil
79     end
80   end
81 end
82
83
84 end
Note: See TracBrowser for help on using the browser.