From 65868ec79aa5b89f6cbfbffc4bd999ff41567179 Mon Sep 17 00:00:00 2001 From: Josh Micich Date: Wed, 14 Jan 2009 00:22:00 +0000 Subject: [PATCH] resolved error constants in BoolErrRecord git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@734281 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hssf/record/BoolErrRecord.java | 363 +++++++++--------- 1 file changed, 177 insertions(+), 186 deletions(-) diff --git a/src/java/org/apache/poi/hssf/record/BoolErrRecord.java b/src/java/org/apache/poi/hssf/record/BoolErrRecord.java index 8813e2f76f..5b8f9186d7 100644 --- a/src/java/org/apache/poi/hssf/record/BoolErrRecord.java +++ b/src/java/org/apache/poi/hssf/record/BoolErrRecord.java @@ -17,6 +17,7 @@ package org.apache.poi.hssf.record; +import org.apache.poi.ss.usermodel.ErrorConstants; import org.apache.poi.util.HexDump; import org.apache.poi.util.LittleEndianOutput; @@ -25,192 +26,182 @@ import org.apache.poi.util.LittleEndianOutput; * 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 */ public final class BoolErrRecord extends StandardRecord implements CellValueRecordInterface { - public final static short sid = 0x0205; - 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; - - /** Creates new BoolErrRecord */ - public BoolErrRecord() - { - } - - /** - * @param in the RecordInputstream to read the record from - */ - public BoolErrRecord(RecordInputStream in) - { - //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 void setRow(int row) - { - field_1_row = row; - } - - public void setColumn(short col) - { - field_2_column = col; - } - - /** - * set the index to the ExtendedFormat - * @see org.apache.poi.hssf.record.ExtendedFormatRecord - * @param xf index to the XF record - */ - public void setXFIndex(short xf) - { - field_3_xf_index = xf; - } - - /** - * set the boolean value for the cell - * - * @param value representing the boolean value - */ - public void setValue(boolean value) - { - field_4_bBoolErr = value ? ( byte ) 1 - : ( byte ) 0; - field_5_fError = ( byte ) 0; - } - - /** - * 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 - */ - public void setValue(byte value) - { - 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 int getRow() - { - return field_1_row; - } - - public short getColumn() - { - return field_2_column; - } - - /** - * get the index to the ExtendedFormat - * @see org.apache.poi.hssf.record.ExtendedFormatRecord - * @return index to the XF record - */ - public short getXFIndex() - { - return field_3_xf_index; - } - - /** - * get the value for the cell - * - * @return boolean representing the boolean value - */ - public boolean getBooleanValue() - { - return (field_4_bBoolErr != 0); - } - - /** - * get the error value for the cell - * - * @return byte representing the error value - */ - public byte getErrorValue() - { - return field_4_bBoolErr; - } - - /** - * Indicates whether the call holds a boolean value - * - * @return boolean true if the cell holds a boolean value - */ - public boolean isBoolean() - { - return (field_5_fError == ( byte ) 0); - } - - /** - * manually indicate this is an error rather than a boolean - */ - public void setError(boolean val) { - field_5_fError = (byte) (val == false ? 0 : 1); - } - - /** - * Indicates whether the call holds an error value - * - * @return boolean true if the cell holds an error value - */ - - public boolean isError() - { - return field_5_fError != 0; - } - - public String toString() - { - StringBuffer sb = new StringBuffer(); - - sb.append("[BOOLERR]\n"); - sb.append(" .row = ").append(HexDump.shortToHex(getRow())).append("\n"); - sb.append(" .col = ").append(HexDump.shortToHex(getColumn())).append("\n"); - sb.append(" .xfindex= ").append(HexDump.shortToHex(getXFIndex())).append("\n"); - if (isBoolean()) { - sb.append(" .booleanValue = ").append(getBooleanValue()).append("\n"); - } else { - sb.append(" .errorValue = ").append(getErrorValue()).append("\n"); - } - sb.append("[/BOOLERR]\n"); - return sb.toString(); - } - - public void serialize(LittleEndianOutput out) { - out.writeShort(getRow()); - out.writeShort(getColumn()); - out.writeShort(getXFIndex()); - out.writeByte(field_4_bBoolErr); - out.writeByte(field_5_fError); - } - - protected int getDataSize() { - return 8; - } - - public short getSid() - { - return sid; - } - - public Object clone() { - 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 final static short sid = 0x0205; + 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; + + /** Creates new BoolErrRecord */ + public BoolErrRecord() { + + } + + /** + * @param in the RecordInputstream to read the record from + */ + public BoolErrRecord(RecordInputStream in) { + 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 void setRow(int row) { + field_1_row = row; + } + + public void setColumn(short col) { + field_2_column = col; + } + + /** + * set the index to the ExtendedFormat + * @see org.apache.poi.hssf.record.ExtendedFormatRecord + * @param xf index to the XF record + */ + public void setXFIndex(short xf) { + field_3_xf_index = xf; + } + + /** + * set the boolean value for the cell + * + * @param value representing the boolean value + */ + public void setValue(boolean value) { + field_4_bBoolErr = value ? ( byte ) 1 : ( byte ) 0; + field_5_fError = ( byte ) 0; + } + + /** + * 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 + */ + public void setValue(byte value) { + switch(value) { + case ErrorConstants.ERROR_NULL: + case ErrorConstants.ERROR_DIV_0: + case ErrorConstants.ERROR_VALUE: + case ErrorConstants.ERROR_REF: + case ErrorConstants.ERROR_NAME: + case ErrorConstants.ERROR_NUM: + case ErrorConstants.ERROR_NA: + field_4_bBoolErr = value; + field_5_fError = ( byte ) 1; + return; + } + throw new IllegalArgumentException("Error Value can only be 0,7,15,23,29,36 or 42. It cannot be "+value); + } + + public int getRow() { + return field_1_row; + } + + public short getColumn() { + return field_2_column; + } + + /** + * get the index to the ExtendedFormat + * @see org.apache.poi.hssf.record.ExtendedFormatRecord + * @return index to the XF record + */ + public short getXFIndex() { + return field_3_xf_index; + } + + /** + * get the value for the cell + * + * @return boolean representing the boolean value + */ + public boolean getBooleanValue() { + return (field_4_bBoolErr != 0); + } + + /** + * get the error value for the cell + * + * @return byte representing the error value + */ + public byte getErrorValue() { + return field_4_bBoolErr; + } + + /** + * Indicates whether the call holds a boolean value + * + * @return boolean true if the cell holds a boolean value + */ + public boolean isBoolean() { + return (field_5_fError == ( byte ) 0); + } + + /** + * manually indicate this is an error rather than a boolean + */ + public void setError(boolean val) { + field_5_fError = (byte) (val == false ? 0 : 1); + } + + /** + * Indicates whether the call holds an error value + * + * @return boolean true if the cell holds an error value + */ + + public boolean isError() { + return field_5_fError != 0; + } + + public String toString() { + StringBuffer sb = new StringBuffer(); + + sb.append("[BOOLERR]\n"); + sb.append(" .row = ").append(HexDump.shortToHex(getRow())).append("\n"); + sb.append(" .col = ").append(HexDump.shortToHex(getColumn())).append("\n"); + sb.append(" .xfindex= ").append(HexDump.shortToHex(getXFIndex())).append("\n"); + if (isBoolean()) { + sb.append(" .booleanValue = ").append(getBooleanValue()).append("\n"); + } else { + sb.append(" .errorValue = ").append(getErrorValue()).append("\n"); + } + sb.append("[/BOOLERR]\n"); + return sb.toString(); + } + + public void serialize(LittleEndianOutput out) { + out.writeShort(getRow()); + out.writeShort(getColumn()); + out.writeShort(getXFIndex()); + out.writeByte(field_4_bBoolErr); + out.writeByte(field_5_fError); + } + + protected int getDataSize() { + return 8; + } + + public short getSid() + { + return sid; + } + + public Object clone() { + 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; + } } -- 2.39.5