]> source.dussan.org Git - poi.git/commitdiff
resolved error constants in BoolErrRecord
authorJosh Micich <josh@apache.org>
Wed, 14 Jan 2009 00:22:00 +0000 (00:22 +0000)
committerJosh Micich <josh@apache.org>
Wed, 14 Jan 2009 00:22:00 +0000 (00:22 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@734281 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/BoolErrRecord.java

index 8813e2f76f2f774f1aa61e32a3b3e25c3c07eeb7..5b8f9186d787468d64c5a9e82a222a8681b3c1b1 100644 (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;
-
-    /** 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;
+       }
 }