Package loci.poi.ddf

Class EscherContainerRecord

java.lang.Object
loci.poi.ddf.EscherRecord
loci.poi.ddf.EscherContainerRecord

public class EscherContainerRecord extends EscherRecord
Escher container records store other escher records as children. The container records themselves never store any information beyond the standard header used by all escher records. This one record is used to represent many different types of records.
Author:
Glen Stampoultzis
  • Field Details

  • Constructor Details

    • EscherContainerRecord

      public EscherContainerRecord()
  • Method Details

    • 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.
    • 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
    • getChildRecords

      public List getChildRecords()
      Overrides:
      getChildRecords in class EscherRecord
      Returns:
      Returns the children of this record. By default this will be an empty list. EscherCotainerRecord is the only record that may contain children.
      See Also:
    • setChildRecords

      public void setChildRecords(List childRecords)
      Description copied from class: EscherRecord
      Sets the child records for this record. By default this will throw an exception as only EscherContainerRecords may have children.
      Overrides:
      setChildRecords in class EscherRecord
      Parameters:
      childRecords - Not used in base implementation.
    • getRecordName

      public String getRecordName()
      Description copied from class: EscherRecord
      Subclasses should return the short name for this escher record.
      Specified by:
      getRecordName in class EscherRecord
    • display

      public void display(PrintWriter w, int indent)
      Description copied from class: EscherRecord
      The display methods allows escher variables to print the record names according to their hierarchy.
      Overrides:
      display in class EscherRecord
      Parameters:
      w - The print writer to output to.
      indent - The current indent level.
    • addChildRecord

      public void addChildRecord(EscherRecord record)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getChildById

      public EscherSpRecord getChildById(short recordId)