Class: WsdlMapper::SvcGeneration::OperationS8rGenerator

Inherits:
OperationGeneratorBase show all
Includes:
Dom
Defined in:
lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb

Constant Summary

SOAP_ENV_NS =
'http://schemas.xmlsoap.org/soap/envelope/'
SOAP_BODY =
Name.get SOAP_ENV_NS, 'Body'
SOAP_HEADER =
Name.get SOAP_ENV_NS, 'Header'

Instance Method Summary (collapse)

Methods inherited from GeneratorBase

#initialize

Methods inherited from Generation::Base

#append_file_for, #file, #file_for, #generate_name, #get_formatter, #get_module_names, #get_type_name, #initialize, #type_file_for

Constructor Details

This class inherits a constructor from WsdlMapper::SvcGeneration::GeneratorBase

Instance Method Details

- (Object) build_simple(f, type, obj_name, attr_name, element_name)



240
241
242
243
244
245
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 240

def build_simple(f, type, obj_name, attr_name, element_name)
  root_type = type.root.name.name
  f.block "x.simple(#{generate_name(type.name)}, #{element_name})", ['x'] do
    f.call 'x.text_builtin', "#{obj_name}.#{attr_name}", root_type.inspect
  end
end

- (Object) call_wrapper(f, op, suffix = '', &block)



125
126
127
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 125

def call_wrapper(f, op, suffix = '', &block)
  f.block "x.complex(nil, #{generate_name(op.name, suffix)}, [])", ['x'], &block
end

- (Boolean) encoded?(in_out)

Returns:

  • (Boolean)


145
146
147
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 145

def encoded?(in_out)
  in_out.body.use == 'encoded'
end

- (Object) generate_body(f, port, op, body_parts, in_out)



129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 129

def generate_body(f, port, op, body_parts, in_out)
  if rpc?(port)
    if encoded?(in_out)
      generate_rpc_encoded_body f, op, in_out, body_parts
    else #literal
      generate_rpc_literal_body f, op, in_out, body_parts
    end
  else #document
    if encoded?(in_out)
      generate_doc_encoded_body f, body_parts
    else #literal
      generate_doc_literal_body f, body_parts
    end
  end
end

- (Object) generate_doc_encoded_body(f, body_parts)



181
182
183
184
185
186
187
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 181

def generate_doc_encoded_body(f, body_parts)
  soap_body_wrapper f do
    body_parts.each do |part|
      generate_encoded_body_part f, part
    end
  end
end

- (Object) generate_doc_literal_body(f, body_parts)



153
154
155
156
157
158
159
160
161
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 153

def generate_doc_literal_body(f, body_parts)
  with_type = body_parts.first.part.element.nil?

  if with_type
    generate_doc_literal_type_body f, body_parts.first
  else
    generate_doc_literal_elements_body f, body_parts
  end
end

- (Object) generate_doc_literal_elements_body(f, body_parts)



169
170
171
172
173
174
175
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 169

def generate_doc_literal_elements_body(f, body_parts)
  soap_body_wrapper f do
    body_parts.each do |part|
      generate_doc_literal_elements_body_part f, part
    end
  end
end

- (Object) generate_doc_literal_elements_body_part(f, part)



177
178
179
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 177

def generate_doc_literal_elements_body_part(f, part)
  get_and_build_body f, part, part.part.element.name
end

- (Object) generate_doc_literal_type_body(f, part)



163
164
165
166
167
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 163

def generate_doc_literal_type_body(f, part)
  soap_body_wrapper f do
    get_and_build_body f, part, part.part.name
  end
end

- (Object) generate_each_header(f, headers)



62
63
64
65
66
67
68
69
70
71
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 62

def generate_each_header(f, headers)
  headers.each do |header|
    part = header.header.part
    if header.header.use == 'encoded'
      generate_encoded_header f, header, part
    else #literal
      generate_literal_header f, header, part
    end
  end
end

- (Object) generate_encoded_body_part(f, part)



223
224
225
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 223

def generate_encoded_body_part(f, part)
  get_and_build_body f, part, part.part.name
end

- (Object) generate_encoded_header(f, header, part)



93
94
95
96
97
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 93

def generate_encoded_header(f, header, part)
  soap_header_wrapper f do
    get_and_build_header f, header, part.name
  end
end

- (Object) generate_literal_element_header(f, header, part)



87
88
89
90
91
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 87

def generate_literal_element_header(f, header, part)
  soap_header_wrapper f do
    get_and_build_header f, header, part.element.name
  end
end

- (Object) generate_literal_header(f, header, part)



73
74
75
76
77
78
79
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 73

def generate_literal_header(f, header, part)
  if part.element
    generate_literal_element_header f, header, part
  else
    generate_literal_type_header f, header, part
  end
end

- (Object) generate_literal_type_header(f, header, part)



81
82
83
84
85
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 81

def generate_literal_type_header(f, header, part)
  soap_header_wrapper f do
    get_and_build_header f, header, part.name
  end
end

- (Object) generate_op_input_s8r(service, port, op, result)



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 18

def generate_op_input_s8r(service, port, op, result)
  modules = get_module_names service.name
  name = service_namer.get_input_s8r_name service.type, port.type, op.type

  type_file_for name, result do |f|
    f.requires input_s8r_base.require_path

    f.in_modules modules do
      in_classes f, service.name.class_name, port.name.class_name, op.name.class_name do
        generate_op_s8r_class f, port, op, name, op.type.input, input_s8r_base
      end
    end
  end
end

- (Object) generate_op_output_s8r(service, port, op, result)



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 33

