Changeset 1944
- Timestamp:
- 09/08/07 23:42:12 (8 months ago)
- Files:
-
- trunk/lib/wsdl/soap/classDefCreator.rb (modified) (14 diffs)
- trunk/test/wsdl/ref/expectedProduct.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/wsdl/soap/classDefCreator.rb
r1939 r1944 92 92 @elements.collect { |ele| 93 93 next if @complextypes[ele.name] 94 qualified = (ele.elementform == 'qualified') 95 if ele.local_complextype 96 dump_complextypedef(ele.name, ele.local_complextype, qualified) 97 elsif ele.local_simpletype 98 dump_simpletypedef(ele.name, ele.local_simpletype, qualified) 99 elsif ele.empty? 100 dump_simpleclassdef(ele.name, nil) 101 else 102 # ignores type only element 103 nil 104 end 94 c = create_elementdef(ele) 95 c ? c.dump : nil 105 96 }.compact.join("\n") 106 97 end 107 98 108 99 def dump_attribute 109 @attributes.collect { |attr| 110 if attr.local_simpletype 111 dump_simpletypedef(attr.name, attr.local_simpletype) 112 end 100 @attributes.collect { |attribute| 101 if attribute.local_simpletype 102 c = create_simpletypedef(attribute.name, attribute.local_simpletype) 103 end 104 c ? c.dump : nil 113 105 }.compact.join("\n") 114 106 end … … 116 108 def dump_simpletype 117 109 @simpletypes.collect { |type| 118 dump_simpletypedef(type.name, type) 110 c = create_simpletypedef(type.name, type) 111 c ? c.dump : nil 119 112 }.compact.join("\n") 120 113 end … … 122 115 def dump_complextype 123 116 definitions = sort_dependency(@complextypes).collect { |type| 124 dump_complextypedef(type.name, type) 117 c = create_complextypedef(type.name, type) 118 c ? c.dump : nil 125 119 }.compact.join("\n") 126 120 end … … 128 122 def dump_group 129 123 definitions = @modelgroups.collect { |group| 130 # ???124 # TODO: not dumped for now but may be useful in the future 131 125 }.compact.join("\n") 132 126 end 133 127 134 def dump_simpletypedef(qname, simpletype, qualified = false) 128 def create_elementdef(ele) 129 qualified = (ele.elementform == 'qualified') 130 if ele.local_complextype 131 create_complextypedef(ele.name, ele.local_complextype, qualified) 132 elsif ele.local_simpletype 133 create_simpletypedef(ele.name, ele.local_simpletype, qualified) 134 elsif ele.empty? 135 create_simpleclassdef(ele.name, nil) 136 else 137 # ignores type only element 138 nil 139 end 140 end 141 142 def create_simpletypedef(qname, simpletype, qualified = false) 135 143 if simpletype.restriction 136 dump_simpletypedef_restriction(qname, simpletype, qualified)144 create_simpletypedef_restriction(qname, simpletype, qualified) 137 145 elsif simpletype.list 138 dump_simpletypedef_list(qname, simpletype, qualified)146 create_simpletypedef_list(qname, simpletype, qualified) 139 147 elsif simpletype.union 140 dump_simpletypedef_union(qname, simpletype, qualified)148 create_simpletypedef_union(qname, simpletype, qualified) 141 149 else 142 150 raise RuntimeError.new("unknown kind of simpletype: #{simpletype}") … … 144 152 end 145 153 146 def dump_simpletypedef_restriction(qname, typedef, qualified)154 def create_simpletypedef_restriction(qname, typedef, qualified) 147 155 restriction = typedef.restriction 148 156 unless restriction.enumeration? … … 155 163 c.comment = "#{qname}" 156 164 define_classenum_restriction(c, classname, restriction.enumeration) 157 c .dump158 end 159 160 def dump_simpletypedef_list(qname, typedef, qualified)165 c 166 end 167 168 def create_simpletypedef_list(qname, typedef, qualified) 161 169 list = typedef.list 162 170 classname = create_class_name(qname) … … 176 184 raise RuntimeError.new("unknown kind of list: #{list}") 177 185 end 178 c .dump179 end 180 181 def dump_simpletypedef_union(qname, typedef, qualified)186 c 187 end 188 189 def create_simpletypedef_union(qname, typedef, qualified) 182 190 union = typedef.union 183 191 classname = create_class_name(qname) … … 188 196 c.comment << "\n any of #{union.member_types}" 189 197 end 190 c .dump198 c 191 199 end 192 200 … … 215 223 end 216 224 217 def dump_simpleclassdef(qname, type_or_element)225 def create_simpleclassdef(qname, type_or_element) 218 226 classname = create_class_name(qname) 219 227 check_classname(classname) … … 228 236 "super\n" + init_lines.join("\n") 229 237 end 230 c .dump231 end 232 233 def dump_complextypedef(qname, type, qualified = false)238 c 239 end 240 241 def create_complextypedef(qname, type, qualified = false) 234 242 case type.compoundtype 235 243 when :TYPE_STRUCT, :TYPE_EMPTY 236 dump_classdef(qname, type, qualified)244 create_classdef(qname, type, qualified) 237 245 when :TYPE_ARRAY 238 dump_arraydef(qname, type)246 create_arraydef(qname, type) 239 247 when :TYPE_SIMPLE 240 dump_simpleclassdef(qname, type)248 create_simpleclassdef(qname, type) 241 249 when :TYPE_MAP 242 250 # mapped as a general Hash … … 246 254 "unknown kind of complexContent: #{type.compoundtype}") 247 255 end 248 end249 250 def dump_classdef(qname, typedef, qualified = false)251 create_classdef(qname, typedef, qualified).dump252 256 end 253 257 … … 301 305 typebase = @modulepath 302 306 if element.anonymous_type? 303 inner = create_ classdef(element.name, element.local_complextype)307 inner = create_elementdef(element) 304 308 unless as_array 305 309 inner.comment = "inner class for member: #{name}\n" + inner.comment … … 375 379 end 376 380 377 def dump_arraydef(qname, typedef)381 def create_arraydef(qname, typedef) 378 382 classname = create_class_name(qname) 379 383 check_classname(classname) … … 381 385 c.comment = "#{qname}" 382 386 parse_elements(c, typedef.elements, qname.namespace, classname, true) 383 c .dump387 c 384 388 end 385 389 trunk/test/wsdl/ref/expectedProduct.rb
r1934 r1944 147 147 # {}Comment_1 148 148 # xmlattr_msgid - SOAP::SOAPString 149 class Comment_1 149 class Comment_1 < ::String 150 150 AttrMsgid = XSD::QName.new(nil, "msgid") 151 151 … … 162 162 end 163 163 164 def initialize 164 def initialize(*arg) 165 super 165 166 @__xmlattr = {} 166 167 end