Top Description Fields Constructors Methods
org.apache.derby.iapi.services.io

public Class FormatIdOutputStream

extends DataOutputStream
implements ObjectOutput, ErrorInfo
Class Inheritance
All Implemented Interfaces
org.apache.derby.iapi.services.io.ErrorInfo, java.io.ObjectOutput, java.lang.AutoCloseable, java.io.DataOutput
Imports
org.apache.derby.shared.common.sanity.SanityManager, org.apache.derby.shared.common.info.JVMInfo, java.io.DataOutputStream, .IOException, .ObjectOutput, .ObjectOutputStream, .OutputStream, .Serializable

A stream for serializing objects with format id tags.

An ObjectOutput (henceforth 'out') preceeds objects it writes with a format id. The companion FormatIdInputStream (henceforth 'in') uses these format ids in parsing the stored data. The stream can be thought of as containing a sequence of (formatId,object) pairs interspersed with other data. The assumption is that out.writeObject() produces these pairs and in.readObject() uses the format ids to construct objects from the pairs that out.writeObject produced. The description below describes each supported pair and how in.readObject() processes it.

  1. (NULL_FORMAT_ID, nothing) in.readObject() returns null.
  2. (SRING_FORMAT_ID, UTF8 encoded string)in.readObject reads and returns this string.
  3. (SERIALIZABLE_FORMAT_ID,serialized object) in.readObject() reads the object using java serialization and returns it.
  4. (A format id for a Storable, isNull flag and object if isNull == false) (see note 1) in.readObject() reads the boolean isNull flag. If is null is true, in.readObject() returns a Storable object of the correct class which is null. If ifNull is false, in.readObject() restores the object using its readExternal() method.
  5. (A format id for a Formatable which is not Storable, the stored object) (see note 1) in.readObject restores the object using its readExternal() method.

Note 1: The FormatIdInputStream uses Monitor.newInstanceFromIdentifier(format id) to get the class.

Note 2: An object may support more than one of the following interfaces Storable, Formatable, Serializable. In this case out.writeObject use the first of these interfaces which the object supports (based on the order listed here) to determine how to write the object.

Field Summary

Inherited from java.io.DataOutputStream:
written

Constructor Summary

AccessConstructor and Description
public
FormatIdOutputStream(OutputStream
output goes here.
out
)

Constructor for a FormatIdOutputStream

Method Summary

Modifier and TypeMethod and Description
public String
public Exception
public void
setOutput(OutputStream
The new output stream.
out
)

Set the OutputStream for this FormatIdOutputStream to the stream provided.

public void
writeObject(Object
a reference to the object.
ref
)

Implements java.io.ObjectOutput.writeObject.

Write a format id for the object provied followed by the object itself to this FormatIdOutputStream.

Inherited from java.io.DataOutputStream:
flushsizewritewritewriteBooleanwriteBytewriteByteswriteCharwriteCharswriteDoublewriteFloatwriteIntwriteLongwriteShortwriteUTF

Constructor Detail

FormatIdOutputStreamback to summary
public FormatIdOutputStream(OutputStream out)

Constructor for a FormatIdOutputStream

Parameters
out:OutputStream

output goes here.

Method Detail

getErrorInfoback to summary
public String getErrorInfo()

Implements org.apache.derby.iapi.services.io.ErrorInfo.getErrorInfo.

getNestedExceptionback to summary
public Exception getNestedException()

Implements org.apache.derby.iapi.services.io.ErrorInfo.getNestedException.

setOutputback to summary
public void setOutput(OutputStream out)

Set the OutputStream for this FormatIdOutputStream to the stream provided. It is the responsibility of the caller to flush or close (as required) the previous stream this class was attached to.

Parameters
out:OutputStream

The new output stream.

writeObjectback to summary
public void writeObject(Object ref) throws IOException

Implements java.io.ObjectOutput.writeObject.

Write a format id for the object provied followed by the object itself to this FormatIdOutputStream.

Parameters
ref:Object

a reference to the object.

Exceptions
IOException:
the exception.