Class: WsdlMapper::SvcGeneration::OperationD10rGenerator
- Inherits:
-
OperationGeneratorBase
- Object
- Generation::Base
- GeneratorBase
- OperationGeneratorBase
- WsdlMapper::SvcGeneration::OperationD10rGenerator
- Includes:
- Dom
- Defined in:
- lib/wsdl_mapper/svc_generation/operation_d10r_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)
- - (Object) deserializer_type
- - (Object) element_directory_base
- - (Object) envelope_type
- - (Object) fault_name
- - (Object) generate_body_d10r(f, body_deserializer_name, type_directory_name, input_body_name, port, op, in_out)
- - (Object) generate_d10r(f, input_d10r_name, element_directory_name)
- - (Object) generate_element_directory(f, element_directory_name, type_directory_name)
- - (Object) generate_header_d10r(f, header_deserializer_name, type_directory_name, input_header_name, in_out)
- - (Object) generate_op_d10r(service, port, op, name, in_out, header_name, header_d10r_name, body_name, body_d10r_name, type_directory_name, element_directory_name, result)
- - (Object) generate_op_input_d10r(service, port, op, result)
- - (Object) generate_op_output_d10r(service, port, op, result)
- - (Object) generate_operation_d10r(service, port, op, result)
- - (Object) generate_type_directory(f, type_directory_name)
- - (Object) get_op_name(op, in_out)
-
- (OperationD10rGenerator) initialize(generator)
constructor
A new instance of OperationD10rGenerator.
- - (Object) soap_element_directory
- - (Object) soap_type_directory
- - (Object) type_directory_base
Methods inherited from Generation::Base
#append_file_for, #file, #file_for, #generate_name, #get_formatter, #get_module_names, #get_type_name, #type_file_for
Constructor Details
- (OperationD10rGenerator) initialize(generator)
Returns a new instance of OperationD10rGenerator
13 14 15 16 17 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 13 def initialize(generator) super generator @schema_type_directory_name = namer.get_d10r_type_directory_name @schema_element_directory_name = namer.get_d10r_element_directory_name end |
Instance Method Details
- (Object) deserializer_type
162 163 164 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 162 def deserializer_type @deserializer_type ||= WsdlMapper::Naming::TypeName.new 'LazyLoadingDeserializer', %w[WsdlMapper Deserializers], 'lazy_loading_deserializer.rb', %w[wsdl_mapper deserializers] end |
- (Object) element_directory_base
150 151 152 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 150 def element_directory_base @element_directory_base ||= WsdlMapper::Naming::TypeName.new 'ElementDirectory', %w[WsdlMapper Deserializers], 'element_directory.rb', %w[wsdl_mapper deserializers] end |
- (Object) envelope_type
166 167 168 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 166 def envelope_type @envelope_type ||= WsdlMapper::Naming::TypeName.new 'Envelope', %w[WsdlMapper SvcDesc], 'envelope.rb', %w[wsdl_mapper svc_desc] end |
- (Object) fault_name
120 121 122 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 120 def fault_name @fault_name ||= generate_name WsdlMapper::Dom::Name.get('http://schemas.xmlsoap.org/soap/envelope/', 'Fault') end |
- (Object) generate_body_d10r(f, body_deserializer_name, type_directory_name, input_body_name, port, op, in_out)
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 96 def generate_body_d10r(f, body_deserializer_name, type_directory_name, input_body_name, port, op, in_out) parts = get_body_parts in_out f.block "#{body_deserializer_name} = #{type_directory_name}.register_type(#{generate_name(SOAP_BODY)}, #{input_body_name.name})", [] do op_name = get_op_name op.type, in_out if port.type.binding.style == 'rpc' f.call :register_wrapper, generate_name(op_name) end parts.each do |part| name = get_type_name(part.type).name element_name = if port.type.binding.style == 'rpc' part.part.name else if part.part.element part.part.element.name else part.part.name end end f.call :register_prop, ":#{part.property_name.attr_name}", generate_name(element_name), generate_name(name) end f.call :register_prop, ':fault', fault_name, fault_name end end |
- (Object) generate_d10r(f, input_d10r_name, element_directory_name)
88 89 90 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 88 def generate_d10r(f, input_d10r_name, element_directory_name) f.assignment input_d10r_name.class_name, "#{deserializer_type.name}.new(#{element_directory_name})" end |
- (Object) generate_element_directory(f, element_directory_name, type_directory_name)
92 93 94 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 92 def generate_element_directory(f, element_directory_name, type_directory_name) f.assignment element_directory_name, "#{element_directory_base.name}.new(#{type_directory_name}, #{@schema_element_directory_name.name}, #{soap_element_directory.name})" end |
- (Object) generate_header_d10r(f, header_deserializer_name, type_directory_name, input_header_name, in_out)
132 133 134 135 136 137 138 139 140 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 132 def generate_header_d10r(f, header_deserializer_name, type_directory_name, input_header_name, in_out) parts = get_header_parts in_out f.block "#{header_deserializer_name} = #{type_directory_name}.register_type(#{generate_name(SOAP_HEADER)}, #{input_header_name.name})", [] do parts.each do |part| name = get_type_name(part.type).name f.call :register_prop, ":#{part.property_name.attr_name}", generate_name(part.header.part.name), generate_name(name) end end end |
- (Object) generate_op_d10r(service, port, op, name, in_out, header_name, header_d10r_name, body_name, body_d10r_name, type_directory_name, element_directory_name, result)
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 52 def generate_op_d10r(service, port, op, name, in_out, header_name, header_d10r_name, body_name, body_d10r_name, type_directory_name, element_directory_name, result) parts = get_header_parts(in_out) + get_body_parts(in_out) required_d10rs = parts.map do |part| next if WsdlMapper::Dom::BuiltinType.builtin? get_type_name(part.type).name namer.get_d10r_name(get_type_name(part.type)) end modules = get_module_names service.name type_file_for name, result do |f| f.requires envelope_type.require_path, type_directory_base.require_path, element_directory_base.require_path, deserializer_type.require_path, soap_type_directory.require_path, soap_element_directory.require_path, @schema_type_directory_name.require_path, @schema_element_directory_name.require_path, header_name.require_path, body_name.require_path f.requires *required_d10rs.compact.map(&:require_path) f.in_modules modules do in_classes f, service.name.class_name, port.name.class_name, op.name.class_name do generate_type_directory f, type_directory_name generate_header_d10r f, header_d10r_name, type_directory_name, header_name, in_out generate_body_d10r f, body_d10r_name, type_directory_name, body_name, port, op, in_out generate_element_directory f, element_directory_name, type_directory_name generate_d10r f, name, element_directory_name end end end end |
- (Object) generate_op_input_d10r(service, port, op, result)
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 24 def generate_op_input_d10r(service, port, op, result) name = service_namer.get_input_d10r_name service.type, port.type, op.type type_directory_name = service_namer.get_input_type_directory_name header_d10r_name = service_namer.get_input_header_d10r_name body_d10r_name = service_namer.get_input_body_d10r_name header_name = service_namer.get_input_header_name service.type, port.type, op.type body_name = service_namer.get_input_body_name service.type, port.type, op.type element_directory_name = service_namer.get_input_element_directory_name generate_op_d10r service, port, op, name, op.type.input, header_name, header_d10r_name, body_name, body_d10r_name, type_directory_name, element_directory_name, result end |
- (Object) generate_op_output_d10r(service, port, op, result)
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 38 def generate_op_output_d10r(service, port, op, result) name = service_namer.get_output_d10r_name service.type, port.type, op.type type_directory_name = service_namer.get_output_type_directory_name header_d10r_name = service_namer.get_output_header_d10r_name body_d10r_name = service_namer.get_output_body_d10r_name header_name = service_namer.get_output_header_name service.type, port.type, op.type body_name = service_namer.get_output_body_name service.type, port.type, op.type element_directory_name = service_namer.get_output_element_directory_name generate_op_d10r service, port, op, name, op.type.output, header_name, header_d10r_name, body_name, body_d10r_name, type_directory_name, element_directory_name, result end |
- (Object) generate_operation_d10r(service, port, op, result)
19 20 21 22 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 19 def generate_operation_d10r(service, port, op, result) generate_op_input_d10r service, port, op, result generate_op_output_d10r service, port, op, result end |
- (Object) generate_type_directory(f, type_directory_name)
142 143 144 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 142 def generate_type_directory(f, type_directory_name) f.assignment type_directory_name, "#{type_directory_base.name}.new(#{soap_type_directory.name}, #{@schema_type_directory_name.name})" end |
- (Object) get_op_name(op, in_out)
124 125 126 127 128 129 130 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 124 def get_op_name(op, in_out) if in_out == op.input op.name else WsdlMapper::Dom::Name.get op.name.ns, "#{op.name.name}Response" end end |
- (Object) soap_element_directory
158 159 160 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 158 def soap_element_directory @soap_element_directory ||= WsdlMapper::Naming::TypeName.new 'SoapElementDirectory', %w[WsdlMapper SvcDesc], 'soap_element_directory.rb', %w[wsdl_mapper svc_desc] end |
- (Object) soap_type_directory
154 155 156 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 154 def soap_type_directory @soap_type_directory ||= WsdlMapper::Naming::TypeName.new 'SoapTypeDirectory', %w[WsdlMapper SvcDesc], 'soap_type_directory.rb', %w[wsdl_mapper svc_desc] end |
- (Object) type_directory_base
146 147 148 |
# File 'lib/wsdl_mapper/svc_generation/operation_d10r_generator.rb', line 146 def type_directory_base @type_directory_base ||= WsdlMapper::Naming::TypeName.new 'TypeDirectory', %w[WsdlMapper Deserializers], 'type_directory.rb', %w[wsdl_mapper deserializers] end |