001 package util;
002
003 import java.io.Serializable;
004
005 /**
006 * An Object to mark positions in ObjectStreams.
007 *
008 * <p>You can use a StreamMarker to mark the end of a flow of objects of
009 * unknown class and unknown size. On reading you will then know exactly up to
010 * where you must read.<BR>
011 * E.g. to store some objects out of an enumeration and reread them into a
012 * vector you could use code similar to the following:
013 * <HR><PRE>
014 * ...
015 * Enumeration e = q.elements();
016 * ObjectOutputStream o = new ObjectOutputStream (fileOutputStream);
017 * while (e.hasMoreElements())
018 * o.writeObject (e.nextElement());
019 *
020 * // Set the Marker:
021 * o.writeObject (new StreamMarker());
022 *
023 * ...
024 *
025 * Vector v = new Vector();
026 * ObjectInputStream oi = new ObjectInputStream (fileInputStream);
027 * Object ob = oi.readObject();
028 * while (!(ob instanceof StreamMarker)) {
029 * v.addElement (ob);
030 * ob = oi.readObject();
031 * }
032 * ...
033 * </PRE></p>
034 *
035 * @author Steffen Zschaler
036 * @version 1.0
037 * @since v1.0
038 */
039 public final class StreamMarker extends Object implements Serializable {
040
041 /**
042 * ID for serialization.
043 */
044 private static final long serialVersionUID = -8778730715626619060L;
045
046 /**
047 * Create a new StreamMarker.
048 */
049 public StreamMarker() {
050 super();
051 }
052
053 /**
054 * Give a string representation of this object.
055 *
056 * @override Never
057 */
058 public final String toString() {
059 return "[StreamMarker used to mark positions in Streams.]";
060 }
061 }