method
dump_classdef
v1_8_6_287 -
Show latest stable
- Class:
WSDL::SOAP::ClassDefCreator
dump_classdef(qname, typedef, qualified = false)private
No documentation available.
# File lib/wsdl/soap/classDefCreator.rb, line 121
def dump_classdef(qname, typedef, qualified = false)
if @faulttypes and @faulttypes.index(qname)
c = XSD::CodeGen::ClassDef.new(create_class_name(qname),
'::StandardError')
else
c = XSD::CodeGen::ClassDef.new(create_class_name(qname))
end
c.comment = "#{qname}"
c.def_classvar('schema_type', ndq(qname.name))
c.def_classvar('schema_ns', ndq(qname.namespace))
c.def_classvar('schema_qualified', dq('true')) if qualified
schema_element = []
init_lines = ''
params = []
typedef.each_element do |element|
if element.type == XSD::AnyTypeName
type = nil
elsif klass = element_basetype(element)
type = klass.name
elsif element.type
type = create_class_name(element.type)
else
type = nil # means anyType.
# do we define a class for local complexType from it's name?
# type = create_class_name(element.name)
# <element>
# <complexType>
# <seq...>
# </complexType>
# </element>
end
name = name_element(element).name
attrname = safemethodname?(name) ? name : safemethodname(name)
varname = safevarname(name)
c.def_attr(attrname, true, varname)
init_lines << "@#{varname} = #{varname}\n"
if element.map_as_array?
params << "#{varname} = []"
type << '[]' if type
else
params << "#{varname} = nil"
end
# nil means @@schema_ns + varname
eleqname =
(varname == name && element.name.namespace == qname.namespace) ?
nil : element.name
schema_element << [varname, eleqname, type]
end
unless typedef.attributes.empty?
define_attribute(c, typedef.attributes)
init_lines << "@__xmlattr = {}\n"
end
c.def_classvar('schema_element',
'[' +
schema_element.collect { |varname, name, type|
'[' +
(
if name
varname.dump + ', [' + ndq(type) + ', ' + dqname(name) + ']'
else
varname.dump + ', ' + ndq(type)
end
) +
']'
}.join(', ') +
']'
)
c.def_method('initialize', *params) do
init_lines
end
c.dump
end