Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## rice.p2p.util
Class XMLObjectOutputStream

    java.lang.Object
      java.io.OutputStream
          java.io.ObjectOutputStream
              rice.p2p.util.XMLObjectOutputStream

All Implemented Interfaces:
  java.io.Closeable, java.io.DataOutput, java.io.Flushable, java.io.ObjectOutput, java.io.ObjectStreamConstants

    public class XMLObjectOutputStream

extends java.io.ObjectOutputStream

XMLObjectOutputStream is an extension of ObjectOutputStream which provides for serialization for arbitrary Java objects, in the same manner as the ObjectOutputStream class. This class supports all of the features of the ObjectOutputStream, including serialization support for any Java object graph implementing the Serializable interface, maintenance of references in the object graph, support for Externalizable classes, custom serialization via the writeObject() method, alternate field writing mechanisms via the putFields() and writeFields() methods, support for the writeUnshared() method, custom serializable field specification via the serialPersistentFields field, and dynamic object replacement via the writeReplace() method. The format of the XML data written does conform to the JSX XML Schema, available online at http://www.jsx.org/jsx.xsd. This class is designed to be able to write objects which can then be deserialized using JSX, however, this has not been fully tested and bugs may be encountered.

Version:
  $Id: XMLObjectOutputStream.java 3613 2007-02-15 14:45:14Z jstewart $
Author:
  Alan Mislove

Nested Class Summary
`class` | `XMLObjectOutputStream.PutField` This class is an implementation of PutField which is compatible with the XMLObjectOutputStream.

Field Summary
`protected java.util.Stack` | `currentClasses` The stack of classes which are currently being written to the stream
`protected java.util.Stack` | `currentObjects` The stack of objects which are currently being written to the stream
`protected java.util.Stack` | `currentPutFields` The stack of putFields which are currently being written to the stream
`protected int` | `next` A counter used to generate unique references
`protected static SoftHashMap` | `PERSISTENT_FIELDS` A cache of the persistentFields, mapping class->Field[]
`protected java.util.Hashtable` | `references` The collection of references stored in the stream so far, maps Integer(hash) -> reference name.
`protected static SoftHashMap` | `WRITE_OBJECTS` A cache of the writeObject() methods, mapping class->writeObject()
`protected static SoftHashMap` | `WRITE_REPLACES` A cache of the writeReplace() methods, mapping class->writeReplace()
`protected XMLWriter` | `writer` The underlying XML writing engine

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
`XMLObjectOutputStream(java.io.OutputStream out)` Constructor which writes data from the given output stream in order serialize objects.

