JSX
Class ObjectWriter

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.ObjectOutputStream
          extended by JSX.ObjectWriter
All Implemented Interfaces:
java.io.Closeable, java.io.DataOutput, java.io.Flushable, java.io.ObjectOutput, java.io.ObjectStreamConstants

public class ObjectWriter
extends java.io.ObjectOutputStream

ObjectWriter can be used in place of ObjectOutputStream, to serialize object graphs to XML, instead of the binary format. It implements all the core features of ObjectOutputStream. ObjectWriter does not require classes to implement java.io.Serialization, nor is serialVersionUID needed for class evolution.

See Also:
Object Serialization Specification, Section 2, Object Output Classes

Nested Class Summary
 class ObjectWriter.PutFieldImpl
           
 
Nested classes/interfaces inherited from class java.io.ObjectOutputStream
java.io.ObjectOutputStream.PutField
 
Field Summary
 
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, 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
ObjectWriter()
          Writes to System.out (convenient for testing)
ObjectWriter(DataWriterI dataWriter)
          For output other than XML (or to different XML formats)
ObjectWriter(java.io.OutputStream outputStream)
           
 
Method Summary
 void add(java.lang.Class targetClass, java.lang.Class mementoClass)
           
protected  void annotateClass(java.lang.Class cl)
          Not implemented
 void close()
           
 void defaultWriteObject()
           
 void disableExternalization()
           
protected  void drain()
          Not implemented
protected  boolean enableReplaceObject(boolean enable)
          Not implemented
 void flush()
           
 Alias getHash()
           
static void main(java.lang.String[] args)
          USAGE: java JSX.ObjectWriter className (defaults to JSX.Person)
 java.io.ObjectOutputStream.PutField putFields()
           
protected  java.lang.Object replaceObject(java.lang.Object obj)
          now implemented
 void reset()
           
 void setAutoClose(boolean autoClose)
          (extension) For more than one writeObject() call in the one ObjectWriter, forming a single XML document.
 void setEmbedded(boolean embedded)
          (extension) For embedding within a SOAP envelope, or any other enclosing XML.
 void setPrettyPrint(boolean prettyPrint)
          (extension) Set to false to turn off indentation and newlines
 void useProtocolVersion(int version)
          Not implemented
 void write(byte[] b)
           
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 void writeBoolean(boolean v)
           
 void writeByte(int v)
           
 void writeBytes(java.lang.String s)
           
 void writeChar(int v)
           
 void writeChars(java.lang.String s)
           
protected  void writeClassDescriptor(java.io.ObjectStreamClass desc)
          Not implemented
 void writeDouble(double v)
           
 void writeFields()
           
 void writeFloat(float v)
           
 void writeInt(int v)
           
 void writeLong(long v)
           
 void writeObjectOverride(java.lang.Object object)
           
 void writeShort(int v)
           
protected  void writeStreamHeader()
          Not implemented
 void writeUnshared(java.lang.Object obj)
           
 void writeUTF(java.lang.String str)
           
 
Methods inherited from class java.io.ObjectOutputStream
annotateProxyClass, writeObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObjectWriter

public ObjectWriter()
             throws java.io.IOException
Writes to System.out (convenient for testing)

Throws:
java.io.IOException

ObjectWriter

public ObjectWriter(java.io.OutputStream outputStream)
             throws java.io.IOException
Throws:
java.io.IOException

ObjectWriter

public ObjectWriter(DataWriterI dataWriter)
             throws java.io.IOException
For output other than XML (or to different XML formats)

Throws:
java.io.IOException
Method Detail

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
USAGE: java JSX.ObjectWriter className (defaults to JSX.Person)

Throws:
java.lang.Exception

setPrettyPrint

public void setPrettyPrint(boolean prettyPrint)
(extension) Set to false to turn off indentation and newlines


flush

public void flush()
           throws java.io.IOException
Specified by:
flush in interface java.io.Flushable
Specified by:
flush in interface java.io.ObjectOutput
Overrides:
flush in class java.io.ObjectOutputStream
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Specified by:
close in interface java.io.ObjectOutput
Overrides:
close in class java.io.ObjectOutputStream
Throws:
java.io.IOException

reset

public void reset()
           throws java.io.IOException
Overrides:
reset in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeBoolean

public void writeBoolean(boolean v)
                  throws java.io.IOException
Specified by:
writeBoolean in interface java.io.DataOutput
Overrides:
writeBoolean in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeByte

public void writeByte(int v)
               throws java.io.IOException
Specified by:
writeByte in interface java.io.DataOutput
Overrides:
writeByte in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeShort

public void writeShort(int v)
                throws java.io.IOException
Specified by:
writeShort in interface java.io.DataOutput
Overrides:
writeShort in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeInt

public void writeInt(int v)
              throws java.io.IOException
Specified by:
writeInt in interface java.io.DataOutput
Overrides:
writeInt in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeLong

public void writeLong(long v)
               throws java.io.IOException
Specified by:
writeLong in interface java.io.DataOutput
Overrides:
writeLong in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeFloat

