Changeset 1725
- Timestamp:
- 09/25/06 13:14:49 (2 years ago)
- Files:
-
- trunk/lib/soap/mapping/registry.rb (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/mapping/registry.rb
r1724 r1725 32 32 33 33 # For anyType object: SOAP::Mapping::Object not ::Object 34 class Object ; include Marshallable34 class Object 35 35 def initialize 36 36 @__xmlele_type = {} … … 102 102 end 103 103 104 def marshal_load(dumpobj) 105 __import(dumpobj) 106 end 107 104 108 private 105 109 … … 109 113 # untaint depends GenSupport.safemethodname 110 114 name = XSD::CodeGen::GenSupport.safemethodname(qname.name).untaint 111 # untaint depends QName#dump115 # untaint depends on QName#dump 112 116 qnamedump = qname.dump.untaint 117 singleton = false 113 118 unless self.respond_to?(name) 119 singleton = true 114 120 instance_eval <<-EOS 115 121 def #{name} … … 119 125 end 120 126 unless self.respond_to?(name + "=") 127 singleton = true 121 128 instance_eval <<-EOS 122 129 def #{name}=(value) 123 130 self[#{qnamedump}] = value 131 end 132 EOS 133 end 134 if singleton && !self.respond_to?(:marshal_dump) 135 instance_eval <<-EOS 136 def marshal_dump 137 __export 124 138 end 125 139 EOS … … 139 153 end 140 154 end 155 156 def __export 157 dumpobj = ::SOAP::Mapping::Object.new 158 dumpobj.__xmlele.replace(@__xmlele) 159 dumpobj.__xmlattr.replace(@__xmlattr) 160 dumpobj 161 end 162 163 def __import(dumpobj) 164 @__xmlele_type = {} 165 @__xmlele = [] 166 @__xmlattr = {} 167 dumpobj.__xmlele.each do |qname, value| 168 __add_xmlele_value(qname, value) 169 end 170 @__xmlattr.replace(dumpobj.__xmlattr) 171 end 141 172 end 142 173