Package org.jboss.marshalling.river
Class RiverUnmarshaller
- java.lang.Object
-
- java.io.InputStream
-
- org.jboss.marshalling.SimpleByteInput
-
- org.jboss.marshalling.ByteInputStream
-
- org.jboss.marshalling.SimpleDataInput
-
- org.jboss.marshalling.AbstractObjectInput
-
- org.jboss.marshalling.AbstractUnmarshaller
-
- org.jboss.marshalling.river.RiverUnmarshaller
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.DataInput
,java.io.ObjectInput
,java.lang.AutoCloseable
,ByteInput
,Unmarshaller
public class RiverUnmarshaller extends AbstractUnmarshaller
-
-
Field Summary
Fields Modifier and Type Field Description private BlockUnmarshaller
blockUnmarshaller
private java.util.ArrayList<ClassDescriptor>
classCache
private java.security.PrivilegedExceptionAction<RiverObjectInputStream>
createObjectInputStreamAction
private static ReflectiveCreator
DEFAULT_CREATOR
private int
depth
private java.util.ArrayList<java.lang.Object>
instanceCache
private RiverObjectInputStream
objectInputStream
private static java.lang.reflect.Field
proxyInvocationHandler
private SerializableClassRegistry
registry
private java.util.SortedSet<Validator>
validators
private int
validatorSeq
private int
version
-
Fields inherited from class org.jboss.marshalling.AbstractUnmarshaller
classExternalizerFactory, classResolver, classTable, configuredVersion, exceptionListener, objectPreResolver, objectResolver, objectTable, serializabilityChecker, streamHeader
-
Fields inherited from class org.jboss.marshalling.SimpleDataInput
buffer, limit, position
-
Fields inherited from class org.jboss.marshalling.ByteInputStream
byteInput
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RiverUnmarshaller(RiverMarshallerFactory marshallerFactory, SerializableClassRegistry registry, MarshallingConfiguration configuration)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addValidation(java.io.ObjectInputValidation validation, int prio)
void
clearClassCache()
Discard the class cache.void
clearInstanceCache()
Discard the instance cache.void
close()
private RiverObjectInputStream
createObjectInputStream()
protected void
discardFields(SerializableClassDescriptor descriptor)
private void
doInitSerializable(java.lang.Object obj, SerializableClassDescriptor descriptor, boolean discardMissing)
private java.lang.Object
doReadArray(int cnt, boolean unshared, boolean discardMissing)
private java.lang.Object
doReadBooleanArray(int cnt, boolean unshared)
private java.lang.Object
doReadByteArray(int cnt, boolean unshared)
private java.lang.Object
doReadCharArray(int cnt, boolean unshared)
(package private) ClassDescriptor
doReadClassDescriptor(int classType, boolean required)
(package private) java.lang.Object
doReadCollectionObject(boolean unshared, int idx, int size, boolean discardMissing)
private java.lang.Object
doReadDoubleArray(int cnt, boolean unshared)
private java.lang.Object
doReadFloatArray(int cnt, boolean unshared)
private java.lang.Object
doReadIntArray(int cnt, boolean unshared)
private java.lang.Object
doReadLongArray(int cnt, boolean unshared)
(package private) java.lang.Object
doReadMapObject(boolean unshared, int idx, int size, boolean key, boolean discardMissing)
(package private) java.lang.Object
doReadNestedObject(boolean unshared, java.lang.String enclosingClassName)
protected java.lang.Object
doReadNewObject(int streamClassType, boolean unshared, boolean discardMissing)
protected java.lang.Object
doReadObject(boolean unshared)
Implementation of the actual object-reading method.(package private) java.lang.Object
doReadObject(boolean unshared, boolean discardMissing)
(package private) java.lang.Object
doReadObject(int leadByte, boolean unshared, boolean discardMissing)
private java.lang.Object
doReadObjectArray(int cnt, java.lang.Class<?> type, boolean unshared, boolean discardMissing)
private java.lang.Object
doReadShortArray(int cnt, boolean unshared)
void
finish()
Finish reading from the current input.private BlockUnmarshaller
getBlockUnmarshaller()
private RiverObjectInputStream
getObjectInputStream()
private java.lang.Object
readCollectionData(boolean unshared, int cacheIdx, int len, java.util.Collection target, boolean discardMissing)
protected void
readFields(java.lang.Object obj, SerializableClassDescriptor descriptor, boolean discardMissing)
private java.lang.Object
readMapData(boolean unshared, int cacheIdx, int len, java.util.Map target, boolean discardMissing)
private java.lang.Object
readSortedMapData(boolean unshared, int cacheIdx, int len, java.util.SortedMap target, boolean discardMissing)
private java.lang.Object
readSortedSetData(boolean unshared, int cacheIdx, int len, java.util.SortedSet target, boolean discardMissing)
protected java.lang.String
readString()
java.lang.String
readUTF()
private java.lang.Object
replace(java.lang.Object object)
private static java.lang.Enum
resolveEnumConstant(ClassDescriptor descriptor, java.lang.String name)
private static java.io.InvalidObjectException
sharedMismatch()
void
start(ByteInput byteInput)
Start reading from the given input.-
Methods inherited from class org.jboss.marshalling.AbstractObjectInput
readObject, readObject, readObjectUnshared, readObjectUnshared
-
Methods inherited from class org.jboss.marshalling.SimpleDataInput
available, read, read, read, readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readIntDirect, readLine, readLong, readLongDirect, readShort, readUnsignedByte, readUnsignedByteDirect, readUnsignedShort, skip, skipBytes
-
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, transferTo
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.io.DataInput
readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, skipBytes
-
Methods inherited from interface org.jboss.marshalling.Unmarshaller
readObject, readObjectUnshared, readObjectUnshared
-
-
-
-
Field Detail
-
DEFAULT_CREATOR
private static final ReflectiveCreator DEFAULT_CREATOR
-
instanceCache
private final java.util.ArrayList<java.lang.Object> instanceCache
-
classCache
private final java.util.ArrayList<ClassDescriptor> classCache
-
registry
private final SerializableClassRegistry registry
-
version
private int version
-
depth
private int depth
-
blockUnmarshaller
private BlockUnmarshaller blockUnmarshaller
-
objectInputStream
private RiverObjectInputStream objectInputStream
-
validators
private java.util.SortedSet<Validator> validators
-
validatorSeq
private int validatorSeq
-
proxyInvocationHandler
private static final java.lang.reflect.Field proxyInvocationHandler
-
createObjectInputStreamAction
private final java.security.PrivilegedExceptionAction<RiverObjectInputStream> createObjectInputStreamAction
-
-
Constructor Detail
-
RiverUnmarshaller
protected RiverUnmarshaller(RiverMarshallerFactory marshallerFactory, SerializableClassRegistry registry, MarshallingConfiguration configuration)
-
-
Method Detail
-
clearInstanceCache
public void clearInstanceCache() throws java.io.IOException
Description copied from interface:Unmarshaller
Discard the instance cache.- Throws:
java.io.IOException
- if an error occurs
-
clearClassCache
public void clearClassCache() throws java.io.IOException
Description copied from interface:Unmarshaller
Discard the class cache. Implicitly also discards the instance cache.- Throws:
java.io.IOException
- if an error occurs
-
close
public void close() throws java.io.IOException
Description copied from class:SimpleDataInput
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfacejava.io.ObjectInput
- Overrides:
close
in classSimpleDataInput
- Throws:
java.io.IOException
-
finish
public void finish() throws java.io.IOException
Description copied from class:AbstractUnmarshaller
Finish reading from the current input. The internal buffer is discarded, not flushed.- Specified by:
finish
in interfaceUnmarshaller
- Overrides:
finish
in classAbstractUnmarshaller
- Throws:
java.io.IOException
- not thrown by this implementation, but may be overridden to be thrown if a problem occurs
-
getBlockUnmarshaller
private BlockUnmarshaller getBlockUnmarshaller()
-
getObjectInputStream
private RiverObjectInputStream getObjectInputStream() throws java.io.IOException
- Throws:
java.io.IOException
-
createObjectInputStream
private RiverObjectInputStream createObjectInputStream() throws java.io.IOException
- Throws:
java.io.IOException
-
doReadNestedObject
java.lang.Object doReadNestedObject(boolean unshared, java.lang.String enclosingClassName) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
doReadCollectionObject
java.lang.Object doReadCollectionObject(boolean unshared, int idx, int size, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
doReadMapObject
java.lang.Object doReadMapObject(boolean unshared, int idx, int size, boolean key, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
doReadObject
protected java.lang.Object doReadObject(boolean unshared) throws java.lang.ClassNotFoundException, java.io.IOException
Description copied from class:AbstractObjectInput
Implementation of the actual object-reading method.- Specified by:
doReadObject
in classAbstractObjectInput
- Parameters:
unshared
-true
if the instance should be unshared,false
if it is shared- Returns:
- the object to read
- Throws:
java.lang.ClassNotFoundException
- if the class for the object could not be loadedjava.io.IOException
- if an I/O error occurs
-
doReadObject
java.lang.Object doReadObject(boolean unshared, boolean discardMissing) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
doReadObject
java.lang.Object doReadObject(int leadByte, boolean unshared, boolean discardMissing) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
readCollectionData
private java.lang.Object readCollectionData(boolean unshared, int cacheIdx, int len, java.util.Collection target, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
readSortedSetData
private java.lang.Object readSortedSetData(boolean unshared, int cacheIdx, int len, java.util.SortedSet target, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
readMapData
private java.lang.Object readMapData(boolean unshared, int cacheIdx, int len, java.util.Map target, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
readSortedMapData
private java.lang.Object readSortedMapData(boolean unshared, int cacheIdx, int len, java.util.SortedMap target, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
sharedMismatch
private static java.io.InvalidObjectException sharedMismatch()
-
doReadClassDescriptor
ClassDescriptor doReadClassDescriptor(int classType, boolean required) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
readString
protected java.lang.String readString() throws java.io.IOException
- Throws:
java.io.IOException
-
start
public void start(ByteInput byteInput) throws java.io.IOException
Description copied from class:AbstractUnmarshaller
Start reading from the given input. The internal buffer is discarded.- Specified by:
start
in interfaceUnmarshaller
- Overrides:
start
in classAbstractUnmarshaller
- Parameters:
byteInput
- the new input from which to read- Throws:
java.io.IOException
- not thrown by this implementation, but may be overridden to be thrown if a problem occurs
-
doReadNewObject
protected java.lang.Object doReadNewObject(int streamClassType, boolean unshared, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
doReadDoubleArray
private java.lang.Object doReadDoubleArray(int cnt, boolean unshared) throws java.io.IOException
- Throws:
java.io.IOException
-
doReadFloatArray
private java.lang.Object doReadFloatArray(int cnt, boolean unshared) throws java.io.IOException
- Throws:
java.io.IOException
-
doReadCharArray
private java.lang.Object doReadCharArray(int cnt, boolean unshared) throws java.io.IOException
- Throws:
java.io.IOException
-
doReadLongArray
private java.lang.Object doReadLongArray(int cnt, boolean unshared) throws java.io.IOException
- Throws:
java.io.IOException
-
doReadIntArray
private java.lang.Object doReadIntArray(int cnt, boolean unshared) throws java.io.IOException
- Throws:
java.io.IOException
-
doReadShortArray
private java.lang.Object doReadShortArray(int cnt, boolean unshared) throws java.io.IOException
- Throws:
java.io.IOException
-
doReadByteArray
private java.lang.Object doReadByteArray(int cnt, boolean unshared) throws java.io.IOException
- Throws:
java.io.IOException
-
doReadBooleanArray
private java.lang.Object doReadBooleanArray(int cnt, boolean unshared) throws java.io.IOException
- Throws:
java.io.IOException
-
doReadObjectArray
private java.lang.Object doReadObjectArray(int cnt, java.lang.Class<?> type, boolean unshared, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
doReadArray
private java.lang.Object doReadArray(int cnt, boolean unshared, boolean discardMissing) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
resolveEnumConstant
private static java.lang.Enum resolveEnumConstant(ClassDescriptor descriptor, java.lang.String name)
-
doInitSerializable
private void doInitSerializable(java.lang.Object obj, SerializableClassDescriptor descriptor, boolean discardMissing) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
readFields
protected void readFields(java.lang.Object obj, SerializableClassDescriptor descriptor, boolean discardMissing) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
discardFields
protected void discardFields(SerializableClassDescriptor descriptor) throws java.io.IOException
- Throws:
java.io.IOException
-
addValidation
void addValidation(java.io.ObjectInputValidation validation, int prio)
-
readUTF
public java.lang.String readUTF() throws java.io.IOException
Description copied from class:SimpleDataInput
- Specified by:
readUTF
in interfacejava.io.DataInput
- Overrides:
readUTF
in classSimpleDataInput
- Throws:
java.io.IOException
-
replace
private java.lang.Object replace(java.lang.Object object)
-
-