public void writeFloat(float v)
                throws java.io.IOException
Specified by:
writeFloat in interface java.io.DataOutput
Overrides:
writeFloat in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeDouble

public void writeDouble(double v)
                 throws java.io.IOException
Specified by:
writeDouble in interface java.io.DataOutput
Overrides:
writeDouble in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeChar

public void writeChar(int v)
               throws java.io.IOException
Specified by:
writeChar in interface java.io.DataOutput
Overrides:
writeChar in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeUTF

public void writeUTF(java.lang.String str)
              throws java.io.IOException
Specified by:
writeUTF in interface java.io.DataOutput
Overrides:
writeUTF in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeBytes

public void writeBytes(java.lang.String s)
                throws java.io.IOException
Specified by:
writeBytes in interface java.io.DataOutput
Overrides:
writeBytes in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeChars

public void writeChars(java.lang.String s)
                throws java.io.IOException
Specified by:
writeChars in interface java.io.DataOutput
Overrides:
writeChars in class java.io.ObjectOutputStream
Throws:
java.io.IOException

write

public void write(int b)
           throws java.io.IOException
Specified by:
write in interface java.io.DataOutput
Specified by:
write in interface java.io.ObjectOutput
Overrides:
write in class java.io.ObjectOutputStream
Throws:
java.io.IOException

write

public void write(byte[] b)
           throws java.io.IOException
Specified by:
write in interface java.io.DataOutput
Specified by:
write in interface java.io.ObjectOutput
Overrides:
write in class java.io.ObjectOutputStream
Throws:
java.io.IOException

write

public void write(byte[] b,
                  int off,
                  int len)
           throws java.io.IOException
Specified by:
write in interface java.io.DataOutput
Specified by:
write in interface java.io.ObjectOutput
Overrides:
write in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeUnshared

public void writeUnshared(java.lang.Object obj)
                   throws java.io.IOException
Overrides:
writeUnshared in class java.io.ObjectOutputStream
Throws:
java.io.IOException

replaceObject

protected java.lang.Object replaceObject(java.lang.Object obj)
                                  throws java.io.IOException
now implemented

Overrides:
replaceObject in class java.io.ObjectOutputStream
Throws:
java.io.IOException

enableReplaceObject

protected boolean enableReplaceObject(boolean enable)
                               throws java.lang.SecurityException
Not implemented

Overrides:
enableReplaceObject in class java.io.ObjectOutputStream
Throws:
java.lang.SecurityException

annotateClass

protected void annotateClass(java.lang.Class cl)
                      throws java.io.IOException
Not implemented

Overrides:
annotateClass in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeClassDescriptor

protected void writeClassDescriptor(java.io.ObjectStreamClass desc)
                             throws java.io.IOException
Not implemented

Overrides:
writeClassDescriptor in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeStreamHeader

protected void writeStreamHeader()
                          throws java.io.IOException
Not implemented

Overrides:
writeStreamHeader in class java.io.ObjectOutputStream
Throws:
java.io.IOException

drain

protected void drain()
              throws java.io.IOException
Not implemented

Overrides:
drain in class java.io.ObjectOutputStream
Throws:
java.io.IOException

useProtocolVersion

public void useProtocolVersion(int version)
                        throws java.io.IOException
Not implemented

Overrides:
useProtocolVersion in class java.io.ObjectOutputStream
Throws:
java.io.IOException

setAutoClose

public void setAutoClose(boolean autoClose)
(extension) For more than one writeObject() call in the one ObjectWriter, forming a single XML document. by default, JSX only allows one writeObject() call, and it automatically closes the XML document with a </jsx> close tag. If you need more than one writeObject() call in the one document (eg for streaming over a socket), then use setAutoClose(false) to switch off this feature. Note that you will need to explicitly call close() yourself when you have made the last writeObject(), and you need a close tag, which is necessary for a "well-formed" XML document


setEmbedded

public void setEmbedded(boolean embedded)
(extension) For embedding within a SOAP envelope, or any other enclosing XML. It causes the XML declaration ( <?xml ... ?> ) to be omitted.


writeObjectOverride

public void writeObjectOverride(java.lang.Object object)
                         throws java.io.IOException
Overrides:
writeObjectOverride in class java.io.ObjectOutputStream
Throws:
java.io.IOException

getHash

public Alias getHash()

add

public void add(java.lang.Class targetClass,
                java.lang.Class mementoClass)

disableExternalization

public void disableExternalization()

defaultWriteObject

public void defaultWriteObject()
                        throws java.io.IOException
Overrides:
defaultWriteObject in class java.io.ObjectOutputStream
Throws:
java.io.IOException

putFields

public java.io.ObjectOutputStream.PutField putFields()
                                              throws java.io.IOException
Overrides:
putFields in class java.io.ObjectOutputStream
Throws:
java.io.IOException

writeFields

public void writeFields()
                 throws java.io.IOException
Overrides:
writeFields in class java.io.ObjectOutputStream
Throws:
java.io.IOException