org.apache.poi.hssf.record.cont
Class ContinuableRecord

java.lang.Object
  extended by org.apache.poi.hssf.record.RecordBase
      extended by org.apache.poi.hssf.record.Record
          extended by org.apache.poi.hssf.record.cont.ContinuableRecord
Direct Known Subclasses:
ExtSSTRecord, NameRecord, SSTRecord, StringRecord, TextObjectRecord

public abstract class ContinuableRecord
extends Record

Common superclass of all records that can produce ContinueRecords while being serialized.


Constructor Summary
protected ContinuableRecord()
           
 
Method Summary
 int getRecordSize()
          gives the current serialized size of the record.
protected abstract  void serialize(ContinuableRecordOutput out)
          Serializes this record's content to the supplied data output.
 int serialize(int offset, byte[] data)
          called by the class that is responsible for writing this sucker.
 
Methods inherited from class org.apache.poi.hssf.record.Record
clone, cloneViaReserialise, getSid, serialize, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ContinuableRecord

protected ContinuableRecord()
Method Detail

serialize

protected abstract void serialize(ContinuableRecordOutput out)
Serializes this record's content to the supplied data output.

The standard BIFF header (ushort sid, ushort size) has been handled by the superclass, so only BIFF data should be written by this method. Simple data types can be written with the standard LittleEndianOutput methods. Methods from ContinuableRecordOutput can be used to serialize strings (with ContinueRecords being written as required). If necessary, implementors can explicitly start ContinueRecords (regardless of the amount of remaining space).

Parameters:
out - a data output stream

getRecordSize

public final int getRecordSize()
Description copied from class: RecordBase
gives the current serialized size of the record. Should include the sid and reclength (4 bytes).

Specified by:
getRecordSize in class RecordBase
Returns:
the total length of the encoded record(s) (Note - if any ContinueRecord is required, this result includes the size of those too)

serialize

public final int serialize(int offset,
                           byte[] data)
Description copied from class: RecordBase
called by the class that is responsible for writing this sucker. Subclasses should implement this so that their data is passed back in a byte array.

Specified by:
serialize in class RecordBase
Parameters:
offset - to begin writing at
data - byte array containing instance data
Returns:
number of bytes written