org.apache.poi.hssf.record.cont

## Class ContinuableRecord

- java.lang.Object
- - org.apache.poi.hssf.record.RecordBase
  - - org.apache.poi.hssf.record.Record
    - - org.apache.poi.hssf.record.cont.ContinuableRecord

- All Implemented Interfaces:
    Duplicatable
  Direct Known Subclasses:
    ExtSSTRecord, NameRecord, SSTRecord, StringRecord, TextObjectRecord

      public abstract class ContinuableRecord
      extends Record

  Common superclass of all records that can produce `ContinueRecord`s while being serialized.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ContinuableRecord()`
    `protected` | `ContinuableRecord(ContinuableRecord other)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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

      `cloneViaReserialise, copy, getSid, serialize, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ContinuableRecord

          protected ContinuableRecord()

    - #### ContinuableRecord

          protected ContinuableRecord(ContinuableRecord other)

  - ### 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 `ContinueRecord`s being written as required). If necessary, implementors can explicitly start `ContinueRecord`s (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

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.