Method Summary
`protected java.lang.String` | `assignReference()` Method which assigns a new unique reference.
`void` | `close()` Method which closes the underlying output stream for writing.
`void` | `defaultWriteObject()` Method which can be called by objects if they have a writeObject() method.
`void` | `flush()` Method which flushes all buffered data to the output stream.
`protected java.lang.Class` | `getComponentType(java.lang.Class array)` Method which returns the component type of the given array class.
`protected int` | `getDimension(java.lang.Class array)` Method which returns the dimension of the given array class.
`protected java.lang.reflect.Field[]` | `getPersistentFields(java.lang.Class cl)` Method which returns the serializable fields of the provided class.
`protected java.lang.String` | `getReference(java.lang.Object o)` Method which returns a previously stored reference.
`protected java.lang.reflect.Field[]` | `getSerialPersistentFields(java.lang.Class c)` Method which returns the serializablePersistenFields field of the provided class.
`protected java.lang.Class[]` | `getSuperClasses(java.lang.Class c)` Method which returns an array of classes representing the class hierarchy of the provided class, exempting the Object class.
`protected int` | `hash(java.lang.Object o)` Method which determines a unique hash value for each object.
`java.io.ObjectOutputStream.PutField` | `putFields()` Method which can be called by objects if they have a writeObject() method.
`protected void` | `putReference(java.lang.Object o, java.lang.String reference)` Method which adds a reference in the hashtable of references.
`void` | `reset()` Method which resets the output stream, which removes the binding of all previously stored references.
`void` | `write(byte b)` Method which writes a byte to the underlying output stream.
`void` | `write(byte[] b)` Method which writes a array of bytes to the underlying output stream.
`void` | `write(byte[] b, int offset, int length)` Method which writes a array of bytes to the underlying output stream.
`protected void` | `writeArray(java.lang.Object o, java.lang.String field, boolean shared)` Method which writes an array to the stream.
`void` | `writeBoolean(boolean b)` Method which writes an boolean to the stream.
`void` | `writeByte(byte b)` Method which writes an byte to the stream.
`void` | `writeByte(int i)` Method which writes an byte to the stream.
`void` | `writeBytes(java.lang.String s)` Method which writes a String as a sequence of chars to the stream.
`void` | `writeChar(char c)` Method which writes an char to the stream.
`void` | `writeChar(int i)` Method which writes an char to the stream.
`void` | `writeChars(java.lang.String s)` Method which writes a String as a sequence of chars to the stream.
`protected void` | `writeClass(java.lang.Object o, java.lang.Class c)` Method which writes the information for one class for a given object to the stream.
`void` | `writeDouble(double d)` Method which writes an double to the stream.
`void` | `writeFields()` Method which writes the current state of the PutField object to the stream as this object's fields.
`protected void` | `writeFields(java.lang.Object o, java.lang.Class c)` Method which initiates the default field writing mechanism for the given object's class.
`void` | `writeFloat(float f)` Method which writes an float to the stream.
`void` | `writeInt(int i)` Method which writes an int to the stream.
`void` | `writeLong(long l)` Method which writes an long to the stream.
`protected void` | `writeNull(java.lang.String field)` Method which writes a null item to the stream as the provided field.
`protected void` | `writeObject(java.lang.Object o, java.lang.String field)` Method which writes an object to the stream as the given field name If the next object represents a reference or null, then the appropriate helper is called.
`void` | `writeObjectOverride(java.lang.Object o)` Method which is called by ObjectOutputStream.writeObject(), and writes the given object to the stream.
`protected void` | `writeObjectUnshared(java.lang.Object o, java.lang.String field, boolean shared)` Method which writes an object to the stream.
`protected void` | `writeOrdinaryObject(java.lang.Object o, java.lang.String field, boolean shared)` Method which writes an ordinary object to the stream (not a String or Array).
`protected void` | `writePrimitive(boolean b, java.lang.String field)` Method which writes a boolean to the stream, as the given field name.
`protected void` | `writePrimitive(byte b, java.lang.String field)` Method which writes a byte to the stream, as the given field name.
`protected void` | `writePrimitive(char c, java.lang.String field)` Method which writes a char to the stream, as the given field name.
`protected void` | `writePrimitive(double d, java.lang.String field)` Method which writes a double to the stream, as the given field name.
`protected void` | `writePrimitive(float f, java.lang.String field)` Method which writes a float to the stream, as the given field name.
`protected void` | `writePrimitive(int i, java.lang.String field)` Method which writes a int to the stream, as the given field name.
`protected void` | `writePrimitive(long l, java.lang.String field)` Method which writes a long to the stream, as the given field name.
`protected void` | `writePrimitive(short s, java.lang.String field)` Method which writes a short to the stream, as the given field name.
`protected void` | `writePrimitiveField(java.lang.Object o, java.lang.reflect.Field f)` Method which writes a primitive field to the stream.
`protected void` | `writePutFields(XMLObjectOutputStream.PutField p)` Method which writes out the data from the given PutField class as the data for the given class.
`protected void` | `writeReference(java.lang.Object o, java.lang.String field)` Method which writes a reference to the stream, determined from the references table.
`protected void` | `writeReset()` Method which writes a reset command to the stream.
`void` | `writeShort(int i)` Method which writes an short to the stream.
`void` | `writeShort(short s)` Method which writes an short to the stream.
`protected void` | `writeStreamHeader()` Method which writes the XML header to the stream.
`protected void` | `writeString(java.lang.String s, java.lang.String field, boolean shared)` Method which writes a string to the stream as the provided field.
`void` | `writeUnshared(java.lang.Object o)` Method which writes the given object to the stream and does not record a reference to the object.
`void` | `writeUTF(java.lang.String s)` Method which writes a UTF-encoded String to the stream.

