Package loci.poi.hssf.record
Class FormulaRecord
java.lang.Object
loci.poi.hssf.record.Record
loci.poi.hssf.record.FormulaRecord
- All Implemented Interfaces:
Comparable,CellValueRecordInterface
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 Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates new FormulaRecordConstructs a Formula record and sets its fields appropriately. -
Method Summary
Modifier and TypeMethodDescriptionclone()intbooleanprotected voidcalled by the constructor, should set class level fields.shortget the column this cell defines within the rowshortget the length (in number of tokens) of the expressionintget the size of the stackshortget the option flagsget the stack as a listintgives the current serialized size of the record.intgetRow()get the row this cell occurs onshortgetSid()return the non static version of the id for this record.doublegetValue()get the calculated value of the formulashortbooleanreturns whether this cell is after the passed in cellbooleanreturns whether this cell is before the passed in cellbooleanreturns whether this cell represents the same cell (NOT VALUE)booleanDBCELL, ROW, VALUES all say yesbooleanbooleanisValue()tells whether this type of record contains a valuepeek at the token on the top of stackpop a token off of the stackvoidpushExpressionToken(Ptg ptg) push a token onto the stackintserialize(int offset, byte[] data) called by the class that is responsible for writing this sucker.voidsetColumn(short column) set the column this cell defines within the rowvoidsetExpressionLength(short len) set the length (in number of tokens) of the expressionvoidsetOptions(short options) set the option flagsvoidsetParsedExpression(Stack ptgs) voidsetRow(int row) set the row this cell occurs onvoidsetSharedFormula(boolean flag) voidsetValue(double value) set the calculated value of the formulavoidsetXFIndex(short xf) toString()get a string representation of the record (for biffview/debugging)protected voidvalidateSid(short id) called by constructor, should throw runtime exception in the event of a record passed with a differing ID.
-
Field Details
-
sid
public static final short sid- See Also:
-
-
Constructor Details
-
FormulaRecord
public FormulaRecord()Creates new FormulaRecord -
FormulaRecord
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
Description copied from class:Recordcalled by the constructor, should set class level fields. Should throw runtime exception for bad/icomplete data.- Specified by:
fillFieldsin classRecord- Parameters:
in- the RecordInputstream to read the record from
-
setRow
public void setRow(int row) Description copied from interface:CellValueRecordInterfaceset the row this cell occurs on- Specified by:
setRowin interfaceCellValueRecordInterface- Parameters:
row- the row this cell occurs within
-
setColumn
public void setColumn(short column) Description copied from interface:CellValueRecordInterfaceset the column this cell defines within the row- Specified by:
setColumnin interfaceCellValueRecordInterface- Parameters:
column- the column this cell defines
-
setXFIndex
public void setXFIndex(short xf) - Specified by:
setXFIndexin interfaceCellValueRecordInterface
-
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:CellValueRecordInterfaceget the row this cell occurs on- Specified by:
getRowin interfaceCellValueRecordInterface- Returns:
- the row
-
getColumn
public short getColumn()Description copied from interface:CellValueRecordInterfaceget the column this cell defines within the row- Specified by:
getColumnin interfaceCellValueRecordInterface- Returns:
- the column
-
getXFIndex
public short getXFIndex()- Specified by:
getXFIndexin interfaceCellValueRecordInterface
-
getValue
public double getValue()get the calculated value of the formula- Returns:
- calculated value
-
getOptions
public short getOptions()get the option flags- Returns:
- bitmask
-
getExpressionLength
public short getExpressionLength()get the length (in number of tokens) of the expression- Returns:
- expression length
-
pushExpressionToken
push a token onto the stack- Parameters:
ptg- the token
-
popExpressionToken
pop a token off of the stack- Returns:
- Ptg - the token
-
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
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
-
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:
validateSidin classRecord- Parameters:
id- alleged id for this record
-
getSid
public short getSid()Description copied from class:Recordreturn the non static version of the id for this 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. -
getRecordSize
public int getRecordSize()Description copied from class:Recordgives the current serialized size of the record. Should include the sid and reclength (4 bytes).- Overrides:
getRecordSizein classRecord
-
isBefore
Description copied from interface:CellValueRecordInterfacereturns whether this cell is before the passed in cell- Specified by:
isBeforein interfaceCellValueRecordInterface- Parameters:
i- another cell interface record to compare- Returns:
- true if the cells is before, or false if not
-
isAfter
Description copied from interface:CellValueRecordInterfacereturns whether this cell is after the passed in cell- Specified by:
isAfterin interfaceCellValueRecordInterface- Parameters:
i- record to compare- Returns:
- true if the cell is after, false if not
-
isEqual
Description copied from interface:CellValueRecordInterfacereturns whether this cell represents the same cell (NOT VALUE)- Specified by:
isEqualin interfaceCellValueRecordInterface- 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:RecordDBCELL, ROW, VALUES all say yes- Overrides:
isInValueSectionin classRecord
-
isValue
public boolean isValue()Description copied from class:Recordtells whether this type of record contains a value -
compareTo
- Specified by:
compareToin interfaceComparable
-
equals
-
toString
Description copied from class:Recordget a string representation of the record (for biffview/debugging) -
clone
- Specified by:
clonein interfaceCellValueRecordInterface- Overrides:
clonein classRecord
-