Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1547

Show
Ignore:
Timestamp:
05/12/05 03:03:47 (4 years ago)
Author:
nahi
Message:

move type-cast code from DateTimeFactory?_ to XSD::*. it's a responsibility of XSDDateTimeImpl but XSDDateTimeImpl may move into DateTimeFactory?_ altogether.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/mapping/factory.rb

    r1546 r1547  
    161161 
    162162  def soap2obj(obj_class, node, info, map) 
    163     obj = nil 
    164     if obj_class == Time 
    165       obj = node.to_time 
    166       if obj.nil? 
    167         # Is out of range as a Time 
    168         return false 
    169       end 
    170     elsif obj_class == Date 
    171       obj = node.to_date 
    172     elsif obj_class == DateTime 
    173       obj = node.data 
    174     else 
    175       return false 
    176     end 
    177     mark_unmarshalled_obj(node, obj) 
    178     return true, obj 
     163    if node.respond_to?(:to_obj) 
     164      obj = node.to_obj(obj_class) 
     165      return false if obj.nil? 
     166      mark_unmarshalled_obj(node, obj) 
     167      return true, obj 
     168    else 
     169      return false 
     170    end 
    179171  end 
    180172end 
  • trunk/lib/xsd/datatypes.rb

    r1546 r1547  
    496496  SecInDay = 86400      # 24 * 60 * 60 
    497497 
     498  def to_obj(klass) 
     499    if klass == Time 
     500      to_time 
     501    elsif klass == Date 
     502      to_date 
     503    elsif klass == DateTime 
     504      data 
     505    else 
     506      nil 
     507    end 
     508  end 
     509 
    498510  def to_time 
    499511    begin