Class: WsdlMapper::SvcDescParsing::BindingParser
- Inherits:
-
ParserBase
show all
- Defined in:
- lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb
Constant Summary
Constants inherited
from ParserBase
ParserBase::Http, ParserBase::Soap, ParserBase::Soap12, ParserBase::SoapEnc, ParserBase::SoapHttp
Constants included
from Wsdl11
Wsdl11::ARRAY_TYPE, Wsdl11::BINDING, Wsdl11::DEFINITIONS, Wsdl11::DOCUMENTATION, Wsdl11::FAULT, Wsdl11::INPUT, Wsdl11::MESSAGE, Wsdl11::NS, Wsdl11::OPERATION, Wsdl11::OUTPUT, Wsdl11::PART, Wsdl11::PORT, Wsdl11::PORT_TYPE, Wsdl11::SERVICE, Wsdl11::TYPES
Parsing::Base::NS_DECL_PREFIX, Parsing::Base::TARGET_NS
Instance Attribute Summary
#log_msgs
Instance Method Summary
collapse
-
#parse(node) ⇒ Object
-
#parse_binding_child(node, binding) ⇒ Object
-
#parse_binding_operation(node, binding) ⇒ Object
-
#parse_body(node) ⇒ Object
-
#parse_fault_child(node, fault) ⇒ Object
-
#parse_header(node) ⇒ Object
-
#parse_header_child(node, header) ⇒ Object
-
#parse_header_fault(node, header) ⇒ Object
-
#parse_input_output_child(node, in_out) ⇒ Object
-
#parse_operation_child(node, operation) ⇒ Object
-
#parse_operation_fault(node, operation) ⇒ Object
-
#parse_operation_input(node, operation) ⇒ Object
-
#parse_operation_output(node, operation) ⇒ Object
-
#parse_operation_soap_action(node, operation) ⇒ Object
-
#parse_soap_binding(node, binding) ⇒ Object
-
#parse_soap_fault(node, fault) ⇒ Object
get_name, #initialize
#log_msg
Instance Method Details
#parse(node) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 7
def parse(node)
name = parse_name_in_attribute 'name', node
binding = Binding.new name
binding.type_name = parse_name_in_attribute 'type', node
success = true
each_element node do |child|
success = parse_binding_child(child, binding) && success
end
@base.description.add_binding(binding) if success
end
|
#parse_binding_child(node, binding) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 21
def parse_binding_child(node, binding)
case get_name node
when OPERATION
parse_binding_operation node, binding
when Soap::BINDING
parse_soap_binding node, binding
when Soap12::BINDING
log_msg node, :unsupported
return false
when Http::BINDING
log_msg node, :unsupported
return false
when DOCUMENTATION
@base.parse_documentation node, binding
else
log_msg node, :unknown
return false
end
end
|
#parse_binding_operation(node, binding) ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 46
def parse_binding_operation(node, binding)
name = parse_name_in_attribute 'name', node
operation = Binding::Operation.new name
each_element node do |child|
parse_operation_child child, operation
end
binding.add_operation operation
end
|
#parse_body(node) ⇒ Object
111
112
113
114
115
116
117
118
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 111
def parse_body(node)
body = Binding::Body.new
body.use = fetch_attribute_value 'use', node
body.encoding_styles = fetch_attribute_value('encodingStyle', node, '').split ' '
body.namespace = fetch_attribute_value 'namespace', node
body.part_names = fetch_attribute_value('parts', node, '').split(' ').map { |s| parse_name(s, node) }
body
end
|
#parse_fault_child(node, fault) ⇒ Object
179
180
181
182
183
184
185
186
187
188
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 179
def parse_fault_child(node, fault)
case get_name node
when Soap::FAULT
parse_soap_fault node, fault
when DOCUMENTATION
@base.parse_documentation node, fault
else
log_msg node, :unknown
end
end
|
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 120
def (node)
= Binding::.new
.use = fetch_attribute_value 'use', node
.message_name = parse_name_in_attribute 'message', node
.part_name = parse_name_in_attribute 'part', node
.encoding_styles = fetch_attribute_value('encodingStyle', node, '').split ' '
.namespace = fetch_attribute_value 'namespace', node
each_element node do |child|
child,
end
end
|
135
136
137
138
139
140
141
142
143
144
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 135
def (node, )
case get_name node
when Soap::
node,
when DOCUMENTATION
@base.parse_documentation node,
else
log_msg node, :unknown
end
end
|
146
147
148
149
150
151
152
153
154
155
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 146
def (node, )
= Binding::.new
.use = fetch_attribute_value 'use', node
.message_name = parse_name_in_attribute 'message', node
.part_name = parse_name_in_attribute 'part', node
.encoding_styles = fetch_attribute_value('encodingStyle', node, '').split ' '
.namespace = fetch_attribute_value 'namespace', node
.
end
|
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 94
def parse_input_output_child(node, in_out)
case get_name node
when Soap::
in_out. node
when Soap::BODY
in_out.body = parse_body node
when Soap12::
log_msg node, :unsupported
when Soap12::BODY
log_msg node, :unsupported
when DOCUMENTATION
@base.parse_documentation node, in_out
else
log_msg node, :unknown
end
end
|
#parse_operation_child(node, operation) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 58
def parse_operation_child(node, operation)
case get_name node
when INPUT
parse_operation_input node, operation
when OUTPUT
parse_operation_output node, operation
when FAULT
parse_operation_fault node, operation
when Soap::OPERATION
parse_operation_soap_action node, operation
when Soap12::OPERATION
log_msg node, :unsupported
when Http::OPERATION
log_msg node, :unsupported
when DOCUMENTATION
@base.parse_documentation node, operation
else
log_msg node, :unknown
end
end
|
#parse_operation_fault(node, operation) ⇒ Object
168
169
170
171
172
173
174
175
176
177
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 168
def parse_operation_fault(node, operation)
name = parse_name_in_attribute 'name', node
fault = Binding::Fault.new name
each_element node do |child|
parse_fault_child child, fault
end
operation.add_fault fault
end
|
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 83
def parse_operation_input(node, operation)
name = parse_name_in_attribute 'name', node
input = Binding::InputOutput.new name
each_element node do |child|
parse_input_output_child child, input
end
operation.input = input
end
|
#parse_operation_output(node, operation) ⇒ Object
157
158
159
160
161
162
163
164
165
166
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 157
def parse_operation_output(node, operation)
name = parse_name_in_attribute 'name', node
output = Binding::InputOutput.new name
each_element node do |child|
parse_input_output_child child, output
end
operation.output = output
end
|
#parse_operation_soap_action(node, operation) ⇒ Object
79
80
81
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 79
def parse_operation_soap_action(node, operation)
operation.soap_action = fetch_attribute_value 'soapAction', node
end
|
#parse_soap_binding(node, binding) ⇒ Object
41
42
43
44
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 41
def parse_soap_binding(node, binding)
binding.style = fetch_attribute_value 'style', node
binding.transport = fetch_attribute_value 'transport', node
end
|
#parse_soap_fault(node, fault) ⇒ Object
190
191
192
193
194
195
|
# File 'lib/wsdl_mapper/svc_desc_parsing/binding_parser.rb', line 190
def parse_soap_fault(node, fault)
name = parse_name_in_attribute 'name', node
soap_fault = Binding::SoapFault.new name
soap_fault.use = fetch_attribute_value 'use', node
fault.soap_fault = soap_fault
end
|