Files

Class Index [+]

Quicksearch

SOAP::Mapping::RegistrySupport

Public Class Methods

new() click to toggle source
     # File lib/soap/mapping/registry.rb, line 174
174:   def initialize
175:     super()
176:     @class_schema_definition = {}
177:     @class_elename_schema_definition = {}
178:     @elename_schema_definition = {}
179:     @type_schema_definition = {}
180:   end

Public Instance Methods

add_attributes2soap(obj, ele) click to toggle source
     # File lib/soap/mapping/registry.rb, line 230
230:   def add_attributes2soap(obj, ele)
231:     if definition = Mapping.schema_definition_classdef(obj.class)
232:       add_definedattributes2soap(obj, ele, definition)
233:     elsif obj.respond_to?(:__xmlattr)
234:       obj.__xmlattr.each do |key, value|
235:         ele.extraattr[key] = value
236:       end
237:     end
238:   end
add_definedattributes2soap(obj, ele, typedef) click to toggle source
     # File lib/soap/mapping/registry.rb, line 240
240:   def add_definedattributes2soap(obj, ele, typedef)
241:     if typedef.attributes
242:       typedef.attributes.each do |qname, param|
243:         value = get_xmlattr_value(obj, qname)
244:         ele.extraattr[qname] = value unless value.nil?
245:       end
246:     end
247:   end
base2obj(value, klass) click to toggle source
     # File lib/soap/mapping/registry.rb, line 273
273:   def base2obj(value, klass)
274:     v = if value.respond_to?(:data)
275:           value.data
276:         elsif value.respond_to?(:text)
277:           value.text
278:         else
279:           nil
280:         end
281:     if value.is_a?(klass)
282:       v
283:     else
284:       klass.to_data(v)
285:     end
286:   end
base2soap(obj, type, qualified = nil) click to toggle source
     # File lib/soap/mapping/registry.rb, line 259
259:   def base2soap(obj, type, qualified = nil)
260:     return SOAPNil.new if obj.nil?
261:     soap_obj = nil
262:     if type <= XSD::XSDString
263:       str = XSD::Charset.encoding_conv(obj.to_s, Mapping.external_ces,
264:         XSD::Charset.encoding)
265:       soap_obj = type.new(str)
266:     else
267:       soap_obj = type.new(obj)
268:     end
269:     soap_obj.qualified = qualified
270:     soap_obj
271:   end
elename_schema_definition_from_class(klass) click to toggle source
     # File lib/soap/mapping/registry.rb, line 202
202:   def elename_schema_definition_from_class(klass)
203:     @class_elename_schema_definition[klass]
204:   end
find_node_definition(node) click to toggle source
     # File lib/soap/mapping/registry.rb, line 214
214:   def find_node_definition(node)
215:     schema_definition_from_type(node.type) ||
216:       schema_definition_from_elename(node.elename) ||
217:       find_schema_definition(node.elename.name) ||
218:       find_schema_definition(node.type.name)
219:   end
find_schema_definition(name) click to toggle source
     # File lib/soap/mapping/registry.rb, line 221
221:   def find_schema_definition(name)
222:     return nil unless name
223:     typestr = Mapping.safeconstname(name)
224:     obj_class = Mapping.class_from_name(typestr)
225:     if obj_class
226:       schema_definition_from_class(obj_class)
227:     end
228:   end
get_xmlattr_value(obj, qname) click to toggle source
     # File lib/soap/mapping/registry.rb, line 249
249:   def get_xmlattr_value(obj, qname)
250:     attrname = 'xmlattr_' + qname.name
251:     value = Mapping.get_attribute(obj, attrname)
252:     if value.nil?
253:       attrname = Mapping.safemethodname('xmlattr_' + qname.name)
254:       value = Mapping.get_attribute(obj, attrname)
255:     end
256:     value
257:   end
is_stubobj_elements_for_array(vars) click to toggle source
     # File lib/soap/mapping/registry.rb, line 288
288:   def is_stubobj_elements_for_array(vars)
289:     vars.keys.size == 1 and vars.values[0].is_a?(::Array)
290:   end
register(definition) click to toggle source
     # File lib/soap/mapping/registry.rb, line 182
182:   def register(definition)
183:     obj_class = definition[:class]
184:     definition = Mapping.create_schema_definition(obj_class, definition)
185:     # give complexType definition a priority explicitly
186:     if !@class_schema_definition[obj_class] or definition.type
187:       @class_schema_definition[obj_class] = definition
188:     end
189:     if definition.elename and !definition.is_anonymous?
190:       @class_elename_schema_definition[obj_class] = definition
191:       @elename_schema_definition[definition.elename] = definition
192:     end
193:     if definition.type
194:       @type_schema_definition[definition.type] = definition
195:     end
196:   end
schema_definition_from_class(klass) click to toggle source
     # File lib/soap/mapping/registry.rb, line 198
198:   def schema_definition_from_class(klass)
199:     @class_schema_definition[klass] || Mapping.schema_definition_classdef(klass)
200:   end
schema_definition_from_elename(qname) click to toggle source
     # File lib/soap/mapping/registry.rb, line 206
206:   def schema_definition_from_elename(qname)
207:     @elename_schema_definition[qname]
208:   end
schema_definition_from_type(type) click to toggle source
     # File lib/soap/mapping/registry.rb, line 210
210:   def schema_definition_from_type(type)
211:     @type_schema_definition[type]
212:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.