diff options
author | Jeroen Frijters <jeroen@sumatra.nl> | 2003-03-14 12:54:38 +0100 |
---|---|---|
committer | Mark Wielaard <mark@gcc.gnu.org> | 2003-03-14 11:54:38 +0000 |
commit | 70e2e8dc1dcf67876829f1ff69fe77258613394b (patch) | |
tree | 43d8921b8292c787208a61bc7776888adfb3900e /libjava/java/io/ObjectStreamClass.java | |
parent | a721a60143b225f902f1d65324b6f9f9067b84c3 (diff) | |
download | gcc-70e2e8dc1dcf67876829f1ff69fe77258613394b.zip gcc-70e2e8dc1dcf67876829f1ff69fe77258613394b.tar.gz gcc-70e2e8dc1dcf67876829f1ff69fe77258613394b.tar.bz2 |
ObjectInputStream.java (readObject): Cleaned up the class hierarchy loop.
2003-02-14 Jeroen Frijters <jeroen@sumatra.nl>
* java/io/ObjectInputStream.java (readObject): Cleaned up the class
hierarchy loop.
(readFields(Object,ObjectStreamField[],boolean)): Changed argument
list to Object,ObjectStreamClass, moved callReadMethod code up into
readObject and added Class argument to all setXxxField calls.
(callReadMethod): Changed Class argument to ObjectStreamClass to be
consistent with ObjectOutputStream and to facilitate caching the
Method in the future.
(setBooleanField): Added Class argument.
(setByteField): Likewise.
(setCharField): Likewise.
(setDoubleField): Likewise.
(setFloatField): Likewise.
(setIntField): Likewise.
(setLongField): Likewise.
(setShortField): Likewise.
(setObjectField): Likewise.
* java/io/ObjectOutputStream.java (writeObject): Cleaned up the
class hierarchy loop.
(defaultWriteObject): Call writeFields with new argument list.
(writeFields(Object,ObjectStreamField[],boolean): Changed argument
list to Object,ObjectStreamClass, moved callWriteMethod up into
writeObject and added Class argument to all getXxxField calls.
(callWriteMethod): Added ObjectStreamClass argument to be able to
get the proper class to call getMethod on (each class can have (or
not have) its own writeObject method).
(getBooleanField): Added Class argument.
(getByteField): Likewise.
(getCharField): Likewise.
(getDoubleField): Likewise.
(getFloatField): Likewise.
(getIntField): Likewise.
(getLongField): Likewise.
(getShortField): Likewise.
(getObjectField): Likewise.
* java/io/ObjectStreamClass.java (hasReadMethod): Added method to
facilitate caching the Method object in the future.
From-SVN: r64351
Diffstat (limited to 'libjava/java/io/ObjectStreamClass.java')
-rw-r--r-- | libjava/java/io/ObjectStreamClass.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libjava/java/io/ObjectStreamClass.java b/libjava/java/io/ObjectStreamClass.java index 2111635..19a69ec 100644 --- a/libjava/java/io/ObjectStreamClass.java +++ b/libjava/java/io/ObjectStreamClass.java @@ -194,6 +194,28 @@ public class ObjectStreamClass implements Serializable // Returns true iff the class that this ObjectStreamClass represents + // has the following method: + // + // private void readObject (ObjectOutputStream) + // + // This method is used by the class to override default + // serialization behavior. + boolean hasReadMethod () + { + try + { + Class[] readObjectParams = { ObjectInputStream.class }; + forClass ().getDeclaredMethod ("readObject", readObjectParams); + return true; + } + catch (NoSuchMethodException e) + { + return false; + } + } + + + // Returns true iff the class that this ObjectStreamClass represents // implements Serializable but does *not* implement Externalizable. boolean isSerializable () { |