resolved error constants in BoolErrRecord

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@734281 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Josh Micich 2009-01-14 00:22:00 +00:00
parent d4ec8ceb11
commit b280b299a0
1 changed files with 155 additions and 164 deletions

View File

@ -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)<P>
* @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;
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()
{
}
/** 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();
}
/**
* @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 setRow(int row) {
field_1_row = row;
}
public void setColumn(short col)
{
field_2_column = col;
}
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 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 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);
}
}
/**
* 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 int getRow() {
return field_1_row;
}
public short getColumn()
{
return field_2_column;
}
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 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 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;
}
/**
* 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);
}
/**
* 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);
}
/**
* 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
*/
/**
* 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 boolean isError() {
return field_5_fError != 0;
}
public String toString()
{
StringBuffer sb = new StringBuffer();
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();
}
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);
}
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;
}
protected int getDataSize() {
return 8;
}
public short getSid()
{
return sid;
}
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 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;
}
}