|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.io.ObjectStreamClass
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.
The algorithm to compute the SerialVersionUID is described in Object Serialization Specification, Section 4.4, Stream Unique Identifiers.
ObjectStreamField
,
Object Serialization Specification, Section 4, Class Descriptors, Serialized FormInner Class Summary | |
private static class |
ObjectStreamClass.CompareClassByName
|
private static class |
ObjectStreamClass.CompareMemberByName
|
private static class |
ObjectStreamClass.MethodSignature
|
private static class |
ObjectStreamClass.ObjectStreamClassEntry
|
Field Summary | |
private static Comparator |
compareClassByName
|
private static Comparator |
compareMemberByName
|
private static ObjectStreamClass.ObjectStreamClassEntry[] |
descriptorFor
|
private boolean |
disableInstanceDeserialization
|
private boolean |
externalizable
|
private ObjectStreamField[] |
fields
|
private boolean |
hasExternalizableBlockData
|
private boolean |
hasWriteObjectMethod
|
private ObjectStreamClass |
localClassDesc
|
private String |
name
|
static ObjectStreamField[] |
NO_FIELDS
Set serialPersistentFields of a Serializable class to this value to denote that the class has no Serializable fields. |
private static Class[] |
NULL_ARGS
|
(package private) int |
objFields
|
private Class |
ofClass
|
private static Class[] |
OIS_ARGS
|
private static Class[] |
OOS_ARGS
|
(package private) int |
primBytes
|
(package private) java.lang.reflect.Method |
readObjectMethod
|
(package private) java.lang.reflect.Method |
readResolveMethod
|
private boolean |
serializable
|
private static ObjectStreamField[] |
serialPersistentFields
Class ObjectStreamClass is special cased within the Serialization Stream Protocol. |
private static long |
serialVersionUID
use serialVersionUID from JDK 1.1. |
private long |
suid
|
private ObjectStreamClass |
superclass
|
(package private) java.lang.reflect.Method |
writeObjectMethod
|
(package private) java.lang.reflect.Method |
writeReplaceMethod
|
Constructor Summary | |
private |
ObjectStreamClass(Class cl,
ObjectStreamClass superdesc,
boolean serial,
boolean extern)
|
(package private) |
ObjectStreamClass(String n,
long s)
|
Method Summary | |
private boolean |
checkSuperMethodAccess(java.lang.reflect.Method scMethod)
|
(package private) static boolean |
compareClassNames(String streamName,
String localName,
char pkgSeparator)
|
private void |
computeFieldInfo()
|
private static long |
computeSerialVersionUID(Class cl)
|
private static ObjectStreamClass |
findDescriptorFor(Class cl)
|
Class |
forClass()
Return the class in the local VM that this version is mapped to. |
private java.lang.reflect.Method |
getDeclaredMethod(String methodName,
Class[] args,
int requiredModifierMask,
int disallowedModifierMask)
|
ObjectStreamField |
getField(String name)
Get the field of this class by name. |
(package private) ObjectStreamField |
getField(String name,
Class fieldType)
Get the field of this class by name and fieldType. |
ObjectStreamField[] |
getFields()
Return an array of the fields of this serializable class. |
(package private) ObjectStreamField[] |
getFieldsNoCopy()
|
String |
getName()
The name of the class described by this descriptor. |
long |
getSerialVersionUID()
Return the serialVersionUID for this class. |
(package private) static String |
getSignature(Class clazz)
Compute the JVM signature for the class. |
(package private) static String |
getSignature(java.lang.reflect.Constructor cons)
|
(package private) static String |
getSignature(java.lang.reflect.Method meth)
|
(package private) ObjectStreamClass |
getSuperclass()
|
(package private) boolean |
hasExternalizableBlockDataMode()
|
private static boolean |
hasStaticInitializer(Class cl)
|
(package private) boolean |
hasWriteObject()
|
private static void |
initStaticMethodArgs()
|
private static void |
insertDescriptorFor(ObjectStreamClass desc)
|
(package private) static Object |
invokeMethod(java.lang.reflect.Method method,
Object obj,
Object[] args)
|
(package private) boolean |
isExternalizable()
|
(package private) boolean |
isNonSerializable()
|
(package private) boolean |
isReplaceable()
|
(package private) boolean |
isResolvable()
|
private static boolean |
isSameClassPackage(Class cl1,
Class cl2)
|
(package private) boolean |
isSerializable()
|
(package private) ObjectStreamClass |
localClassDescriptor()
|
static ObjectStreamClass |
lookup(Class cl)
Find the descriptor for a class that can be serialized. |
(package private) static ObjectStreamClass |
lookupInternal(Class cl)
|
(package private) void |
read(ObjectInputStream s)
|
(package private) void |
setClass(Class cl)
|
(package private) void |
setSuperclass(ObjectStreamClass s)
|
String |
toString()
Return a string describing this ObjectStreamClass. |
(package private) boolean |
typeEquals(ObjectStreamClass other)
|
private void |
validateLocalClass(Class localCl)
|
(package private) void |
verifyInstanceDeserialization()
|
(package private) void |
write(ObjectOutputStream s)
|
Methods inherited from class java.lang.Object |
|
Field Detail |
private static ObjectStreamClass.ObjectStreamClassEntry[] descriptorFor
private String name
private ObjectStreamClass superclass
private boolean serializable
private boolean externalizable
private ObjectStreamField[] fields
private Class ofClass
private long suid
int primBytes
int objFields
private boolean hasWriteObjectMethod
private boolean hasExternalizableBlockData
java.lang.reflect.Method writeObjectMethod
java.lang.reflect.Method readObjectMethod
java.lang.reflect.Method readResolveMethod
java.lang.reflect.Method writeReplaceMethod
private ObjectStreamClass localClassDesc
private boolean disableInstanceDeserialization
private static final long serialVersionUID
public static final ObjectStreamField[] NO_FIELDS
private static final ObjectStreamField[] serialPersistentFields
TC_CLASSDESC className, serialVersionUID, flags, length, list of field descriptions. FIELDNAME TYPES DESCRIPTION -------------------------------------- className primitive data String Fully qualified class name. serialVersionUID long Stream Unique Identifier for compatible classes with same base class name. flags byte Attribute bit fields defined inThe first time the class descriptor is written into the stream, a new handle is generated. Future references to the class descriptor are written as references to the initial class descriptor instance.java.io.ObjectStreamConstants.SC_*
. length short The number of field descriptions to follow. fieldDescription (byte, primitive data String, String Object) A pseudo-externalized format of classjava.io.ObjectStreamField
. Consists of typeCode, fieldName, and, if a nonPrimitive typecode, a fully qualified class name. SeeClass.getName
method for the typecode byte encodings.
ObjectOutputStream.writeUTF(java.lang.String)
private static Comparator compareClassByName
private static Comparator compareMemberByName
private static final Class[] NULL_ARGS
private static Class[] OIS_ARGS
private static Class[] OOS_ARGS
Constructor Detail |
private ObjectStreamClass(Class cl, ObjectStreamClass superdesc, boolean serial, boolean extern)
ObjectStreamClass(String n, long s)
Method Detail |
public static ObjectStreamClass lookup(Class cl)
static ObjectStreamClass lookupInternal(Class cl)
public String getName()
public long getSerialVersionUID()
public Class forClass()
public ObjectStreamField[] getFields()
final ObjectStreamField[] getFieldsNoCopy()
public ObjectStreamField getField(String name)
ObjectStreamField getField(String name, Class fieldType)
public String toString()
private void validateLocalClass(Class localCl) throws InvalidClassException
void setClass(Class cl) throws InvalidClassException
static boolean compareClassNames(String streamName, String localName, char pkgSeparator)
boolean typeEquals(ObjectStreamClass other)
void setSuperclass(ObjectStreamClass s)
ObjectStreamClass getSuperclass()
boolean hasWriteObject()
boolean hasExternalizableBlockDataMode()
ObjectStreamClass localClassDescriptor()
boolean isSerializable()
boolean isExternalizable()
boolean isNonSerializable()
private void computeFieldInfo()
private static long computeSerialVersionUID(Class cl)
static String getSignature(Class clazz)
static String getSignature(java.lang.reflect.Method meth)
static String getSignature(java.lang.reflect.Constructor cons)
void write(ObjectOutputStream s) throws IOException
void read(ObjectInputStream s) throws IOException, ClassNotFoundException
void verifyInstanceDeserialization() throws InvalidClassException
private static ObjectStreamClass findDescriptorFor(Class cl)
private static void insertDescriptorFor(ObjectStreamClass desc)
private static boolean hasStaticInitializer(Class cl)
boolean isResolvable()
boolean isReplaceable()
static Object invokeMethod(java.lang.reflect.Method method, Object obj, Object[] args) throws IOException
private java.lang.reflect.Method getDeclaredMethod(String methodName, Class[] args, int requiredModifierMask, int disallowedModifierMask)
private boolean checkSuperMethodAccess(java.lang.reflect.Method scMethod)
private static boolean isSameClassPackage(Class cl1, Class cl2)
private static void initStaticMethodArgs()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |