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 |
---|---|
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 |
---|---|
java.lang.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(java.lang.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!
|
java.lang.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, serialize
public 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
public RKRecord()
public RKRecord(RecordInputStream in)
in
- the RecordInputstream to read the record fromprotected void validateSid(short id)
Record
validateSid
in class Record
id
- alleged id for this recordprotected void fillFields(RecordInputStream in)
Record
fillFields
in class Record
in
- the RecordInputstream to read the record frompublic int getRow()
CellValueRecordInterface
getRow
in interface CellValueRecordInterface
public short getColumn()
CellValueRecordInterface
getColumn
in interface CellValueRecordInterface
public short getXFIndex()
getXFIndex
in interface CellValueRecordInterface
public 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 java.lang.String toString()
Record
public int serialize(int offset, byte[] data)
Record
public static void main(java.lang.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()
Record
public boolean isBefore(CellValueRecordInterface i)
CellValueRecordInterface
isBefore
in interface CellValueRecordInterface
i
- another cell interface record to comparepublic boolean isAfter(CellValueRecordInterface i)
CellValueRecordInterface
isAfter
in interface CellValueRecordInterface
i
- record to comparepublic boolean isEqual(CellValueRecordInterface i)
CellValueRecordInterface
isEqual
in interface CellValueRecordInterface
i
- record to comparepublic boolean isInValueSection()
Record
isInValueSection
in class Record
public boolean isValue()
Record
public void setColumn(short col)
CellValueRecordInterface
setColumn
in interface CellValueRecordInterface
col
- the column this cell definespublic void setRow(int row)
CellValueRecordInterface
setRow
in interface CellValueRecordInterface
row
- the row this cell occurs withinpublic void setXFIndex(short xf)
setXFIndex
in interface CellValueRecordInterface
public java.lang.Object clone()
clone
in interface CellValueRecordInterface
clone
in class Record
Copyright © 2014 Open Microscopy Environment