org.apache.poi.ddf

## Class AbstractEscherOptRecord

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

- All Implemented Interfaces:
    Duplicatable, GenericRecord
  Direct Known Subclasses:
    EscherOptRecord, EscherTertiaryOptRecord

      public abstract class AbstractEscherOptRecord
      extends EscherRecord

  Common abstract class for `EscherOptRecord` and `EscherTertiaryOptRecord`

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addEscherProperty(EscherProperty prop)` Add a property to this record.
    `int` | `fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)` The contract of this method is to deserialize an escher record including it's children.
    `java.util.List<EscherProperty>` | `getEscherProperties()` The list of properties stored by this record.
    `EscherProperty` | `getEscherProperty(int index)` The list of properties stored by this record.
    `java.util.Map<java.lang.String,java.util.function.Supplier<?>>` | `getGenericProperties()`
    `int` | `getRecordSize()` Subclasses should effeciently return the number of bytes required to serialize the record.
    `<T extends EscherProperty> T` | `lookup(EscherPropertyTypes propType)`
    `<T extends EscherProperty> T` | `lookup(int propId)`
    `void` | `removeEscherProperty(EscherPropertyTypes type)`
    `void` | `removeEscherProperty(int num)` Deprecated.
    `int` | `serialize(int offset, byte[] data, EscherSerializationListener listener)` Serializes the record to an existing byte array.
    `void` | `setEscherProperty(EscherProperty value)` Set an escher property.
    `void` | `sortProperties()` Records should be sorted by property number before being stored.

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

      `clone, copy, display, fillFields, getChild, getChildRecords, getGenericChildren, getInstance, getOptions, getRecordId, getRecordName, 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`

    - ### Methods inherited from interface org.apache.poi.common.usermodel.GenericRecord

      `getGenericRecordType`

- - ### Constructor Detail

    - #### AbstractEscherOptRecord

          protected AbstractEscherOptRecord()

    - #### AbstractEscherOptRecord

          protected AbstractEscherOptRecord(AbstractEscherOptRecord other)

  - ### Method Detail

    - #### addEscherProperty

          public void addEscherProperty(EscherProperty prop)

      Add a property to this record.
      Parameters:
        `prop` - the escher property to add

    - #### 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.

    - #### getEscherProperties

          public java.util.List<EscherProperty> getEscherProperties()

      The list of properties stored by this record.
      Returns:
        the list of properties

    - #### getEscherProperty

          public EscherProperty getEscherProperty(int index)

      The list of properties stored by this record.
      Parameters:
        `index` - the ordinal index of the property
      Returns:
        the escher property

    - #### 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

    - #### lookup

          public <T extends EscherProperty> T lookup(EscherPropertyTypes propType)

    - #### lookup

          public <T extends EscherProperty> T lookup(int propId)

    - #### 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.

    - #### sortProperties

          public void sortProperties()

      Records should be sorted by property number before being stored.

    - #### setEscherProperty

          public void setEscherProperty(EscherProperty value)

      Set an escher property. If a property with given propId already exists it is replaced.
      Parameters:
        `value` - the property to set.

    - #### removeEscherProperty

          @Deprecated
           @Removal(version="5.0.0")
          public void removeEscherProperty(int num)

      Deprecated.

    - #### removeEscherProperty

          public void removeEscherProperty(EscherPropertyTypes type)

    - #### getGenericProperties

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

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

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