Methods inherited from class java.io.ObjectOutputStream
`annotateClass, annotateProxyClass, drain, enableReplaceObject, replaceObject, useProtocolVersion, write, writeClassDescriptor, writeObject`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### WRITE_REPLACES

    protected static SoftHashMap WRITE_REPLACES

  A cache of the writeReplace() methods, mapping class->writeReplace()

### WRITE_OBJECTS

    protected static SoftHashMap WRITE_OBJECTS

  A cache of the writeObject() methods, mapping class->writeObject()

### PERSISTENT_FIELDS

    protected static SoftHashMap PERSISTENT_FIELDS

  A cache of the persistentFields, mapping class->Field[]

### writer

    protected XMLWriter writer

  The underlying XML writing engine

### references

    protected java.util.Hashtable references

  The collection of references stored in the stream so far, maps Integer(hash) -> reference name.

### next

    protected int next

  A counter used to generate unique references

### currentObjects

    protected java.util.Stack currentObjects

  The stack of objects which are currently being written to the stream

### currentClasses

    protected java.util.Stack currentClasses

  The stack of classes which are currently being written to the stream

### currentPutFields

    protected java.util.Stack currentPutFields

  The stack of putFields which are currently being written to the stream

Constructor Detail

### XMLObjectOutputStream

    public XMLObjectOutputStream(java.io.OutputStream out)
                          throws java.io.IOException

  Constructor which writes data from the given output stream in order serialize objects. This constructor also writes the header to the stream, and throws an IOException if an error occurs while writing the header.

  Parameters:
    `out` - The output stream to write data to
  Throws:
    `java.io.IOException` - If the an error occurs

Method Detail

### writeStreamHeader

    protected void writeStreamHeader()
                              throws java.io.IOException

  Method which writes the XML header to the stream. Usually, this is the tag, but it may include processing instructions.

  Overrides:
    `writeStreamHeader` in class `java.io.ObjectOutputStream`
  Throws:
    `java.io.IOException` - If an error occurs

### flush

    public void flush()
               throws java.io.IOException

  Method which flushes all buffered data to the output stream.

  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` - if an error occurs

### close

    public void close()
               throws java.io.IOException

  Method which closes the underlying output stream for writing. Any subsequent writes will throw an 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

  Method which resets the output stream, which removes the binding of all previously stored references. If the same object is written before and after a reset(), it will be written twice to the stream.

  Overrides:
    `reset` in class `java.io.ObjectOutputStream`
  Throws:
    `java.io.IOException` - If an error occurs, or an object is currently being written

### write

    public void write(byte b)
               throws java.io.IOException

  Method which writes a byte to the underlying output stream. Simply calls writeByte(b)

  Throws:
    `java.io.IOException` - If an error occurs

### write

    public void write(byte[] b)
               throws java.io.IOException

  Method which writes a array of bytes to the underlying output stream. Simply calls writeByte(b[x]) on each of the array elements.

  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` - If an error occurs

