package util;

import java.io.Serializable;

/**
  * An Object to mark positions in ObjectStreams.
  *
  * <p>You can use a StreamMarker to mark the end of a flow of objects of
  * unknown class and unknown size. On reading you will then know exactly up to
  * where you must read.<BR>
  * E.g. to store some objects out of an enumeration and reread them into a
  * vector you could use code similar to the following:
  * <HR><PRE>
  *  ...
  *  Enumeration e = q.elements();
  *  ObjectOutputStream o = new ObjectOutputStream (fileOutputStream);
  *  while (e.hasMoreElements())
  *  &nbsp;&nbsp;o.writeObject (e.nextElement());
  *
  *  // Set the Marker:
  *  o.writeObject (new StreamMarker());
  *
  *  ...
  *
  *  Vector v = new Vector();
  *  ObjectInputStream oi = new ObjectInputStream (fileInputStream);
  *  Object ob = oi.readObject();
  *  while (!(ob instanceof StreamMarker)) {
  *  &nbsp;&nbsp;v.addElement (ob);
  *  &nbsp;&nbsp;ob = oi.readObject();
  *  }
  *  ...
  * </PRE></p>
  *
  * @author Steffen Zschaler
  * @version 1.0
  * @since v1.0
  */
public final class StreamMarker extends Object implements Serializable {

  /**
    * Create a new StreamMarker.
    */
  public StreamMarker() {
    super();
  }

  /**
    * Give a string representation of this object.
    *
    * @override Never
    */
  public final String toString() {
    return "[StreamMarker used to mark positions in Streams.]";
  }
}