Class AbstractEscherHolderRecord

All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
DrawingGroupRecord, DrawingRecordForBiffViewer, EscherAggregate

public abstract class AbstractEscherHolderRecord extends Record implements Cloneable
The escher container record is used to hold escher records. It is abstract and must be subclassed for maximum benefit.
  • Constructor Details

    • AbstractEscherHolderRecord

      public AbstractEscherHolderRecord()
    • AbstractEscherHolderRecord

      public AbstractEscherHolderRecord(RecordInputStream in)
  • Method Details

    • convertRawBytesToEscherRecords

      protected void convertRawBytesToEscherRecords()
    • toString

      public String toString()
      Description copied from class: Record
      get a string representation of the record (for biffview/debugging)
      Overrides:
      toString in class Record
    • getRecordName

      protected abstract String getRecordName()
    • serialize

      public 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
    • getRecordSize

      public 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 record size
    • getSid

      public abstract short getSid()
      Description copied from class: Record
      return the non static version of the id for this record.
      Specified by:
      getSid in class Record
      Returns:
      he id for this record
    • clone

      Overrides:
      clone in class Record
    • addEscherRecord

      public void addEscherRecord(int index, EscherRecord element)
    • addEscherRecord

      public boolean addEscherRecord(EscherRecord element)
    • getEscherRecords

      public List<EscherRecord> getEscherRecords()
    • clearEscherRecords

      public void clearEscherRecords()
    • getEscherContainer

      public EscherContainerRecord getEscherContainer()
      If we have a EscherContainerRecord as one of our children (and most top level escher holders do), then return that.
      Returns:
      the EscherContainerRecord or null if no child is a container record
    • findFirstWithId

      public EscherRecord findFirstWithId(short id)
      Descends into all our children, returning the first EscherRecord with the given id, or null if none found
      Parameters:
      id - the record to look for
      Returns:
      the record or null if it can't be found
    • getEscherRecord

      public EscherRecord getEscherRecord(int index)
    • join

      public void join(AbstractEscherHolderRecord record)
      Big drawing group records are split but it's easier to deal with them as a whole group so we need to join them together.
      Parameters:
      record - the record data to concatenate to the end
    • processContinueRecord

      public void processContinueRecord(byte[] record)
    • getRawData

      public byte[] getRawData()
    • setRawData

      public void setRawData(byte[] rawData)
    • decode

      public void decode()
      Convert raw data to escher records.