### write

    public void write(byte[] b,
                      int offset,
                      int length)
               throws java.io.IOException

  Method which writes a array of bytes to the underlying output stream. Simply calls writeByte(b[x]) on each of the array elements.

  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` - If an error occurs

### writeInt

    public void writeInt(int i)
                  throws java.io.IOException

  Method which writes an int to the stream.

  Specified by:
    `writeInt` in interface `java.io.DataOutput`
  Overrides:
    `writeInt` in class `java.io.ObjectOutputStream`
  Parameters:
    `i` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeBoolean

    public void writeBoolean(boolean b)
                      throws java.io.IOException

  Method which writes an boolean to the stream.

  Specified by:
    `writeBoolean` in interface `java.io.DataOutput`
  Overrides:
    `writeBoolean` in class `java.io.ObjectOutputStream`
  Parameters:
    `b` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeByte

    public void writeByte(int i)
                   throws java.io.IOException

  Method which writes an byte to the stream.

  Specified by:
    `writeByte` in interface `java.io.DataOutput`
  Overrides:
    `writeByte` in class `java.io.ObjectOutputStream`
  Parameters:
    `i` - The value to write to the stream, casted to a byte
  Throws:
    `java.io.IOException` - If an error occurs

### writeByte

    public void writeByte(byte b)
                   throws java.io.IOException

  Method which writes an byte to the stream.

  Parameters:
    `b` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeChar

    public void writeChar(int i)
                   throws java.io.IOException

  Method which writes an char to the stream.

  Specified by:
    `writeChar` in interface `java.io.DataOutput`
  Overrides:
    `writeChar` in class `java.io.ObjectOutputStream`
  Parameters:
    `i` - The value to write to the stream, casted to an int
  Throws:
    `java.io.IOException` - If an error occurs

### writeChar

    public void writeChar(char c)
                   throws java.io.IOException

  Method which writes an char to the stream.

  Parameters:
    `c` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeDouble

    public void writeDouble(double d)
                     throws java.io.IOException

  Method which writes an double to the stream.

  Specified by:
    `writeDouble` in interface `java.io.DataOutput`
  Overrides:
    `writeDouble` in class `java.io.ObjectOutputStream`
  Parameters:
    `d` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeFloat

    public void writeFloat(float f)
                    throws java.io.IOException

  Method which writes an float to the stream.

  Specified by:
    `writeFloat` in interface `java.io.DataOutput`
  Overrides:
    `writeFloat` in class `java.io.ObjectOutputStream`
  Parameters:
    `f` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeLong

    public void writeLong(long l)
                   throws java.io.IOException

  Method which writes an long to the stream.

  Specified by:
    `writeLong` in interface `java.io.DataOutput`
  Overrides:
    `writeLong` in class `java.io.ObjectOutputStream`
  Parameters:
    `l` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeShort

    public void writeShort(int i)
                    throws java.io.IOException

  Method which writes an short to the stream.

  Specified by:
    `writeShort` in interface `java.io.DataOutput`
  Overrides:
    `writeShort` in class `java.io.ObjectOutputStream`
  Parameters:
    `i` - The value to write to the stream, casted to a short
  Throws:
    `java.io.IOException` - If an error occurs

### writeShort

    public void writeShort(short s)
                    throws java.io.IOException

  Method which writes an short to the stream.

  Parameters:
    `s` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeUTF

    public void writeUTF(java.lang.String s)
                  throws java.io.IOException

  Method which writes a UTF-encoded String to the stream. This method simply calls writeObject(), as all strings are UTF encoded in XML.

  Specified by:
    `writeUTF` in interface `java.io.DataOutput`
  Overrides:
    `writeUTF` in class `java.io.ObjectOutputStream`
  Throws:
    `java.io.IOException` - If an error occurs

### writeChars

    public void writeChars(java.lang.String s)
                    throws java.io.IOException

  Method which writes a String as a sequence of chars to the stream. This method is equivalent to calling s.toCharArray() and calling writeChar() on each element. Using this method is *NOT* recommended, as it is an increadible waste of space.

  Specified by:
    `writeChars` in interface `java.io.DataOutput`
  Overrides:
    `writeChars` in class `java.io.ObjectOutputStream`
  Throws:
    `java.io.IOException` - If an error occurs

### writeBytes

    public void writeBytes(java.lang.String s)
                    throws java.io.IOException

  Method which writes a String as a sequence of chars to the stream. This method is equivalent to calling s.toCharArray() and calling writeChar() on each element. Using this method is *NOT* recommended, as it is an increadible waste of space.

  Specified by:
    `writeBytes` in interface `java.io.DataOutput`
  Overrides:
    `writeBytes` in class `java.io.ObjectOutputStream`
  Throws:
    `java.io.IOException` - If an error occurs

### writeObjectOverride

    public void writeObjectOverride(java.lang.Object o)
                             throws java.io.IOException

  Method which is called by ObjectOutputStream.writeObject(), and writes the given object to the stream. If the object (or any of it's descendents) has a writeReplace() method, that object is written instead of the original object.

  Overrides:
    `writeObjectOverride` in class `java.io.ObjectOutputStream`
  Parameters:
    `o` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writeUnshared

    public void writeUnshared(java.lang.Object o)
                       throws java.io.IOException

  Method which writes the given object to the stream and does not record a reference to the object. This guarantees that in future writes of this object will not reference this copy of the object.

  Overrides:
    `writeUnshared` in class `java.io.ObjectOutputStream`
  Parameters:
    `o` - The value to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### defaultWriteObject

    public void defaultWriteObject()
                            throws java.io.IOException

  Method which can be called by objects if they have a writeObject() method. This method initiates the default field serialization mechanism, and writes all of the object's fields to the stream. If this method is called, the putFields() method CANNOT be called by the same object. However, one of these two methods MUST be called in the context of a writeObject().

  Overrides:
    `defaultWriteObject` in class `java.io.ObjectOutputStream`
  Throws:
    `java.io.IOException` - If an error occurs
    `java.io.NotActiveException` - If a object is not currently being written

### putFields

    public java.io.ObjectOutputStream.PutField putFields()
                                                  throws java.io.IOException

  Method which can be called by objects if they have a writeObject() method. This method returns an object which the callee can then use to specify exactly which fields and values should be written to the steam, and can specify fields which do not exist as a member of the object. If this method is called, the defaultWriteObject() method CANNOT be called by the same object. However, one of these two methods MUST be called in the context of a writeObject().

  Overrides:
    `putFields` in class `java.io.ObjectOutputStream`
  Returns:
    A PutField, a container for fields to be written
  Throws:
    `java.io.IOException` - If an error occurs
    `java.io.NotActiveException` - If a object is not currently being read

### writeFields

    public void writeFields()
                     throws java.io.IOException

  Method which writes the current state of the PutField object to the stream as this object's fields. If this method is called, the defaultWriteObject() method CANNOT be called by the same object. However, one of these two methods MUST be called in the context of a writeObject().

  Overrides:
    `writeFields` in class `java.io.ObjectOutputStream`
  Throws:
    `java.io.IOException` - If an error occurs
    `java.io.NotActiveException` - If a object is not currently being read

### getPersistentFields

    protected java.lang.reflect.Field[] getPersistentFields(java.lang.Class cl)

  Method which returns the serializable fields of the provided class. If the class has a serialPersistentFields field, then that is used to determine which fields are serializable. Otherwise, all declared non-static and non-transient fields are returned.

  Parameters:
    `c` - The class to return the fields for

### getSerialPersistentFields

    protected java.lang.reflect.Field[] getSerialPersistentFields(java.lang.Class c)

  Method which returns the serializablePersistenFields field of the provided class. If no such field exists, then null is returned.

  Parameters:
    `c` - The class to return the fields for

### getComponentType

    protected java.lang.Class getComponentType(java.lang.Class array)

  Method which returns the component type of the given array class. If the class is not of type array, the class itself is returned

  Returns:
    The component type of the array, or the class itself if not an array

### getDimension

    protected int getDimension(java.lang.Class array)

  Method which returns the dimension of the given array class. This is determines recursively by using the getCompoenetType() method on the class.

  Returns:
    The dimension of the corresponding array class

### getSuperClasses

    protected java.lang.Class[] getSuperClasses(java.lang.Class c)

  Method which returns an array of classes representing the class hierarchy of the provided class, exempting the Object class.

  Parameters:
    `c` - The class to return the heirarchy for
  Returns:
    The heierarchy of the provided class

### hash

    protected int hash(java.lang.Object o)

  Method which determines a unique hash value for each object. This implementation uses the System.identityHashCode() method, which returns the memory address.

  Returns:
    An integer, representing a unqiue hash value

### putReference

    protected void putReference(java.lang.Object o,
                                java.lang.String reference)

  Method which adds a reference in the hashtable of references. Multiple calls to this method will replace prior objects.

  Parameters:
    `o` - The object to reference
    `reference` - The reference name to use

### getReference

    protected java.lang.String getReference(java.lang.Object o)

  Method which returns a previously stored reference. If the reference cannot be found, null is returned.

  Parameters:
    `o` - The object to look up
  Returns:
    The reference name, or null if none is found

### assignReference

    protected java.lang.String assignReference()

  Method which assigns a new unique reference.

  Returns:
    A new unique reference

### writeReset

    protected void writeReset()
                       throws java.io.IOException

  Method which writes a reset command to the stream.

  Throws:
    `java.io.IOException` - If an error occurs

### writeObject

    protected void writeObject(java.lang.Object o,
                               java.lang.String field)
                        throws java.io.IOException

  Method which writes an object to the stream as the given field name If the next object represents a reference or null, then the appropriate helper is called. Otherwise, writeObjectUnshared() is called to process the object.

  Parameters:
    `o` - The object to write to the stream
    `field` - The field name to write the object as
  Throws:
    `java.io.IOException` - If an error occurs
    `java.lang.ClassNotFoundException` - If the class cannot be found

### writeObjectUnshared

    protected void writeObjectUnshared(java.lang.Object o,
                                       java.lang.String field,
                                       boolean shared)
                                throws java.io.IOException

  Method which writes an object to the stream. This method assumes that the type of object which is being read is *sharable*, even if it is not going to be shared. Thus, this method can write objects of type String, Array, or Serializable. This method first calls the object's writeReplace() method, if such a method exists, and if a different object is returned, that object is written instead.

  Parameters:
    `o` - The object to write to the stream
    `field` - The field name to write the object as
    `shared` - Whether or not to record a reference to this object
  Throws:
    `java.io.IOException` - If an error occurs

### writeNull

    protected void writeNull(java.lang.String field)
                      throws java.io.IOException

  Method which writes a null item to the stream as the provided field.

  Parameters:
    `field` - The field name to write the object as
  Throws:
    `java.io.IOException` - If an error occurs

### writeString

    protected void writeString(java.lang.String s,
                               java.lang.String field,
                               boolean shared)
                        throws java.io.IOException

  Method which writes a string to the stream as the provided field.

  Parameters:
    `o` - The object to write to the stream
    `field` - The field name to write the object as
    `shared` - Whether or not to record a reference to this object
  Throws:
    `java.io.IOException` - If an error occurs

### writeArray

    protected void writeArray(java.lang.Object o,
                              java.lang.String field,
                              boolean shared)
                       throws java.io.IOException

  Method which writes an array to the stream. This method writes the array header, and then recursively writes all of the objects in the array to the stream. If a non-serializable object is found, the object is replaced with null.

  Parameters:
    `o` - The object to write to the stream
    `field` - The field name to write the object as
    `shared` - Whether or not to record a reference to this object
  Throws:
    `java.io.IOException` - If an error occurs

### writeReference

    protected void writeReference(java.lang.Object o,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a reference to the stream, determined from the references table. This method throws an IOException if a reference is not found to the provided object.

  Parameters:
    `o` - The object to write to the stream
    `field` - The field name to write the object as
  Throws:
    `java.io.IOException` - If an error occurs

### writeOrdinaryObject

    protected void writeOrdinaryObject(java.lang.Object o,
                                       java.lang.String field,
                                       boolean shared)
                                throws java.io.IOException

  Method which writes an ordinary object to the stream (not a String or Array). This method first writes the class type, and a list of the classes' supertypes. If the object is Externalizable, the writeExternal() method is called and the method returns. Otherwise, each of the superclasses are written, from highest to lowest, using the writeClass() method. If the object is not serializable, a NotSerializableException is thrown.

  Parameters:
    `o` - The object to write to the stream
    `field` - The field name to write the object as
    `shared` - Whether or not to record a reference to this object
  Throws:
    `java.io.IOException` - If an error occurs
    `java.io.NotSerializableException` - If the object is not serializable

### writeClass

    protected void writeClass(java.lang.Object o,
                              java.lang.Class c)
                       throws java.io.IOException

  Method which writes the information for one class for a given object to the stream. This method first writes the class type, and if it defines a writeObject() method, it is called. Otherwise, the fields are written in a default manner. Any extra data not read in the stream is read and ignored.

  Parameters:
    `o` - The object to write to the stream
    `c` - The class of the object to write
  Throws:
    `java.io.IOException` - If an error occurs

### writeFields

    protected void writeFields(java.lang.Object o,
                               java.lang.Class c)
                        throws java.io.IOException

  Method which initiates the default field writing mechanism for the given object's class. This method only writes the non-static and non-transient fields to the stream - all others are ignored. It reads all of the fields using the writeField() method.

  Parameters:
    `o` - The object to write to the stream
    `c` - The class of the object to write
  Throws:
    `java.io.IOException` - If an error occurs

### writePutFields

    protected void writePutFields(XMLObjectOutputStream.PutField p)
                           throws java.io.IOException

  Method which writes out the data from the given PutField class as the data for the given class. Each item in the PutField is written as the type it was inserted as. Thus, fields can be written which do not actually exist in the class.

  Parameters:
    `p` - The fields to write to the stream
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitiveField

    protected void writePrimitiveField(java.lang.Object o,
                                       java.lang.reflect.Field f)
                                throws java.io.IOException

  Method which writes a primitive field to the stream. This method determiens the type of field that needs to be written, and calls f.getX(o), wiritng it to the stream.

  Parameters:
    `o` - The object get the primitive from
    `f` - The field representing the primitive about to be written
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitive

    protected void writePrimitive(int i,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a int to the stream, as the given field name.

  Parameters:
    `i` - The value to write to the stream
    `field` - The field name to use
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitive

    protected void writePrimitive(boolean b,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a boolean to the stream, as the given field name.

  Parameters:
    `b` - The value to write to the stream
    `field` - The field name to use
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitive

    protected void writePrimitive(byte b,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a byte to the stream, as the given field name.

  Parameters:
    `b` - The value to write to the stream
    `field` - The field name to use
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitive

    protected void writePrimitive(char c,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a char to the stream, as the given field name.

  Parameters:
    `c` - The value to write to the stream
    `field` - The field name to use
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitive

    protected void writePrimitive(double d,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a double to the stream, as the given field name.

  Parameters:
    `d` - The value to write to the stream
    `field` - The field name to use
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitive

    protected void writePrimitive(float f,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a float to the stream, as the given field name.

  Parameters:
    `f` - The value to write to the stream
    `field` - The field name to use
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitive

    protected void writePrimitive(long l,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a long to the stream, as the given field name.

  Parameters:
    `l` - The value to write to the stream
    `field` - The field name to use
  Throws:
    `java.io.IOException` - If an error occurs

### writePrimitive

    protected void writePrimitive(short s,
                                  java.lang.String field)
                           throws java.io.IOException

  Method which writes a short to the stream, as the given field name.

  Parameters:
    `s` - The value to write to the stream
    `field` - The field name to use
  Throws:
    `java.io.IOException` - If an error occurs

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2005 - Rice Pastry.