Class SharedFormulaRecord


  • public class SharedFormulaRecord
    extends Record
    Title: SharedFormulaRecord Description: Primarily used as an excel optimization so that multiple similar formulas are not written out too many times. We should recognize this record and serialize as is since this is used when reading templates.

    Note: the documentation says that the SID is BC where biffviewer reports 4BC. The hex dump shows that the two byte sid representation to be 'BC 04' that is consistent with the other high byte record types.

    Author:
    Danny Mui at apache dot org
    • Constructor Detail

      • SharedFormulaRecord

        public SharedFormulaRecord()
      • SharedFormulaRecord

        public SharedFormulaRecord​(RecordInputStream in)
        Parameters:
        in - the RecordInputstream to read the record from
    • Method Detail

      • validateSid

        protected void validateSid​(short id)
        Description copied from class: Record
        called by constructor, should throw runtime exception in the event of a record passed with a differing ID.
        Specified by:
        validateSid in class Record
        Parameters:
        id - alleged id for this record
      • getFirstRow

        public int getFirstRow()
      • getLastRow

        public int getLastRow()
      • getFirstColumn

        public short getFirstColumn()
      • getLastColumn

        public short getLastColumn()
      • getExpressionLength

        public short getExpressionLength()
      • serialize

        public int serialize​(int offset,
                             byte[] data)
        spit the record out AS IS. no interperatation or identification
        Specified by:
        serialize in class Record
        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: Record
        gives the current serialized size of the record. Should include the sid and reclength (4 bytes).
        Overrides:
        getRecordSize in class Record
      • toString

        public String toString()
        print a sort of string representation ([SHARED FORMULA RECORD] id = x [/SHARED FORMULA RECORD])
        Overrides:
        toString in class Record
      • getSid

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

        protected void fillFields​(RecordInputStream in)
        Shared formulas are to treated like unknown records, and as a result d
        Specified by:
        fillFields in class Record
        Parameters:
        in - the RecordInputstream to read the record from
      • isFormulaInShared

        public boolean isFormulaInShared​(FormulaRecord formula)
      • convertSharedFormulaRecord

        public void convertSharedFormulaRecord​(FormulaRecord formula)
        Creates a non shared formula from the shared formula counter part
      • isInValueSection

        public boolean isInValueSection()
        Mirroring formula records so it is registered in the ValueRecordsAggregate
        Overrides:
        isInValueSection in class Record
      • isValue

        public boolean isValue()
        Register it in the ValueRecordsAggregate so it can go into the FormulaRecordAggregate
        Overrides:
        isValue in class Record