Class FormulaRecord

java.lang.Object
loci.poi.hssf.record.Record
loci.poi.hssf.record.FormulaRecord
All Implemented Interfaces:
Comparable, CellValueRecordInterface

public class FormulaRecord extends Record implements CellValueRecordInterface, Comparable
Formula Record. REFERENCE: PG 317/444 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)

Version:
2.0-pre
Author:
Andrew C. Oliver (acoliver at apache dot org), Jason Height (jheight at chariot dot net dot au)
  • Field Details

  • Constructor Details

    • FormulaRecord

      public FormulaRecord()
      Creates new FormulaRecord
    • FormulaRecord

      public FormulaRecord(RecordInputStream in)
      Constructs a Formula record and sets its fields appropriately. Note - id must be 0x06 (NOT 0x406 see MSKB #Q184647 for an "explanation of this bug in the documentation) or an exception will be throw upon validation
      Parameters:
      in - the RecordInputstream to read the record from
  • Method Details

    • fillFields

      protected void fillFields(RecordInputStream in)
      Description copied from class: Record
      called by the constructor, should set class level fields. Should throw runtime exception for bad/icomplete data.
      Specified by:
      fillFields in class Record
      Parameters:
      in - the RecordInputstream to read the record from
    • setRow

      public void setRow(int row)
      Description copied from interface: CellValueRecordInterface
      set the row this cell occurs on
      Specified by:
      setRow in interface CellValueRecordInterface
      Parameters:
      row - the row this cell occurs within
    • setColumn

      public void setColumn(short column)
      Description copied from interface: CellValueRecordInterface
      set the column this cell defines within the row
      Specified by:
      setColumn in interface CellValueRecordInterface
      Parameters:
      column - the column this cell defines
    • setXFIndex

      public void setXFIndex(short xf)
      Specified by:
      setXFIndex in interface CellValueRecordInterface
    • setValue

      public void setValue(double value)
      set the calculated value of the formula
      Parameters:
      value - calculated value
    • setOptions

      public void setOptions(short options)
      set the option flags
      Parameters:
      options - bitmask
    • setExpressionLength

      public void setExpressionLength(short len)
      set the length (in number of tokens) of the expression
      Parameters:
      len - length
    • getRow

      public int getRow()
      Description copied from interface: CellValueRecordInterface
      get the row this cell occurs on
      Specified by:
      getRow in interface CellValueRecordInterface
      Returns:
      the row
    • getColumn

      public short getColumn()
      Description copied from interface: CellValueRecordInterface
      get the column this cell defines within the row
      Specified by:
      getColumn in interface CellValueRecordInterface
      Returns:
      the column
    • getXFIndex

      public short getXFIndex()
      Specified by:
      getXFIndex in interface CellValueRecordInterface
    • getValue

      public double getValue()
      get the calculated value of the formula
      Returns:
      calculated value
    • getOptions

      public short getOptions()
      get the option flags
      Returns:
      bitmask
    • isSharedFormula

      public boolean isSharedFormula()
    • setSharedFormula

      public void setSharedFormula(boolean flag)
    • getExpressionLength

      public short getExpressionLength()
      get the length (in number of tokens) of the expression
      Returns:
      expression length
    • pushExpressionToken

      public void pushExpressionToken(Ptg ptg)
      push a token onto the stack
      Parameters:
      ptg - the token
    • popExpressionToken

      public Ptg popExpressionToken()
      pop a token off of the stack
      Returns:
      Ptg - the token
    • peekExpressionToken

      public Ptg peekExpressionToken()
      peek at the token on the top of stack
      Returns:
      Ptg - the token
    • getNumberOfExpressionTokens

      public int getNumberOfExpressionTokens()
      get the size of the stack
      Returns:
      size of the stack
    • getParsedExpression

      public List getParsedExpression()
      get the stack as a list
      Returns:
      list of tokens (casts stack to a list and returns it!) this method can return null is we are unable to create Ptgs from existing excel file callers should check for null!
    • setParsedExpression

      public void setParsedExpression(Stack ptgs)
    • validateSid

      protected void validateSid(short id)
      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
    • 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
    • serialize

      public int serialize(int offset, byte[] data)
      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 Record
      Parameters:
      offset - to begin writing at
      data - byte array containing instance data
      Returns:
      byte array containing instance data
    • 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
    • isBefore

      public boolean isBefore(CellValueRecordInterface i)
      Description copied from interface: CellValueRecordInterface
      returns whether this cell is before the passed in cell
      Specified by:
      isBefore in interface CellValueRecordInterface
      Parameters:
      i - another cell interface record to compare
      Returns:
      true if the cells is before, or false if not
    • isAfter

      public boolean isAfter(CellValueRecordInterface i)
      Description copied from interface: CellValueRecordInterface
      returns whether this cell is after the passed in cell
      Specified by:
      isAfter in interface CellValueRecordInterface
      Parameters:
      i - record to compare
      Returns:
      true if the cell is after, false if not
    • isEqual

      public boolean isEqual(CellValueRecordInterface i)
      Description copied from interface: CellValueRecordInterface
      returns whether this cell represents the same cell (NOT VALUE)
      Specified by:
      isEqual in interface CellValueRecordInterface
      Parameters:
      i - record to compare
      Returns:
      true if the cells are the same cell (positionally), false if not.
    • isInValueSection

      public boolean isInValueSection()
      Description copied from class: Record
      DBCELL, ROW, VALUES all say yes
      Overrides:
      isInValueSection in class Record
    • isValue

      public boolean isValue()
      Description copied from class: Record
      tells whether this type of record contains a value
      Overrides:
      isValue in class Record
    • compareTo

      public int compareTo(Object obj)
      Specified by:
      compareTo in interface Comparable
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

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

      public Object clone()
      Specified by:
      clone in interface CellValueRecordInterface
      Overrides:
      clone in class Record