org.apache.poi.hssf.record.aggregates
Class FormulaRecordAggregate

java.lang.Object
  extended by org.apache.poi.hssf.record.RecordBase
      extended by org.apache.poi.hssf.record.aggregates.RecordAggregate
          extended by org.apache.poi.hssf.record.aggregates.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

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.poi.hssf.record.aggregates.RecordAggregate
RecordAggregate.PositionTrackingVisitor, RecordAggregate.RecordVisitor
 
Constructor Summary
FormulaRecordAggregate(FormulaRecord formulaRec, StringRecord stringRec, SharedValueManager svm)
           
 
Method Summary
 CellRangeAddress getArrayFormulaRange()
           
 short getColumn()
           
 FormulaRecord getFormulaRecord()
           
 Ptg[] getFormulaTokens()
           
 int getRow()
           
 StringRecord getStringRecord()
          debug only TODO - encapsulate
 java.lang.String getStringValue()
           
 short getXFIndex()
           
 boolean isPartOfArrayFormula()
           
 void notifyFormulaChanging()
          Should be called by any code which is either deleting this formula cell, or changing its type.
 CellRangeAddress removeArrayFormula(int rowIndex, int columnIndex)
          Removes an array formula
 void setArrayFormula(CellRangeAddress r, Ptg[] ptgs)
           
 void setCachedBooleanResult(boolean value)
           
 void setCachedDoubleResult(double value)
           
 void setCachedErrorResult(int errorCode)
           
 void setCachedStringResult(java.lang.String value)
           
 void setColumn(short col)
           
 void setParsedExpression(Ptg[] ptgs)
          Also checks for a related shared formula and unlinks it if found
 void setRow(int row)
           
 void setXFIndex(short xf)
           
 java.lang.String toString()
           
 void unlinkSharedFormula()
           
 void visitContainedRecords(RecordAggregate.RecordVisitor rv)
          Visit each of the atomic BIFF records contained in this RecordAggregate in the order that they should be written to file.
 
Methods inherited from class org.apache.poi.hssf.record.aggregates.RecordAggregate
getRecordSize, serialize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FormulaRecordAggregate

public FormulaRecordAggregate(FormulaRecord formulaRec,
                              StringRecord stringRec,
                              SharedValueManager svm)
Parameters:
stringRec - may be null if this formula does not have a cached text value.
svm - the SharedValueManager for the current sheet
Method Detail

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 java.lang.String toString()
Overrides:
toString in class java.lang.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 java.lang.String getStringValue()

setCachedStringResult

public void setCachedStringResult(java.lang.String value)

setCachedBooleanResult

public void setCachedBooleanResult(boolean value)

setCachedErrorResult

public void setCachedErrorResult(int errorCode)

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


Copyright 2010 The Apache Software Foundation or its licensors, as applicable.