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

BoolErrRecord

public class BoolErrRecord extends Record implements Comparable, CellValueRecordInterface
Creates new BoolErrRecord.

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

author
Michael P. Harhen
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_column
private short
field_3_xf_index
private byte
field_4_bBoolErr
private byte
field_5_fError
Constructors Summary
public BoolErrRecord()
Creates new BoolErrRecord


        

     
    
    
public BoolErrRecord(RecordInputStream in)
Constructs a BoolErr record and sets its fields appropriately.

param
id id must be 0x205 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()

      BoolErrRecord rec = new BoolErrRecord();
      rec.field_1_row = field_1_row;
      rec.field_2_column = field_2_column;
      rec.field_3_xf_index = field_3_xf_index;
      rec.field_4_bBoolErr = field_4_bBoolErr;
      rec.field_5_fError = field_5_fError;
      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_column   = in.readShort();
        field_3_xf_index = in.readShort();
        field_4_bBoolErr = in.readByte();
        field_5_fError   = in.readByte();
    
public booleangetBooleanValue()
get the value for the cell

return
boolean representing the boolean value

        return (field_4_bBoolErr != 0);
    
public shortgetColumn()

        return field_2_column;
    
public bytegetErrorValue()
get the error value for the cell

return
byte representing the error value

        return field_4_bBoolErr;
    
public intgetRecordSize()

        return 12;
    
public intgetRow()

        return field_1_row;
    
public shortgetSid()

        return sid;
    
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_index;
    
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 booleanisBoolean()
Indicates whether the call holds a boolean value

return
boolean true if the cell holds a boolean value

        return (field_5_fError == ( byte ) 0);
    
public booleanisEqual(org.apache.poi.hssf.record.CellValueRecordInterface i)

        return ((this.getRow() == i.getRow())
                && (this.getColumn() == i.getColumn()));
    
public booleanisError()
Indicates whether the call holds an error value

return
boolean true if the cell holds an error value

        return (field_5_fError != ( byte ) 0);
    
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 ) 8);
        //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());
        data[ 10 + offset ] = field_4_bBoolErr;
        data[ 11 + offset ] = field_5_fError;
        return getRecordSize();
    
public voidsetColumn(short col)

        field_2_column = col;
    
public voidsetError(boolean val)
manually indicate this is an error rather than a boolean

        field_5_fError = (byte) (val == false ? 0 : 1);
    
public voidsetRow(int row)

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

param
value representing the boolean value

        field_4_bBoolErr = value ? ( byte ) 1
                                 : ( byte ) 0;
        field_5_fError   = ( byte ) 0;
    
public voidsetValue(byte value)
set the error value for the cell

param
value error representing the error value this value can only be 0,7,15,23,29,36 or 42 see bugzilla bug 16560 for an explanation

        if ( (value==0)||(value==7)||(value==15)||(value==23)||(value==29)||(value==36)||(value==42)) {
            field_4_bBoolErr = value;
            field_5_fError   = ( byte ) 1;
        } else {
            throw new RuntimeException("Error Value can only be 0,7,15,23,29,36 or 42. It cannot be "+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_index = xf;
    
public java.lang.StringtoString()

        StringBuffer buffer = new StringBuffer();

        buffer.append("[BOOLERR]\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");
        if (isBoolean())
        {
            buffer.append("    .booleanValue   = ").append(getBooleanValue())
                .append("\n");
        }
        else
        {
            buffer.append("    .errorValue     = ").append(getErrorValue())
                .append("\n");
        }
        buffer.append("[/BOOLERR]\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 != BoolErrRecord.sid)
        {
            throw new RecordFormatException("Not a valid BoolErrRecord");
        }