Class AbstractEscherHolderRecord

  • All Implemented Interfaces:
    java.lang.Cloneable
    Direct Known Subclasses:
    DrawingGroupRecord, DrawingRecordForBiffViewer, EscherAggregate

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

      • AbstractEscherHolderRecord

        public AbstractEscherHolderRecord()
      • AbstractEscherHolderRecord

        public AbstractEscherHolderRecord​(RecordInputStream in)
    • Method Detail

      • toString

        public java.lang.String toString()
        Description copied from class: Record
        get a string representation of the record (for biffview/debugging)
        Overrides:
        toString in class Record
      • 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
      • addEscherRecord

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

        public boolean addEscherRecord​(EscherRecord element)
      • getEscherRecords

        public java.util.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.