org.apache.poi.ddf

## Class EscherTextboxRecord

- java.lang.Object
- - org.apache.poi.ddf.EscherRecord
  - - org.apache.poi.ddf.EscherTextboxRecord

- All Implemented Interfaces:
    Duplicatable, GenericRecord

      public final class EscherTextboxRecord
      extends EscherRecord

  Holds data from the parent application. Most commonly used to store text in the format of the parent application, rather than in Escher format. We don't attempt to understand the contents, since they will be in the parent's format, not Escher format.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static short` | `RECORD_ID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EscherTextboxRecord()`
    `EscherTextboxRecord(EscherTextboxRecord other)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `EscherTextboxRecord` | `copy()`
    `int` | `fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)` The contract of this method is to deserialize an escher record including it's children.
    `byte[]` | `getData()` Returns any extra data associated with this record.
    `java.util.Map<java.lang.String,java.util.function.Supplier<?>>` | `getGenericProperties()`
    `java.lang.Enum` | `getGenericRecordType()`
    `java.lang.String` | `getRecordName()` Subclasses should return the short name for this escher record.
    `int` | `getRecordSize()` Subclasses should effeciently return the number of bytes required to serialize the record.
    `int` | `serialize(int offset, byte[] data, EscherSerializationListener listener)` Serializes the record to an existing byte array.
    `void` | `setData(byte[] b)` Sets the extra data (in the parent application's format) to be contained by the record.
    `void` | `setData(byte[] b, int start, int length)` Sets the extra data (in the parent application's format) to be contained by the record.

    - ### Methods inherited from class org.apache.poi.ddf.EscherRecord

      `clone, display, fillFields, getChild, getChildRecords, getGenericChildren, getInstance, getOptions, getRecordId, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setChildRecords, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXml`

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

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

- - ### Field Detail

    - #### RECORD_ID

          public static final short RECORD_ID

  - ### Constructor Detail

    - #### EscherTextboxRecord

          public EscherTextboxRecord()

    - #### EscherTextboxRecord

          public EscherTextboxRecord(EscherTextboxRecord other)

  - ### Method Detail

    - #### fillFields

          public int fillFields(byte[] data,
                                int offset,
                                EscherRecordFactory recordFactory)

      Description copied from class: `EscherRecord`
      The contract of this method is to deserialize an escher record including it's children.
      Specified by:
        `fillFields` in class `EscherRecord`
      Parameters:
        `data` - The byte array containing the serialized escher records.
        `offset` - The offset into the byte array.
        `recordFactory` - A factory for creating new escher records.
      Returns:
        The number of bytes written.

    - #### serialize

          public int serialize(int offset,
                               byte[] data,
                               EscherSerializationListener listener)

      Description copied from class: `EscherRecord`
      Serializes the record to an existing byte array.
      Specified by:
        `serialize` in class `EscherRecord`
      Parameters:
        `offset` - the offset within the byte array
        `data` - the data array to serialize to
        `listener` - a listener for begin and end serialization events. This is useful because the serialization is hierarchical/recursive and sometimes you need to be able break into that.
      Returns:
        the number of bytes written.

    - #### getData

          public byte[] getData()

      Returns any extra data associated with this record. In practice excel does not seem to put anything here, but with PowerPoint this will contain the bytes that make up a TextHeaderAtom followed by a TextBytesAtom/TextCharsAtom
      Returns:
        the extra data

    - #### setData

          public void setData(byte[] b,
                              int start,
                              int length)

      Sets the extra data (in the parent application's format) to be contained by the record. Used when the parent application changes the contents.
      Parameters:
        `b` - the buffer which contains the data
        `start` - the start position in the buffer
        `length` - the length of the block

    - #### setData

          public void setData(byte[] b)

      Sets the extra data (in the parent application's format) to be contained by the record. Used when the parent application changes the contents.
      Parameters:
        `b` - the data

    - #### getRecordSize

          public int getRecordSize()

      Description copied from class: `EscherRecord`
      Subclasses should effeciently return the number of bytes required to serialize the record.
      Specified by:
        `getRecordSize` in class `EscherRecord`
      Returns:
        number of bytes

    - #### getRecordName

          public java.lang.String getRecordName()

      Description copied from class: `EscherRecord`
      Subclasses should return the short name for this escher record.
      Specified by:
        `getRecordName` in class `EscherRecord`
      Returns:
        the short name for this escher record

    - #### getGenericRecordType

          public java.lang.Enum getGenericRecordType()

    - #### getGenericProperties

          public java.util.Map<java.lang.String,java.util.function.Supplier<?>> getGenericProperties()

      Specified by:
        `getGenericProperties` in interface `GenericRecord`
      Overrides:
        `getGenericProperties` in class `EscherRecord`

    - #### copy

          public EscherTextboxRecord copy()

      Specified by:
        `copy` in interface `Duplicatable`
      Specified by:
        `copy` in class `EscherRecord`
      Returns:
        a deep copy of the implementing class / instance

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