def generate_op_output_s8r(service, port, op, result)
  modules = get_module_names service.name
  name = service_namer.get_output_s8r_name service.type, port.type, op.type

  type_file_for name, result do |f|
    f.requires output_s8r_base.require_path

    f.in_modules modules do
      in_classes f, service.name.class_name, port.name.class_name, op.name.class_name do
        generate_op_s8r_class f, port, op, name, op.type.output, output_s8r_base
      end
    end
  end
end

- (Object) generate_op_s8r_body(f, port, op, in_out)



106
107
108
109
110
111
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 106

def generate_op_s8r_body(f, port, op, in_out)
  body_parts = get_body_parts in_out
  f.in_def :build_body, 'x', 'body' do
    generate_body f, port, op, body_parts, in_out
  end
end

- (Object) generate_op_s8r_class(f, port, op, name, in_out, base)



48
49
50
51
52
53
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 48

def generate_op_s8r_class(f, port, op, name, in_out, base)
  f.in_sub_class name.class_name, base.name do
    generate_op_s8r_header f, port, op, in_out
    generate_op_s8r_body f, port, op, in_out
  end
end

- (Object) generate_op_s8r_header(f, port, op, in_out)



55
56
57
58
59
60
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 55

def generate_op_s8r_header(f, port, op, in_out)
  headers = get_header_parts in_out
  f.in_def :build_header, 'x', 'header' do
    generate_each_header f, headers
  end
end

- (Object) generate_operation_s8r(service, port, op, result)



13
14
15
16
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 13

def generate_operation_s8r(service, port, op, result)
  generate_op_input_s8r service, port, op, result
  generate_op_output_s8r service, port, op, result
end

- (Object) generate_rpc_encoded_body(f, op, in_out, body_parts)



212
213
214
215
216
217
218
219
220
221
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 212

def generate_rpc_encoded_body(f, op, in_out, body_parts)
  soap_body_wrapper f do
    suffix = in_out == op.type.output ? 'Response' : ''
    call_wrapper f, op.type, suffix do
      body_parts.each do |part|
        generate_encoded_body_part f, part
      end
    end
  end
end

- (Object) generate_rpc_literal_body(f, op, in_out, body_parts)



189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 189

def generate_rpc_literal_body(f, op, in_out, body_parts)
  soap_body_wrapper f do
    suffix = in_out == op.type.output ? 'Response' : ''
    call_wrapper f, op.type, suffix do
      body_parts.each do |part|
        if part.part.element
          generate_rpc_literal_element_body_part f, part
        else
          generate_rpc_literal_type_body_part f, part
        end
      end
    end
  end
end

- (Object) generate_rpc_literal_element_body_part(f, part)



208
209
210
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 208

def generate_rpc_literal_element_body_part(f, part)
  get_and_build_body f, part, part.part.element.name
end

- (Object) generate_rpc_literal_type_body_part(f, part)



204
205
206
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 204

def generate_rpc_literal_type_body_part(f, part)
  get_and_build_body f, part, part.part.name
end

- (Object) get_and_build(f, type_name, obj_name, attr_name, element_name)



247
248
249
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 247

def get_and_build(f, type_name, obj_name, attr_name, element_name)
  f.statement "x.get(#{type_name}).build(x, #{obj_name}.#{attr_name}, #{element_name})"
end

- (Object) get_and_build_body(f, part, element)



227
228
229
230
231
232
233
234
235
236
237
238
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 227

def get_and_build_body(f, part, element)
  attr_name = part.property_name.attr_name
  element_name = generate_name element

  type_name = get_type_name part.type
  if WsdlMapper::Dom::BuiltinType.builtin?(type_name.name)
    build_simple f, part.type, 'body', attr_name, element_name
  else
    type_name = namer.get_type_name(get_type_name(part.type)).name.inspect
    get_and_build f, type_name, 'body', attr_name, element_name
  end
end

- (Object) get_and_build_header(f, header, element)



99
100
101
102
103
104
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 99

def get_and_build_header(f, header, element)
  type_name = namer.get_type_name(get_type_name(header.type)).name.inspect
  attr_name = header.property_name.attr_name
  element_name = generate_name element
  get_and_build f, type_name, 'header', attr_name, element_name
end

- (Object) input_s8r_base



251
252
253
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 251

def input_s8r_base
  @input_s8r_base ||= @generator.runtime_base 'InputS8r', 'input_s8r'
end

- (Object) output_s8r_base



255
256
257
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 255

def output_s8r_base
  @output_s8r_base ||= @generator.runtime_base 'OutputS8r', 'output_s8r'
end

- (Object) part_wrapper(f, part, &block)



121
122
123
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 121

def part_wrapper(f, part, &block)
  f.block "x.complex(nil, #{generate_name(part.name)}, [])", ['x'], &block
end

- (Boolean) rpc?(port)

Returns:

  • (Boolean)


149
150
151
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 149

def rpc?(port)
  port.type.binding.style == 'rpc'
end

- (Object) soap_body_wrapper(f, &block)



117
118
119
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 117

def soap_body_wrapper(f, &block)
  f.block "x.complex(nil, #{generate_name(SOAP_BODY)}, [])", ['x'], &block
end

- (Object) soap_header_wrapper(f, &block)



113
114
115
# File 'lib/wsdl_mapper/svc_generation/operation_s8r_generator.rb', line 113

def soap_header_wrapper(f, &block)
  f.block "x.complex(nil, #{generate_name(SOAP_HEADER)}, [])", ['x'], &block
end