FileDocCategorySizeDatePackage
NumberRecord.javaAPI DocApache Poi 3.0.18312Mon Jan 01 12:39:40 GMT 2007org.apache.poi.hssf.record

NumberRecord

public class NumberRecord extends Record implements Comparable, CellValueRecordInterface
Contains a numeric cell value.

REFERENCE: PG 334 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)

author
Andrew C. Oliver (acoliver at apache dot org)
author
Jason Height (jheight at chariot dot net dot au)
version
2.0-pre

Fields Summary
public static final short
sid
private int
field_1_row
private short
field_2_col
private short
field_3_xf
private double
field_4_value
Constructors Summary
public NumberRecord()
Creates new NumberRecord


        
     
    
    
public NumberRecord(RecordInputStream in)
Constructs a Number record and sets its fields appropriately.

param
id id must be 0x203 or an exception will be throw upon validation
param
size the size of the data area of the record
param
data data of the record (should not contain sid/len)

        super(in);
    
Methods Summary
public java.lang.Objectclone()

      NumberRecord rec = new NumberRecord();
      rec.field_1_row = field_1_row;
      rec.field_2_col = field_2_col;
      rec.field_3_xf = field_3_xf;
      rec.field_4_value = field_4_value;
      return rec;
    
public intcompareTo(java.lang.Object obj)

        CellValueRecordInterface loc = ( CellValueRecordInterface ) obj;

        if ((this.getRow() == loc.getRow())
                && (this.getColumn() == loc.getColumn()))
        {
            return 0;
        }
        if (this.getRow() < loc.getRow())
        {
            return -1;
        }
        if (this.getRow() > loc.getRow())
        {
            return 1;
        }
        if (this.getColumn() < loc.getColumn())
        {
            return -1;
        }
        if (this.getColumn() > loc.getColumn())
        {
            return 1;
        }
        return -1;
    
public booleanequals(java.lang.Object obj)

        if (!(obj instanceof CellValueRecordInterface))
        {
            return false;
        }
        CellValueRecordInterface loc = ( CellValueRecordInterface ) obj;

        if ((this.getRow() == loc.getRow())
                && (this.getColumn() == loc.getColumn()))
        {
            return true;
        }
        return false;
    
protected voidfillFields(org.apache.poi.hssf.record.RecordInputStream in)
called by the constructor, should set class level fields. Should throw runtime exception for bad/icomplete data.

param
data raw data
param
size size of data

        //field_1_row   = LittleEndian.getShort(data, 0 + offset);
        field_1_row   = in.readUShort();
        field_2_col   = in.readShort();
        field_3_xf    = in.readShort();
        field_4_value = in.readDouble();
    
public shortgetColumn()

        return field_2_col;
    
public intgetRecordSize()

        return 18;
    
public intgetRow()

        return field_1_row;
    
public shortgetSid()

        return sid;
    
public doublegetValue()
get the value for the cell

return
double representing the value

        return field_4_value;
    
public shortgetXFIndex()
get the index to the ExtendedFormat

see
org.apache.poi.hssf.record.ExtendedFormatRecord
return
index to the XF record

        return field_3_xf;
    
public booleanisAfter(org.apache.poi.hssf.record.CellValueRecordInterface i)

        if (this.getRow() < i.getRow())
        {
            return false;
        }
        if ((this.getRow() == i.getRow())
                && (this.getColumn() < i.getColumn()))
        {
            return false;
        }
        if ((this.getRow() == i.getRow())
                && (this.getColumn() == i.getColumn()))
        {
            return false;
        }
        return true;
    
public booleanisBefore(org.apache.poi.hssf.record.CellValueRecordInterface i)

        if (this.getRow() > i.getRow())
        {
            return false;
        }
        if ((this.getRow() == i.getRow())
                && (this.getColumn() > i.getColumn()))
        {
            return false;
        }
        if ((this.getRow() == i.getRow())
                && (this.getColumn() == i.getColumn()))
        {
            return false;
        }
        return true;
    
public booleanisEqual(org.apache.poi.hssf.record.CellValueRecordInterface i)

        return ((this.getRow() == i.getRow())
                && (this.getColumn() == i.getColumn()));
    
public booleanisInValueSection()

        return true;
    
public booleanisValue()

        return true;
    
public intserialize(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.

return
byte array containing instance data

        LittleEndian.putShort(data, 0 + offset, sid);
        LittleEndian.putShort(data, 2 + offset, ( short ) 14);
        //LittleEndian.putShort(data, 4 + offset, getRow());
        LittleEndian.putShort(data, 4 + offset, ( short ) getRow());
        LittleEndian.putShort(data, 6 + offset, getColumn());
        LittleEndian.putShort(data, 8 + offset, getXFIndex());
        LittleEndian.putDouble(data, 10 + offset, getValue());
        return getRecordSize();
    
public voidsetColumn(short col)

        field_2_col = col;
    
public voidsetRow(int row)

        field_1_row = row;
    
public voidsetValue(double value)
set the value for the cell

param
value double representing the value

        field_4_value = value;
    
public voidsetXFIndex(short xf)
set the index to the ExtendedFormat

see
org.apache.poi.hssf.record.ExtendedFormatRecord
param
xf index to the XF record

        field_3_xf = xf;
    
public java.lang.StringtoString()

        StringBuffer buffer = new StringBuffer();

        buffer.append("[NUMBER]\n");
        buffer.append("    .row            = ")
            .append(Integer.toHexString(getRow())).append("\n");
        buffer.append("    .col            = ")
            .append(Integer.toHexString(getColumn())).append("\n");
        buffer.append("    .xfindex        = ")
            .append(Integer.toHexString(getXFIndex())).append("\n");
        buffer.append("    .value          = ").append(getValue())
            .append("\n");
        buffer.append("[/NUMBER]\n");
        return buffer.toString();
    
protected voidvalidateSid(short id)
called by constructor, should throw runtime exception in the event of a record passed with a differing ID.

param
id alleged id for this record

        if (id != sid)
        {
            throw new RecordFormatException("NOT A Number RECORD");
        }