public class RKRecord extends Record implements CellValueRecordInterface
We support this in READ-ONLY mode. HSSF converts these to NUMBER records
REFERENCE: PG 376 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)
NumberRecord| Modifier and Type | Field and Description |
|---|---|
private int |
field_1_row |
private short |
field_2_col |
private short |
field_3_xf_index |
private int |
field_4_rk_number |
static short |
RK_IEEE_NUMBER |
static short |
RK_IEEE_NUMBER_TIMES_100 |
static short |
RK_INTEGER |
static short |
RK_INTEGER_TIMES_100 |
static short |
sid |
| Constructor and Description |
|---|
RKRecord() |
RKRecord(RecordInputStream in)
Constructs a RK record and sets its fields appropriately.
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone() |
protected void |
fillFields(RecordInputStream in)
called by the constructor, should set class level fields.
|
short |
getColumn()
get the column this cell defines within the row
|
int |
getRKField() |
double |
getRKNumber()
Extract the value of the number
|
short |
getRKType()
Get the type of the number
|
int |
getRow()
get the row this cell occurs on
|
short |
getSid()
return the non static version of the id for this record.
|
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
|
static void |
main(String[] ignored_args)
Debugging main()
|
int |
serialize(int offset,
byte[] data)
called by the class that is responsible for writing this sucker.
|
void |
setColumn(short col)
set the column this cell defines within the row
|
void |
setRow(int row)
set the row this cell occurs on
|
void |
setXFIndex(short xf)
NO OP!
|
String |
toString()
get a string representation of the record (for biffview/debugging)
|
protected void |
validateSid(short id)
called by constructor, should throw runtime exception in the event of a
record passed with a differing ID.
|
getRecordSize, serializepublic static final short sid
public static final short RK_IEEE_NUMBER
public static final short RK_IEEE_NUMBER_TIMES_100
public static final short RK_INTEGER
public static final short RK_INTEGER_TIMES_100
private int field_1_row
private short field_2_col
private short field_3_xf_index
private int field_4_rk_number
public RKRecord()
public RKRecord(RecordInputStream in)
in - the RecordInputstream to read the record fromprotected void validateSid(short id)
RecordvalidateSid in class Recordid - alleged id for this recordprotected void fillFields(RecordInputStream in)
RecordfillFields in class Recordin - the RecordInputstream to read the record frompublic int getRow()
CellValueRecordInterfacegetRow in interface CellValueRecordInterfacepublic short getColumn()
CellValueRecordInterfacegetColumn in interface CellValueRecordInterfacepublic short getXFIndex()
getXFIndex in interface CellValueRecordInterfacepublic int getRKField()
public short getRKType()
public double getRKNumber()
The mechanism for determining the value is dependent on the two low order bits of the raw number. If bit 1 is set, the number is an integer and can be cast directly as a double, otherwise, it's apparently the exponent and mantissa of a double (and the remaining low-order bits of the double's mantissa are 0's).
If bit 0 is set, the result of the conversion to a double is divided by 100; otherwise, the value is left alone.
[insert picture of Screwy Squirrel in full Napoleonic regalia]
public String toString()
Recordpublic int serialize(int offset,
byte[] data)
Recordpublic static void main(String[] ignored_args)
Normally I'd do this in a junit test, but let's face it -- once this algorithm has been tested and it works, we are never ever going to change it. This is driven by the Faceless Enemy's minions, who dare not change the algorithm out from under us.
ignored_args - command line arguments, which we blithely
ignorepublic short getSid()
Recordpublic boolean isBefore(CellValueRecordInterface i)
CellValueRecordInterfaceisBefore in interface CellValueRecordInterfacei - another cell interface record to comparepublic boolean isAfter(CellValueRecordInterface i)
CellValueRecordInterfaceisAfter in interface CellValueRecordInterfacei - record to comparepublic boolean isEqual(CellValueRecordInterface i)
CellValueRecordInterfaceisEqual in interface CellValueRecordInterfacei - record to comparepublic boolean isInValueSection()
RecordisInValueSection in class Recordpublic boolean isValue()
Recordpublic void setColumn(short col)
CellValueRecordInterfacesetColumn in interface CellValueRecordInterfacecol - the column this cell definespublic void setRow(int row)
CellValueRecordInterfacesetRow in interface CellValueRecordInterfacerow - the row this cell occurs withinpublic void setXFIndex(short xf)
setXFIndex in interface CellValueRecordInterfacepublic Object clone()
clone in interface CellValueRecordInterfaceclone in class RecordCopyright © 2016 Open Microscopy Environment