Class FormulaRecordAggregate

All Implemented Interfaces:
CellValueRecordInterface

public final class FormulaRecordAggregate extends RecordAggregate implements CellValueRecordInterface
The formula record aggregate is used to join together the formula record and it's (optional) string record and (optional) Shared Formula Record (template reads, excel optimization).
Author:
Glen Stampoultzis (glens at apache.org), Vladimirs Abramovs(Vladimirs.Abramovs at exigenservices.com) - Array Formula support
  • Constructor Details

  • Method Details

    • getFormulaRecord

      public FormulaRecord getFormulaRecord()
    • getStringRecord

      public StringRecord getStringRecord()
      debug only TODO - encapsulate
    • getXFIndex

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

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

      public void setColumn(short col)
      Specified by:
      setColumn in interface CellValueRecordInterface
      Parameters:
      col - the column this cell defines
    • setRow

      public void setRow(int row)
      Specified by:
      setRow in interface CellValueRecordInterface
      Parameters:
      row - the row this cell occurs within
    • getColumn

      public short getColumn()
      Specified by:
      getColumn in interface CellValueRecordInterface
      Returns:
      the column this cell defines within the row
    • getRow

      public int getRow()
      Specified by:
      getRow in interface CellValueRecordInterface
      Returns:
      the row this cell occurs on
    • toString

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

      public void visitContainedRecords(RecordAggregate.RecordVisitor rv)
      Description copied from class: RecordAggregate
      Visit each of the atomic BIFF records contained in this RecordAggregate in the order that they should be written to file. Implementors may or may not return the actual Records being used to manage POI's internal implementation. Callers should not assume either way, and therefore only attempt to modify those Records after cloning
      Specified by:
      visitContainedRecords in class RecordAggregate
    • getStringValue

      public String getStringValue()
    • setCachedStringResult

      public void setCachedStringResult(String value)
    • setCachedBooleanResult

      public void setCachedBooleanResult(boolean value)
    • setCachedErrorResult

      public void setCachedErrorResult(int errorCode)
    • setCachedErrorResult

      public void setCachedErrorResult(FormulaError error)
    • setCachedDoubleResult

      public void setCachedDoubleResult(double value)
    • getFormulaTokens

      public Ptg[] getFormulaTokens()
    • setParsedExpression

      public void setParsedExpression(Ptg[] ptgs)
      Also checks for a related shared formula and unlinks it if found
    • unlinkSharedFormula

      public void unlinkSharedFormula()
    • notifyFormulaChanging

      public void notifyFormulaChanging()
      Should be called by any code which is either deleting this formula cell, or changing its type. This method gives the aggregate a chance to unlink any shared formula that may be involved with this cell formula.
    • isPartOfArrayFormula

      public boolean isPartOfArrayFormula()
    • getArrayFormulaRange

      public CellRangeAddress getArrayFormulaRange()
    • setArrayFormula

      public void setArrayFormula(CellRangeAddress r, Ptg[] ptgs)
    • removeArrayFormula

      public CellRangeAddress removeArrayFormula(int rowIndex, int columnIndex)
      Removes an array formula
      Returns:
      the range of the array formula containing the specified cell. Never null