class WsdlMapper::DomGeneration::SchemaGenerator
Attributes
class_generator[R]
context[R]
ctr_generator[R]
enum_generator[R]
module_generator[R]
namer[R]
type_mapping[R]
value_defaults_generator[R]
value_generator[R]
wrapping_type_generator[R]
Public Class Methods
new(context, skip_modules: false, formatter_factory: DefaultFormatter, namer: WsdlMapper::Naming::DefaultNamer.new, class_generator_factory: DefaultClassGenerator, module_generator_factory: DefaultModuleGenerator, ctr_generator_factory: NullCtrGenerator, enum_generator_factory: DefaultEnumGenerator, value_defaults_generator_factory: DefaultValueDefaultsGenerator, wrapping_type_generator_factory: DefaultWrappingTypeGenerator, type_mapping: WsdlMapper::TypeMapping::DEFAULT, value_generator: DefaultValueGenerator.new)
click to toggle source
Calls superclass method
WsdlMapper::Generation::Base::new
# File lib/wsdl_mapper/dom_generation/schema_generator.rb, line 29 def initialize(context, skip_modules: false, formatter_factory: DefaultFormatter, namer: WsdlMapper::Naming::DefaultNamer.new, class_generator_factory: DefaultClassGenerator, module_generator_factory: DefaultModuleGenerator, ctr_generator_factory: NullCtrGenerator, enum_generator_factory: DefaultEnumGenerator, value_defaults_generator_factory: DefaultValueDefaultsGenerator, wrapping_type_generator_factory: DefaultWrappingTypeGenerator, type_mapping: WsdlMapper::TypeMapping::DEFAULT, value_generator: DefaultValueGenerator.new) super(context) @formatter_factory = formatter_factory @namer = namer @class_generator = class_generator_factory.new self @module_generator = module_generator_factory.new self @ctr_generator = ctr_generator_factory.new self @enum_generator = enum_generator_factory.new self @value_defaults_generator = value_defaults_generator_factory.new self @wrapping_type_generator = wrapping_type_generator_factory.new self @type_mapping = type_mapping @value_generator = value_generator @skip_modules = skip_modules end
Public Instance Methods
generate(schema)
click to toggle source
# File lib/wsdl_mapper/dom_generation/schema_generator.rb, line 57 def generate(schema) result = Result.new schema: schema generate_complex_types schema, result generate_enumerations schema, result generate_restrictions schema, result unless @skip_modules result.module_tree.each do |module_node| @module_generator.generate module_node, result end end result end
generate_complex_types(schema, result)
click to toggle source
# File lib/wsdl_mapper/dom_generation/schema_generator.rb, line 119 def generate_complex_types(schema, result) complex_types = schema.each_type.select(&WsdlMapper::Dom::ComplexType).to_a types_to_generate = complex_types.map do |type| name = namer.get_type_name get_type_name(type) TypeToGenerate.new type, name end types_to_generate.each do |ttg| @class_generator.generate ttg, result end end
generate_enumerations(schema, result)
click to toggle source
# File lib/wsdl_mapper/dom_generation/schema_generator.rb, line 105 def generate_enumerations(schema, result) enum_types = schema.each_type.select(&WsdlMapper::Dom::SimpleType).select(&:enumeration?).to_a types_to_generate = enum_types.map do |type| name = namer.get_type_name get_type_name(type) TypeToGenerate.new type, name end types_to_generate.each do |ttg| @enum_generator.generate ttg, result end end
generate_restrictions(schema, result)
click to toggle source
# File lib/wsdl_mapper/dom_generation/schema_generator.rb, line 91 def generate_restrictions(schema, result) types = schema.each_type.select(&WsdlMapper::Dom::SimpleType).reject(&:enumeration?).to_a types_to_generate = types.map do |type| name = namer.get_type_name get_type_name(type) TypeToGenerate.new type, name end types_to_generate.each do |ttg| @wrapping_type_generator.generate ttg, result end end
get_formatter(io)
click to toggle source
# File lib/wsdl_mapper/dom_generation/schema_generator.rb, line 73 def get_formatter(io) @formatter_factory.new io end
get_ruby_type_name(type)
click to toggle source
# File lib/wsdl_mapper/dom_generation/schema_generator.rb, line 77 def get_ruby_type_name(type) if type.name.nil? type = get_type_name type end if WsdlMapper::Dom::BuiltinType.builtin? type.name type_mapping.ruby_type type.name elsif WsdlMapper::Dom::SoapEncodingType.builtin? type.name '::Array' else namer.get_type_name(type).name end end