Used instead of an ObjectOutputStream, which it extends, to write a compact object stream. For writing objects to a database normally {@link SerialFormat} or one of the serial binding classes is used. {@link SerialOutput} is used when an {@link ObjectOutputStream} is needed alongwith compact storage. A {@link ClassCatalog} must be supplied, however, tostored shared class descriptions.
The {@link ClassCatalog} is used to store class definitions rather thanembedding these into the stream. Instead, a class format identifier is embedded into the stream. This identifier is then used by {@link SerialInput} to load the class format to deserialize the object.
@author Mark Hayes