|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.poi.hssf.record.Record org.apache.poi.hssf.record.RKRecord
public class RKRecord
Title: RK Record Description: An internal 32 bit number with the two most significant bits storing the type. This is part of a bizarre scheme to save disk space and memory (gee look at all the other whole records that are in the file just "cause"..,far better to waste processor cycles on this then leave on of those "valuable" records out).
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
Field Summary | |
---|---|
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 Summary | |
---|---|
RKRecord()
|
|
RKRecord(RecordInputStream in)
Constructs a RK record and sets its fields appropriately. |
Method Summary | |
---|---|
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. |
Methods inherited from class org.apache.poi.hssf.record.Record |
---|
cloneViaReserialise, getRecordSize, serialize |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
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
Constructor Detail |
---|
public RKRecord()
public RKRecord(RecordInputStream in)
in
- the RecordInputstream to read the record fromMethod Detail |
---|
protected 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
toString
in class Record
public int serialize(int offset, byte[] data)
Record
serialize
in class Record
offset
- to begin writing atdata
- byte array containing instance data
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
getSid
in class Record
public boolean isBefore(CellValueRecordInterface i)
CellValueRecordInterface
isBefore
in interface CellValueRecordInterface
i
- another cell interface record to compare
public boolean isAfter(CellValueRecordInterface i)
CellValueRecordInterface
isAfter
in interface CellValueRecordInterface
i
- record to compare
public boolean isEqual(CellValueRecordInterface i)
CellValueRecordInterface
isEqual
in interface CellValueRecordInterface
i
- record to compare
public boolean isInValueSection()
Record
isInValueSection
in class Record
public boolean isValue()
Record
isValue
in class 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
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |