org.apache.poi.hssf.record
Class FormulaRecord

java.lang.Object
  |
  +--org.apache.poi.hssf.record.Record
        |
        +--org.apache.poi.hssf.record.FormulaRecord
All Implemented Interfaces:
CellValueRecordInterface, java.lang.Comparable

public class FormulaRecord
extends Record
implements CellValueRecordInterface, java.lang.Comparable

Formula Record - This is not really supported in this release. Its here for future use.

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)

Field Summary
static boolean EXPERIMENTAL_FORMULA_SUPPORT_ENABLED
           
static short sid
           
 
Constructor Summary
FormulaRecord()
          Creates new FormulaRecord
FormulaRecord(short id, short size, byte[] data)
          Constructs a Formula record and sets its fields appropriately.
FormulaRecord(short id, short size, byte[] data, int offset)
          Constructs a Formula record and sets its fields appropriately.
 
Method Summary
 int compareTo(java.lang.Object obj)
           
 boolean equals(java.lang.Object obj)
           
protected  void fillFields(byte[] data, short size, int offset)
          called by the constructor, should set class level fields.
 short getColumn()
          get the column this cell defines within the row
 short getExpressionLength()
          get the length (in number of tokens) of the expression
 int getNumberOfExpressionTokens()
          get the size of the stack
 short getOptions()
          get the option flags
 java.util.List getParsedExpression()
          get the stack as a list
 int getRecordSize()
          gives the current serialized size of the record.
 short getRow()
          get the row this cell occurs on
 short getSid()
          return the non static version of the id for this record.
 double getValue()
          get the calculated value of the formula
 short getXFIndex()
           
 boolean isAfter(CellValueRecordInterface i)
          returns whether this cell is after the passed in cell
 boolean isBefore(CellValueRecordInterface i)
          returns whether this cell is before the passed in cell
 boolean isEqual(CellValueRecordInterface i)
          returns whether this cell represents the same cell (NOT VALUE)
 boolean isInValueSection()
          DBCELL, ROW, VALUES all say yes
 boolean isValue()
          tells whether this type of record contains a value
 Ptg peekExpressionToken()
          peek at the token on the top of stack
 Ptg popExpressionToken()
          pop a token off of the stack
 void pushExpressionToken(Ptg ptg)
          push a token onto the stack
 int serialize(int offset, byte[] data)
          called by the class that is responsible for writing this sucker.
 void setColumn(short column)
          set the column this cell defines within the row
 void setExpressionLength(short len)
          set the length (in number of tokens) of the expression
 void setOptions(short options)
          set the option flags
 void setRow(short row)
          set the row this cell occurs on
 void setValue(double value)
          set the calculated value of the formula
 void setXFIndex(short xf)
           
protected  void validateSid(short id)
          called by constructor, should throw runtime exception in the event of a record passed with a differing ID.
 
Methods inherited from class org.apache.poi.hssf.record.Record
fillFields, processContinueRecord, serialize, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EXPERIMENTAL_FORMULA_SUPPORT_ENABLED

public static final boolean EXPERIMENTAL_FORMULA_SUPPORT_ENABLED

sid

public static final short sid
Constructor Detail

FormulaRecord

public FormulaRecord()
Creates new FormulaRecord

FormulaRecord

public FormulaRecord(short id,
                     short size,
                     byte[] data)
Constructs a Formula record and sets its fields appropriately.
Parameters:
id - 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
size - the size of the data area of the record
data - data of the record (should not contain sid/len)

FormulaRecord

public FormulaRecord(short id,
                     short size,
                     byte[] data,
                     int offset)
Constructs a Formula record and sets its fields appropriately.
Parameters:
id - 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
size - the size of the data area of the record
data - data of the record (should not contain sid/len)
offset - of the record's data
Method Detail

fillFields

protected void fillFields(byte[] data,
                          short size,
                          int offset)
Description copied from class: Record
called by the constructor, should set class level fields. Should throw runtime exception for bad/icomplete data.
Overrides:
fillFields in class Record
Following copied from class: org.apache.poi.hssf.record.Record
Parameters:
data - raw data
size - size of data
offset - of the record's data (provided a big array of the file)

setRow

public void setRow(short row)
Description copied from interface: CellValueRecordInterface
set the row this cell occurs on
Specified by:
setRow in interface CellValueRecordInterface
Following copied from interface: org.apache.poi.hssf.record.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
Following copied from interface: org.apache.poi.hssf.record.CellValueRecordInterface
Parameters:
col - 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 short getRow()
Description copied from interface: CellValueRecordInterface
get the row this cell occurs on
Specified by:
getRow in interface CellValueRecordInterface
Following copied from interface: org.apache.poi.hssf.record.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
Following copied from interface: org.apache.poi.hssf.record.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

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 java.util.List getParsedExpression()
get the stack as a list
Returns:
list of tokens (casts stack to a list and returns it!)

validateSid

protected void validateSid(short id)
called by constructor, should throw runtime exception in the event of a record passed with a differing ID.
Overrides:
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.
Overrides:
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.
Overrides:
serialize in class Record
Returns:
byte array containing instance data

getRecordSize

public int getRecordSize()
Description copied from class: Record
gives the current serialized size of the record.
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
Following copied from interface: org.apache.poi.hssf.record.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
Following copied from interface: org.apache.poi.hssf.record.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
Following copied from interface: org.apache.poi.hssf.record.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(java.lang.Object obj)
Specified by:
compareTo in interface java.lang.Comparable

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object


Copyright © 2002 Apache jakarta-poi project. All Rights Reserved.