Serialization's descriptor for classes. It contains the name and
serialVersionUID of the class. The ObjectStreamClass for a specific class
loaded in this Java VM can be found/created using the lookup method.
ObjectStreamClass() Creates blank class descriptor which should be initialized via a
subsequent call to initProxy(), initNonProxy() or readNonProxy().
Method Summary
void
checkDefaultSerialize() Throws an InvalidClassException if objects whose class is represented by
this descriptor should not be permitted to use default serialization
(e.g., if the class declares serializable fields that do not correspond
to actual fields, and hence must use the GetField API).
void
checkDeserialize() Throws an InvalidClassException if object instances referencing this
class descriptor should not be allowed to deserialize.
void
checkSerialize() Throws an InvalidClassException if objects whose class is represented by
this descriptor should not be allowed to serialize.
forClass() Return the class in the local VM that this version is mapped to.
ClassDataSlot[]
getClassDataLayout() Returns array of ClassDataSlot instances representing the data layout
(including superclass data) for serialized objects described by this
class descriptor.
getField(String name, Class type) Looks up a serializable field of the represented class by name and type.
A specified type of null matches all types, Object.class matches all
non-primitive types, and any other non-null type matches assignable
types only.
getLocalDesc() Returns the "local" class descriptor for the class associated with this
class descriptor (i.e., the result of
ObjectStreamClass.lookup(this.forClass())) or null if there is no class
associated with this descriptor.
getName() Returns the name of the class described by this descriptor.
int
getNumObjFields() Returns number of non-primitive serializable fields of represented
class.
void
getObjFieldValues(Object obj, Object[] vals) Fetches the serializable object field values of object obj and stores
them in array vals starting at offset 0.
int
getPrimDataSize() Returns aggregate size (in bytes) of marshalled primitive field values
for represented class.
void
getPrimFieldValues(Object obj, byte[] buf) Fetches the serializable primitive field values of object obj and
marshals them into byte array buf starting at offset 0.
hasBlockExternalData() Returns true if class descriptor represents externalizable class that
has written its data in 1.2 (block data) format, false otherwise.
boolean
hasReadObjectMethod() Returns true if represented class is serializable (but not
externalizable) and defines a conformant readObject method.
boolean
hasReadObjectNoDataMethod() Returns true if represented class is serializable (but not
externalizable) and defines a conformant readObjectNoData method.
boolean
hasReadResolveMethod() Returns true if represented class is serializable or externalizable and
defines a conformant readResolve method.
boolean
hasWriteObjectData() Returns true if class descriptor represents serializable (but not
externalizable) class which has written its data via a custom
writeObject() method, false otherwise.
boolean
hasWriteObjectMethod() Returns true if represented class is serializable (but not
externalizable) and defines a conformant writeObject method.
boolean
hasWriteReplaceMethod() Returns true if represented class is serializable or externalizable and
defines a conformant writeReplace method.
invokeWriteReplace(Object obj) Invokes the writeReplace method of the represented serializable class and
returns the result.
boolean
isEnum() Returns true if class descriptor represents an enum type, false
otherwise.
boolean
isExternalizable() Returns true if represented class implements Externalizable, false
otherwise.
boolean
isInstantiable() Returns true if represented class is serializable/externalizable and can
be instantiated by the serialization runtime--i.e., if it is
externalizable and defines a public no-arg constructor, or if it is
non-externalizable and its first non-serializable superclass defines an
accessible no-arg constructor.
boolean
isProxy() Returns true if class descriptor represents a dynamic proxy class, false
otherwise.
boolean
isSerializable() Returns true if represented class implements Serializable, false
otherwise.
setObjFieldValues(Object obj, Object[] vals) Sets the serializable object fields of object obj using values from
array vals starting at offset 0.
void
setPrimFieldValues(Object obj, byte[] buf) Sets the serializable primitive fields of object obj using values
unmarshalled from byte array buf starting at offset 0.
Throws an InvalidClassException if objects whose class is represented by
this descriptor should not be permitted to use default serialization
(e.g., if the class declares serializable fields that do not correspond
to actual fields, and hence must use the GetField API). This method
does not apply to deserialization of enum constants.
Throws an InvalidClassException if object instances referencing this
class descriptor should not be allowed to deserialize. This method does
not apply to deserialization of enum constants.
Throws an InvalidClassException if objects whose class is represented by
this descriptor should not be allowed to serialize. This method does
not apply to serialization of enum constants.
Return the class in the local VM that this version is mapped to. Null
is returned if there is no corresponding local class.
the Class instance that this descriptor represents
Returns array of ClassDataSlot instances representing the data layout
(including superclass data) for serialized objects described by this
class descriptor. ClassDataSlots are ordered by inheritance with those
containing "higher" superclasses appearing first. The final
ClassDataSlot contains a reference to this descriptor.
Get the field of this class by name.
Parameters: name - the name of the data field to look for The ObjectStreamField object of the named field or null ifthere is no such named field.
Looks up a serializable field of the represented class by name and type.
A specified type of null matches all types, Object.class matches all
non-primitive types, and any other non-null type matches assignable
types only. Returns matching field, or null if no match found.
Return an array of the fields of this serializable class.
an array containing an element for each persistent field ofthis class. Returns an array of length zero if there are nofields. since: 1.2
Returns arrays of ObjectStreamFields representing the serializable
fields of the represented class. If copy is true, a clone of this class
descriptor's field array is returned, otherwise the array itself is
returned.
Returns the "local" class descriptor for the class associated with this
class descriptor (i.e., the result of
ObjectStreamClass.lookup(this.forClass())) or null if there is no class
associated with this descriptor.
Returns the name of the class described by this descriptor.
This method returns the name of the class in the format that
is used by the
Class.getName method.
a string representing the name of the class
Fetches the serializable object field values of object obj and stores
them in array vals starting at offset 0. It is the responsibility of
the caller to ensure that obj is of the proper type if non-null.
Fetches the serializable primitive field values of object obj and
marshals them into byte array buf starting at offset 0. It is the
responsibility of the caller to ensure that obj is of the proper type if
non-null.
Return the serialVersionUID for this class. The serialVersionUID
defines a set of classes all with the same name that have evolved from a
common root class and agree to be serialized and deserialized using a
common format. NonSerializable classes have a serialVersionUID of 0L.
the SUID of the class described by this descriptor
Returns superclass descriptor. Note that on the receiving side, the
superclass descriptor may be bound to a class that is not a superclass
of the subclass descriptor's bound class.
Returns true if class descriptor represents serializable (but not
externalizable) class which has written its data via a custom
writeObject() method, false otherwise.
Invokes the readObject method of the represented serializable class.
Throws UnsupportedOperationException if this class descriptor is not
associated with a class, or if the class is externalizable,
non-serializable or does not define readObject.
Invokes the readObjectNoData method of the represented serializable
class. Throws UnsupportedOperationException if this class descriptor is
not associated with a class, or if the class is externalizable,
non-serializable or does not define readObjectNoData.
Invokes the readResolve method of the represented serializable class and
returns the result. Throws UnsupportedOperationException if this class
descriptor is not associated with a class, or if the class is
non-serializable or does not define readResolve.
Invokes the writeObject method of the represented serializable class.
Throws UnsupportedOperationException if this class descriptor is not
associated with a class, or if the class is externalizable,
non-serializable or does not define writeObject.
Invokes the writeReplace method of the represented serializable class and
returns the result. Throws UnsupportedOperationException if this class
descriptor is not associated with a class, or if the class is
non-serializable or does not define writeReplace.
Returns true if represented class is serializable/externalizable and can
be instantiated by the serialization runtime--i.e., if it is
externalizable and defines a public no-arg constructor, or if it is
non-externalizable and its first non-serializable superclass defines an
accessible no-arg constructor. Otherwise, returns false.
Find the descriptor for a class that can be serialized. Creates an
ObjectStreamClass instance if one does not exist yet for class. Null is
returned if the specified class does not implement java.io.Serializable
or java.io.Externalizable.
Parameters: cl - class for which to get the descriptor the class descriptor for the specified class
Looks up and returns class descriptor for given class, or null if class
is non-serializable and "all" is set to false.
Parameters: cl - class to look up Parameters: all - if true, return descriptors for all classes; if false, onlyreturn descriptors for serializable classes
Returns the descriptor for any class, regardless of whether it
implements
Serializable .
Parameters: cl - class for which to get the descriptor the class descriptor for the specified class since: 1.6
Creates a new instance of the represented class. If the class is
externalizable, invokes its public no-arg constructor; otherwise, if the
class is serializable, invokes the no-arg constructor of the first
non-serializable superclass. Throws UnsupportedOperationException if
this class descriptor is not associated with a class, if the associated
class is non-serializable or if the appropriate no-arg constructor is
inaccessible/unavailable.
Reads non-proxy class descriptor information from given input stream.
The resulting class descriptor is not fully functional; it can only be
used as input to the ObjectInputStream.resolveClass() and
ObjectStreamClass.initNonProxy() methods.
Sets the serializable object fields of object obj using values from
array vals starting at offset 0. It is the responsibility of the caller
to ensure that obj is of the proper type if non-null.
Sets the serializable primitive fields of object obj using values
unmarshalled from byte array buf starting at offset 0. It is the
responsibility of the caller to ensure that obj is of the proper type if
non-null.