Class CustomObjectOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.ObjectOutputStream
-
- com.thoughtworks.xstream.core.util.CustomObjectOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.DataOutput
,java.io.Flushable
,java.io.ObjectOutput
,java.io.ObjectStreamConstants
,java.lang.AutoCloseable
public class CustomObjectOutputStream extends java.io.ObjectOutputStream
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
CustomObjectOutputStream.CustomPutField
static interface
CustomObjectOutputStream.StreamCallback
-
Field Summary
Fields Modifier and Type Field Description private FastStack
callbacks
private FastStack
customFields
private static java.lang.String
DATA_HOLDER_KEY
-
Fields inherited from interface java.io.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
Constructors Constructor Description CustomObjectOutputStream(CustomObjectOutputStream.StreamCallback callback)
Warning, this object is expensive to create (due to functionality inherited from superclass).
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
defaultWriteObject()
Methods to delegate to callbackvoid
flush()
static CustomObjectOutputStream
getInstance(DataHolder whereFrom, CustomObjectOutputStream.StreamCallback callback)
CustomObjectOutputStream.StreamCallback
peekCallback()
CustomObjectOutputStream.StreamCallback
popCallback()
void
pushCallback(CustomObjectOutputStream.StreamCallback callback)
Allows the CustomObjectOutputStream (which is expensive to create) to be reused.java.io.ObjectOutputStream.PutField
putFields()
void
reset()
Unsupported methodsvoid
useProtocolVersion(int version)
void
write(byte[] buf)
void
write(byte[] buf, int off, int len)
void
write(int val)
void
writeBoolean(boolean val)
void
writeByte(int val)
void
writeBytes(java.lang.String str)
void
writeChar(int val)
void
writeChars(java.lang.String str)
void
writeDouble(double val)
void
writeFields()
void
writeFloat(float val)
void
writeInt(int val)
void
writeLong(long val)
protected void
writeObjectOverride(java.lang.Object obj)
void
writeShort(int val)
void
writeUnshared(java.lang.Object obj)
void
writeUTF(java.lang.String str)
-
-
-
Constructor Detail
-
CustomObjectOutputStream
public CustomObjectOutputStream(CustomObjectOutputStream.StreamCallback callback) throws java.io.IOException, java.lang.SecurityException
Warning, this object is expensive to create (due to functionality inherited from superclass). Use the static fetch() method instead, wherever possible.- Throws:
java.io.IOException
java.lang.SecurityException
- See Also:
getInstance(com.thoughtworks.xstream.converters.DataHolder, com.thoughtworks.xstream.core.util.CustomObjectOutputStream.StreamCallback)
-
-
Method Detail
-
getInstance
public static CustomObjectOutputStream getInstance(DataHolder whereFrom, CustomObjectOutputStream.StreamCallback callback)
-
pushCallback
public void pushCallback(CustomObjectOutputStream.StreamCallback callback)
Allows the CustomObjectOutputStream (which is expensive to create) to be reused.
-
popCallback
public CustomObjectOutputStream.StreamCallback popCallback()
-
peekCallback
public CustomObjectOutputStream.StreamCallback peekCallback()
-
defaultWriteObject
public void defaultWriteObject() throws java.io.IOException
Methods to delegate to callback- Overrides:
defaultWriteObject
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeObjectOverride
protected void writeObjectOverride(java.lang.Object obj) throws java.io.IOException
- Overrides:
writeObjectOverride
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeBoolean
public void writeBoolean(boolean val) throws java.io.IOException
- Specified by:
writeBoolean
in interfacejava.io.DataOutput
- Overrides:
writeBoolean
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeByte
public void writeByte(int val) throws java.io.IOException
- Specified by:
writeByte
in interfacejava.io.DataOutput
- Overrides:
writeByte
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeInt
public void writeInt(int val) throws java.io.IOException
- Specified by:
writeInt
in interfacejava.io.DataOutput
- Overrides:
writeInt
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeChar
public void writeChar(int val) throws java.io.IOException
- Specified by:
writeChar
in interfacejava.io.DataOutput
- Overrides:
writeChar
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeDouble
public void writeDouble(double val) throws java.io.IOException
- Specified by:
writeDouble
in interfacejava.io.DataOutput
- Overrides:
writeDouble
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeFloat
public void writeFloat(float val) throws java.io.IOException
- Specified by:
writeFloat
in interfacejava.io.DataOutput
- Overrides:
writeFloat
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeLong
public void writeLong(long val) throws java.io.IOException
- Specified by:
writeLong
in interfacejava.io.DataOutput
- Overrides:
writeLong
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeShort
public void writeShort(int val) throws java.io.IOException
- Specified by:
writeShort
in interfacejava.io.DataOutput
- Overrides:
writeShort
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] buf) throws java.io.IOException
- Specified by:
write
in interfacejava.io.DataOutput
- Specified by:
write
in interfacejava.io.ObjectOutput
- Overrides:
write
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeChars
public void writeChars(java.lang.String str) throws java.io.IOException
- Specified by:
writeChars
in interfacejava.io.DataOutput
- Overrides:
writeChars
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
writeUTF
public void writeUTF(java.lang.String str) throws java.io.IOException
- Specified by:
writeUTF
in interfacejava.io.DataOutput
- Overrides:
writeUTF
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
write
public void write(int val) throws java.io.IOException
- Specified by:
write
in interfacejava.io.DataOutput
- Specified by:
write
in interfacejava.io.ObjectOutput
- Overrides:
write
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] buf, int off, int len) throws java.io.IOException
- Specified by:
write
in interfacejava.io.DataOutput
- Specified by:
write
in interfacejava.io.ObjectOutput
- Overrides:
write
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException
- Specified by:
flush
in interfacejava.io.Flushable
- Specified by:
flush
in interfacejava.io.ObjectOutput
- Overrides:
flush
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfacejava.io.ObjectOutput
- Overrides:
close
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
putFields
public java.io.ObjectOutputStream.PutField putFields()
- Overrides:
putFields
in classjava.io.ObjectOutputStream
-
writeFields
public void writeFields() throws java.io.IOException
- Overrides:
writeFields
in classjava.io.ObjectOutputStream
- Throws:
java.io.IOException
-
reset
public void reset()
Unsupported methods- Overrides:
reset
in classjava.io.ObjectOutputStream
-
useProtocolVersion
public void useProtocolVersion(int version)
- Overrides:
useProtocolVersion
in classjava.io.ObjectOutputStream
-
writeBytes
public void writeBytes(java.lang.String str)
- Specified by:
writeBytes
in interfacejava.io.DataOutput
- Overrides:
writeBytes
in classjava.io.ObjectOutputStream
-
writeUnshared
public void writeUnshared(java.lang.Object obj)
- Overrides:
writeUnshared
in classjava.io.ObjectOutputStream
-
-