Changeset 1948
- Timestamp:
- 09/10/07 10:28:21 (8 months ago)
- Files:
-
- trunk/lib/wsdl/soap/cgiStubCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/classDefCreator.rb (modified) (10 diffs)
- trunk/lib/wsdl/soap/classDefCreatorSupport.rb (modified) (3 diffs)
- trunk/lib/wsdl/soap/classNameCreator.rb (modified) (2 diffs)
- trunk/lib/wsdl/soap/clientSkeltonCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/driverCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/encodedMappingRegistryCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb (modified) (3 diffs)
- trunk/lib/wsdl/soap/mappingRegistryCreatorSupport.rb (modified) (4 diffs)
- trunk/lib/wsdl/soap/methodDefCreator.rb (modified) (2 diffs)
- trunk/lib/wsdl/soap/servantSkeltonCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/servletStubCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/standaloneServerStubCreator.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/wsdl/soap/cgiStubCreator.rb
r1939 r1948 48 48 49 49 def dump_porttype(porttype) 50 class_name = create_class_name(porttype.name, @modulepath)50 class_name = mapped_class_name(porttype.name, @modulepath) 51 51 defined_const = {} 52 52 result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype.name) trunk/lib/wsdl/soap/classDefCreator.rb
r1944 r1948 44 44 def dump(type = nil) 45 45 result = "require 'xsd/qname'\n" 46 # cannot use create_class_name with@modulepath because of multiple classes46 # cannot use @modulepath because of multiple classes 47 47 if @modulepath 48 48 result << "\n" … … 158 158 return nil 159 159 end 160 classname = create_class_name(qname)160 classname = mapped_class_basename(qname, @modulepath) 161 161 check_classname(classname) 162 162 c = ClassDef.new(classname, '::String') … … 168 168 def create_simpletypedef_list(qname, typedef, qualified) 169 169 list = typedef.list 170 classname = create_class_name(qname)170 classname = mapped_class_basename(qname, @modulepath) 171 171 check_classname(classname) 172 172 c = ClassDef.new(classname, '::Array') … … 180 180 c.comment << "\n contains list of #{classname}::*" 181 181 elsif list.itemtype 182 c.comment << "\n contains list of #{ create_class_name(list.itemtype)}::*"182 c.comment << "\n contains list of #{mapped_class_basename(list.itemtype, @modulepath)}::*" 183 183 else 184 184 raise RuntimeError.new("unknown kind of list: #{list}") … … 189 189 def create_simpletypedef_union(qname, typedef, qualified) 190 190 union = typedef.union 191 classname = create_class_name(qname)191 classname = mapped_class_basename(qname, @modulepath) 192 192 c = ClassDef.new(classname, '::String') 193 193 c.comment = "#{qname}" … … 224 224 225 225 def create_simpleclassdef(qname, type_or_element) 226 classname = create_class_name(qname)226 classname = mapped_class_basename(qname, @modulepath) 227 227 check_classname(classname) 228 228 c = ClassDef.new(classname, '::String') … … 257 257 258 258 def create_classdef(qname, typedef, qualified = false) 259 classname = create_class_name(qname)259 classname = mapped_class_basename(qname, @modulepath) 260 260 check_classname(classname) 261 261 baseclassname = nil 262 262 if typedef.complexcontent 263 263 if base = typedef.complexcontent.base 264 baseclassname = create_class_name(base)264 baseclassname = mapped_class_basename(base, @modulepath) 265 265 end 266 266 end … … 272 272 c.comment = "#{qname}" 273 273 c.comment << "\nabstract" if typedef.abstract 274 parentmodule = mapped_class_name(qname, @modulepath) 274 275 init_lines, init_params = 275 parse_elements(c, typedef.elements, qname.namespace, classname)276 parse_elements(c, typedef.elements, qname.namespace, parentmodule) 276 277 unless typedef.attributes.empty? 277 278 define_attribute(c, typedef.attributes) … … 305 306 typebase = @modulepath 306 307 if element.anonymous_type? 307 inner = create_elementdef(element) 308 begin 309 # swap @modulepath: TODO be smarter 310 @modulepath = parentmodule 311 inner = create_elementdef(element) 312 ensure 313 @modulepath = typebase 314 end 308 315 unless as_array 309 316 inner.comment = "inner class for member: #{name}\n" + inner.comment … … 380 387 381 388 def create_arraydef(qname, typedef) 382 classname = create_class_name(qname)389 classname = mapped_class_basename(qname, @modulepath) 383 390 check_classname(classname) 384 391 c = ClassDef.new(classname, '::Array') 385 392 c.comment = "#{qname}" 386 parse_elements(c, typedef.elements, qname.namespace, classname, true) 393 parentmodule = mapped_class_name(qname, @modulepath) 394 parse_elements(c, typedef.elements, qname.namespace, parentmodule, true) 387 395 c 388 396 end trunk/lib/wsdl/soap/classDefCreatorSupport.rb
r1939 r1948 21 21 include XSD::CodeGen::GenSupport 22 22 23 def create_class_name(qname, modulepath = nil) 24 @name_creator.create_name(qname, modulepath) 23 def mapped_class_name(qname, modulepath) 24 @name_creator.assign_name(qname, modulepath) 25 end 26 27 def mapped_class_basename(qname, modulepath) 28 name = @name_creator.assign_name(qname, modulepath) 29 name.sub(/\A.*:/, '') 25 30 end 26 31 … … 102 107 elsif simpletype = @simpletypes[element.type] 103 108 if simpletype.restriction and simpletype.restriction.enumeration? 104 create_class_name(element.type, modulepath)109 mapped_class_name(element.type, modulepath) 105 110 else 106 111 nil … … 109 114 klass.name 110 115 elsif element.type 111 create_class_name(element.type, modulepath)116 mapped_class_name(element.type, modulepath) 112 117 elsif element.ref 113 create_class_name(element.ref, modulepath)118 mapped_class_name(element.ref, modulepath) 114 119 elsif element.anonymous_type? 115 120 # inner class 116 create_class_name(element.name, modulepath)121 mapped_class_name(element.name, modulepath) 117 122 else 118 123 nil trunk/lib/wsdl/soap/classNameCreator.rb
r1941 r1948 22 22 end 23 23 24 def create_name(qname, modulepath = nil) 24 def assign_name(qname, modulepath = nil) 25 unless @classname[qname] 26 if klass = ::SOAP::TypeMap[qname] 27 name = ::SOAP::Mapping::DefaultRegistry.find_mapped_obj_class(klass).name 28 else 29 name = safeconstname(qname.name) 30 if modulepath 31 name = [modulepath, name].join('::') 32 end 33 while @classname.value?(name) 34 name += '_' 35 end 36 end 37 @classname[qname] = name.freeze 38 end 39 return @classname[qname] 40 =begin 25 41 if klass = ::SOAP::TypeMap[qname] 26 42 return ::SOAP::Mapping::DefaultRegistry.find_mapped_obj_class(klass).name … … 40 56 name 41 57 end 58 =end 42 59 end 43 60 end trunk/lib/wsdl/soap/clientSkeltonCreator.rb
r1939 r1948 52 52 53 53 def dump_porttype(porttype) 54 drv_name = create_class_name(porttype.name)54 drv_name = mapped_class_basename(porttype.name, @modulepath) 55 55 56 56 result = "" trunk/lib/wsdl/soap/driverCreator.rb
r1939 r1948 61 61 drivername = porttype.name + @drivername_postfix 62 62 qname = XSD::QName.new(porttype.namespace, drivername) 63 class_name = create_class_name(qname)63 class_name = mapped_class_basename(qname, @modulepath) 64 64 defined_const = {} 65 65 result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype) trunk/lib/wsdl/soap/encodedMappingRegistryCreator.rb
r1939 r1948 85 85 return <<__EOD__ 86 86 #{@varname}.set( 87 #{ create_class_name(qname, @modulepath)},87 #{mapped_class_name(qname, @modulepath)}, 88 88 ::SOAP::SOAPArray, 89 89 ::SOAP::Mapping::EncodedRegistry::TypedArrayFactory, trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb
r1939 r1948 132 132 def dump_literal_array_typemap(qname, typedef) 133 133 var = {} 134 var[:class] = create_class_name(qname, @modulepath)134 var[:class] = mapped_class_name(qname, @modulepath) 135 135 schema_ns = qname.namespace 136 136 if typedef.name.nil? … … 141 141 var[:schema_type] = qname 142 142 end 143 parentmodule = var[:class] 144 parsed_element = parse_elements(typedef.elements, qname.namespace, 145 parentmodule, nil) 143 parsed_element = 144 parse_elements(typedef.elements, qname.namespace, var[:class], nil) 146 145 if parsed_element.empty? 147 146 parsed_element = [create_soapenc_array_element_definition(typedef)] … … 162 161 else 163 162 typename = child_element.type || child_element.name 164 type = create_class_name(typename, @modulepath)163 type = mapped_class_name(typename, @modulepath) 165 164 end 166 165 elsif child_type 167 type = create_class_name(child_type, @modulepath)166 type = mapped_class_name(child_type, @modulepath) 168 167 else 169 168 type = nil trunk/lib/wsdl/soap/mappingRegistryCreatorSupport.rb
r1941 r1948 28 28 def dump_complex_typemap(qname, typedef, parentmodule, as_element = nil, qualified = nil) 29 29 var = {} 30 var[:class] = create_class_name(qname, parentmodule)30 var[:class] = mapped_class_name(qname, parentmodule) 31 31 if as_element 32 32 var[:schema_name] = as_element … … 45 45 end 46 46 parentmodule = var[:class] 47 parsed_element = parse_elements(typedef.elements, qname.namespace,48 par entmodule, qualified)47 parsed_element = 48 parse_elements(typedef.elements, qname.namespace, parentmodule, qualified) 49 49 if typedef.choice? 50 50 parsed_element.unshift(:choice) … … 60 60 def dump_simple_typemap(qname, typedef, as_element = nil, qualified = nil) 61 61 var = {} 62 var[:class] = create_class_name(qname, @modulepath)62 var[:class] = mapped_class_name(qname, @modulepath) 63 63 if as_element 64 64 var[:schema_name] = as_element … … 269 269 end 270 270 var = {} 271 var[:class] = create_class_name(qname, @modulepath)271 var[:class] = mapped_class_name(qname, @modulepath) 272 272 if as_element 273 273 var[:schema_name] = as_element trunk/lib/wsdl/soap/methodDefCreator.rb
r1939 r1948 99 99 op_fault = {} 100 100 soapfault = fault.soapfault 101 faultclass = create_class_name(fault.name, @modulepath)101 faultclass = mapped_class_name(fault.name, @modulepath) 102 102 op_fault[:ns] = fault.name.namespace 103 103 op_fault[:name] = fault.name.name … … 163 163 case definedtype.compoundtype 164 164 when :TYPE_STRUCT, :TYPE_EMPTY, :TYPE_ARRAY, :TYPE_SIMPLE 165 type = create_class_name(part.type, @modulepath)165 type = mapped_class_name(part.type, @modulepath) 166 166 [type, part.type.namespace, part.type.name] 167 167 when :TYPE_MAP trunk/lib/wsdl/soap/servantSkeltonCreator.rb
r1939 r1948 54 54 55 55 def dump_porttype(name) 56 class_name = create_class_name(name)56 class_name = mapped_class_basename(name, @modulepath) 57 57 c = XSD::CodeGen::ClassDef.new(class_name) 58 58 element_definitions = @definitions.collect_elements trunk/lib/wsdl/soap/servletStubCreator.rb
r1939 r1948 48 48 49 49 def dump_porttype(porttype) 50 class_name = create_class_name(porttype.name, @modulepath)50 class_name = mapped_class_name(porttype.name, @modulepath) 51 51 defined_const = {} 52 52 result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype.name) trunk/lib/wsdl/soap/standaloneServerStubCreator.rb
r1939 r1948 49 49 50 50 def dump_porttype(porttype) 51 class_name = create_class_name(porttype.name, @modulepath)51 class_name = mapped_class_name(porttype.name, @modulepath) 52 52 defined_const = {} 53 53 result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype.name)