edu.umd.cs.jazz.io
Class ZObjectOutputStream
java.lang.Object
|
+--java.io.OutputStream
|
+--edu.umd.cs.jazz.io.ZObjectOutputStream
- All Implemented Interfaces:
- java.io.Serializable
- public class ZObjectOutputStream
- extends java.io.OutputStream
- implements java.io.Serializable
ZObjectOutputStream writes Jazz objects that are ZSerializable.
The process of writing out Jazz scenes is to make an instance of this
class, and then call writeObject() on a ZSerializable object.
Every object that gets written out must implement two methods that
control the writing process. The first method, writeObjectRecurse()
specifies (recursively) the objects related to this one that should be
written out by calling addObject() for those objects. The second method,
writeObject gets called on each object so it can specify how to write
out its state.
An object can specify a replacment object that should be written out
instead of itself by declaring the method:
ZSerializable writeReplace().
If the replacement object is null, then the original object will
note be written out at all. If it specifies a ZSerializable object,
then that object will be written out instead, and any references to
the original object will be replaced with references to the replacement
object.
Note that there is a potential for
conflict where an object can define that it should not be written out,
and yet a second object can reference it in its state. Because no
object can be allowed to reference an object that wasn't written out,
this io code will skip any such references, and instead insert a comment
into the file specifying that the reference was skipped.
ZObjectOutputStream knows how to write out the following types:
- short
- integer
- long
- float
- double
- boolean
- byte
- String
- ZSerializable
- Rectangle2D
- AffineTransform
- Color
- Font
- Image
Warning: Serialized and ZSerialized objects of this class will not be
compatible with future Jazz releases. The current serialization support is
appropriate for short term storage or RMI between applications running the
same version of Jazz. A future release of Jazz will provide support for long
term persistence.
- Author:
- Ben Bederson, Britt McAlister
- See Also:
- Serialized Form
Method Summary |
void |
addObject(ZSerializable obj)
Add this ZSerializable object to the list of objects to be written out. |
void |
flush()
|
static boolean |
isSavable(java.lang.Object obj)
Determine if the specified object is savable. |
boolean |
isSaved(java.lang.Object obj)
|
void |
write(int b)
|
void |
writeObject(ZSerializable obj)
|
void |
writeState(java.lang.Object obj)
|
void |
writeState(java.lang.String type,
java.lang.String name,
boolean b)
|
void |
writeState(java.lang.String type,
java.lang.String name,
byte b)
|
void |
writeState(java.lang.String type,
java.lang.String name,
double d)
|
void |
writeState(java.lang.String type,
java.lang.String name,
float f)
|
void |
writeState(java.lang.String type,
java.lang.String name,
int i)
|
void |
writeState(java.lang.String type,
java.lang.String name,
java.util.List value)
|
void |
writeState(java.lang.String type,
java.lang.String name,
long l)
|
void |
writeState(java.lang.String type,
java.lang.String name,
java.lang.Object obj)
|
void |
writeState(java.lang.String type,
java.lang.String name,
short s)
|
Methods inherited from class java.io.OutputStream |
close, write, write |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
NULL_ARGS
protected static final java.lang.Class[] NULL_ARGS
dos
protected java.io.DataOutputStream dos
id
protected int id
objs
protected java.util.Hashtable objs
unsavedObjs
protected java.util.Hashtable unsavedObjs
replacedObjs
protected java.util.Hashtable replacedObjs
writingState
protected boolean writingState
stateWritten
protected boolean stateWritten
ZObjectOutputStream
public ZObjectOutputStream(java.io.OutputStream out)
isSavable
public static boolean isSavable(java.lang.Object obj)
- Determine if the specified object is savable.
- Parameters:
obj
- Object to check- Returns:
- true if object is savable.
writeObject
public void writeObject(ZSerializable obj)
throws java.io.IOException
addObject
public void addObject(ZSerializable obj)
throws java.io.IOException
- Add this ZSerializable object to the list of objects to be written out.
Each object will only be written out once - so calling this method
multiple times on the same object will have no effect.
If the object declares the ZSerializable writeReplace() method, then
the specified object will be written out instead of the one passed in.
If writeReplace() is specified, and returns null, then this object
is not written out at all.
- Parameters:
obj
- The object to be written out
writeState
public void writeState(java.lang.String type,
java.lang.String name,
java.util.List value)
throws java.io.IOException
writeState
public void writeState(java.lang.String type,
java.lang.String name,
short s)
throws java.io.IOException
writeState
public void writeState(java.lang.String type,
java.lang.String name,
int i)
throws java.io.IOException
writeState
public void writeState(java.lang.String type,
java.lang.String name,
long l)
throws java.io.IOException
writeState
public void writeState(java.lang.String type,
java.lang.String name,
float f)
throws java.io.IOException
writeState
public void writeState(java.lang.String type,
java.lang.String name,
double d)
throws java.io.IOException
writeState
public void writeState(java.lang.String type,
java.lang.String name,
boolean b)
throws java.io.IOException
writeState
public void writeState(java.lang.String type,
java.lang.String name,
byte b)
throws java.io.IOException
writeState
public void writeState(java.lang.String type,
java.lang.String name,
java.lang.Object obj)
throws java.io.IOException
isSaved
public boolean isSaved(java.lang.Object obj)
writeState
public void writeState(java.lang.Object obj)
throws java.io.IOException
write
public void write(int b)
- Overrides:
write
in class java.io.OutputStream
flush
public void flush()
- Overrides:
flush
in class java.io.OutputStream
Copyright © 2001 by University of Maryland, College Park, MD 20742, USA All rights reserved.