Class SerialMarshaller
- All Implemented Interfaces:
Closeable, DataOutput, Flushable, ObjectOutput, ObjectStreamConstants, AutoCloseable, ByteOutput, Marshaller, ExtendedObjectStreamConstants
public final class SerialMarshaller
extends AbstractMarshaller
implements Marshaller, ExtendedObjectStreamConstants
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BlockMarshallerprivate final intprivate final PrivilegedExceptionAction<SerialObjectOutputStream> private final IdentityIntMap<Class<?>> private final IdentityHashMap<Class<?>, Externalizer> private final IdentityIntMap<Object> private intprivate static final intprivate SerialObjectOutputStreamprivate static final IdentityIntMap<Class<?>> private final SerializableClassRegistryprivate final IdentityHashMap<Object, Object> Fields inherited from class AbstractMarshaller
classExternalizerFactory, classResolver, classTable, configuredVersion, exceptionListener, objectPreResolver, objectResolver, objectTable, serializabilityChecker, streamHeaderFields inherited from class SimpleDataOutput
bufferFields inherited from class ByteOutputStream
byteOutputFields inherited from interface ExtendedObjectStreamConstants
TC_CLASSTABLEDESC, TC_OBJECTTABLEFields inherited from interface ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, SERIAL_FILTER_PERMISSION, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING -
Constructor Summary
ConstructorsConstructorDescriptionSerialMarshaller(AbstractMarshallerFactory marshallerFactory, SerializableClassRegistry registry, MarshallingConfiguration configuration) -
Method Summary
Modifier and TypeMethodDescriptionvoidDiscard the class cache.voidDiscard the instance cache.private SerialObjectOutputStreamprivate voidprotected voiddoWriteFields(SerializableClass info, Object obj) protected voiddoWriteObject(Object orig, boolean unshared) Implementation of the actual object-writing method.voidfinish()Finish writing to a stream.voidflush()private SerialObjectOutputStreamprivate static StringgetSignature(Class<?> type) voidstart(ByteOutput byteOutput) Begin writing to a stream.private voidwriteClassDescFor(Class<?> forClass) private voidwriteNewClassDescFor(Class<?> forClass) private voidwriteNewPlainClassDesc(Class<?> forClass) private voidwriteNewProxyClassDesc(Class<?> forClass) (package private) voidwriteNoBlockFlush(byte[] bytes, int off, int len) private voidwriteSerialData(Class<?> objClass, Object obj) Methods inherited from class AbstractMarshaller
close, writeObject, writeObjectUnsharedMethods inherited from class SimpleDataOutput
shallowFlush, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeLong, writeShort, writeUTFMethods inherited from class OutputStream
nullOutputStreamMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ByteOutput
write, write, writeMethods inherited from interface DataOutput
writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeLong, writeShort, writeUTFMethods inherited from interface Marshaller
writeObjectUnsharedMethods inherited from interface ObjectOutput
close, write, write, write, writeObject
-
Field Details
-
MIN_BUFFER_SIZE
private static final int MIN_BUFFER_SIZE- See Also:
-
registry
-
instanceCache
-
descriptorCache
-
replacementCache
-
externalizers
-
bufferSize
private final int bufferSize -
oos
-
blockMarshaller
-
instanceSeq
private int instanceSeq -
createObjectOutputStreamAction
-
primitives
-
-
Constructor Details
-
SerialMarshaller
SerialMarshaller(AbstractMarshallerFactory marshallerFactory, SerializableClassRegistry registry, MarshallingConfiguration configuration) throws IOException - Throws:
IOException
-
-
Method Details
-
doWriteObject
Description copied from class:AbstractObjectOutputImplementation of the actual object-writing method.- Specified by:
doWriteObjectin classAbstractObjectOutput- Parameters:
orig- the object to writeunshared-trueif the instance is unshared,falseif it is shared- Throws:
IOException- if an I/O error occurs
-
writeSerialData
- Throws:
IOException
-
createObjectOutputStream
- Throws:
IOException
-
getObjectOutputStream
- Throws:
IOException
-
doWriteFields
- Throws:
IOException
-
writeClassDescFor
- Throws:
IOException
-
writeNewClassDescFor
- Throws:
IOException
-
writeNewProxyClassDesc
- Throws:
IOException
-
writeNewPlainClassDesc
- Throws:
IOException
-
doEndBlock
- Throws:
IOException
-
getSignature
-
clearInstanceCache
Description copied from interface:MarshallerDiscard the instance cache. May also discard the class cache in implementations that do not support separated class and instance caches.- Specified by:
clearInstanceCachein interfaceMarshaller- Throws:
IOException- if an error occurs
-
clearClassCache
Description copied from interface:MarshallerDiscard the class cache. Implicitly also discards the instance cache.- Specified by:
clearClassCachein interfaceMarshaller- Throws:
IOException- if an error occurs
-
start
Description copied from class:AbstractMarshallerBegin writing to a stream.- Specified by:
startin interfaceMarshaller- Overrides:
startin classAbstractMarshaller- Parameters:
byteOutput- the new stream- Throws:
IOException- if an error occurs
-
finish
Description copied from class:AbstractMarshallerFinish writing to a stream. The stream is released. No further writing may be done until theSimpleDataOutput.start(ByteOutput)method is again invoked.- Specified by:
finishin interfaceMarshaller- Overrides:
finishin classAbstractMarshaller- Throws:
IOException- if an error occurs
-
flush
Description copied from class:SimpleDataOutput- Specified by:
flushin interfaceFlushable- Specified by:
flushin interfaceObjectOutput- Overrides:
flushin classSimpleDataOutput- Throws:
IOException
-
writeNoBlockFlush
- Throws:
IOException
-