Method: Java::ObjectInputStream#readClassData

Defined in:
lib/javaobs.rb

#readClassData(klass, object = nil) ⇒ Object

Read class data and recursively read parent classes.



333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
# File 'lib/javaobs.rb', line 333

def readClassData(klass, object = nil)
  # Handle special case for Date
  if object == nil
    if (klass.javaName == 'java.util.Date')
      object = Java::Date.new
    else
      object = klass.rubyClass.new()
    end
    @objects << object
  end
  
  readClassData(klass.superClass, object) if (klass.superClass)
  
  if klass.flags == SC_SERIALIZABLE
    klass.fields.each do |f|
      v = readType(f.type, f.subtype, f)
      object.send((f.name + '=').intern, v)
    end
  else
    data = readBlockData
    object.time = data
  end
  
  object
end