Class AbstractEscherOptRecord

java.lang.Object
org.apache.poi.ddf.EscherRecord
org.apache.poi.ddf.AbstractEscherOptRecord
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
EscherOptRecord, EscherTertiaryOptRecord

public abstract class AbstractEscherOptRecord extends EscherRecord
Common abstract class for EscherOptRecord and EscherTertiaryOptRecord
  • Constructor Details

    • AbstractEscherOptRecord

      public AbstractEscherOptRecord()
  • Method Details

    • 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 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(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

      public void removeEscherProperty(int num)
    • getAttributeMap

      protected Object[][] getAttributeMap()
      Description copied from class: EscherRecord
      For the purpose of providing toString() and toXml() a subclass can either override those methods or provide a Object[][] array in the form { { "Attribute Name (Header)", value, "optional attribute", value }, ... } .

      Null values won't be printed.

      The attributes record, version, instance, options must not be returned.

      Specified by:
      getAttributeMap in class EscherRecord
      Returns:
      the attribute map