]> source.dussan.org Git - poi.git/commitdiff
Fixing bug 46551 - spelling mistakes in xSSFCell.checkBounds(). Also fixed 0/1-based...
authorJosh Micich <josh@apache.org>
Fri, 16 Jan 2009 17:31:29 +0000 (17:31 +0000)
committerJosh Micich <josh@apache.org>
Fri, 16 Jan 2009 17:31:29 +0000 (17:31 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@735061 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/usermodel/HSSFCell.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java

index 1d2cac67928e1ffede5b544034acdd686f66153d..03c514b47b6e0bd062a00a42161f01d589a4946d 100644 (file)
@@ -88,6 +88,13 @@ public class HSSFCell implements Cell {
     /** Error   Cell type (5) @see #setCellType(int) @see #getCellType() */
     public final static int CELL_TYPE_ERROR   = 5;
 
+    private static final String FILE_FORMAT_NAME  = "BIFF8";
+    /**
+     * The maximum  number of columns in BIFF8
+     */
+    private static final int LAST_COLUMN_NUMBER  = 255; // 2^8 - 1
+    private static final String LAST_COLUMN_NAME  = "IV";
+    
     public final static short        ENCODING_UNCHANGED          = -1;
     public final static short        ENCODING_COMPRESSED_UNICODE = 0;
     public final static short        ENCODING_UTF_16             = 1;
@@ -915,14 +922,12 @@ public class HSSFCell implements Cell {
     /**
      * @throws RuntimeException if the bounds are exceeded.
      */
-    private void checkBounds(int cellNum) {
-      if (cellNum > 255) {
-          throw new IllegalArgumentException("You cannot have more than 255 columns "+
-                    "in a given row (IV).  Because Excel can't handle it");
-      }
-      else if (cellNum < 0) {
-          throw new IllegalArgumentException("You cannot reference columns with an index of less then 0.");
-      }
+    private static void checkBounds(int cellIndex) {
+        if (cellIndex < 0 || cellIndex > LAST_COLUMN_NUMBER) {
+            throw new IllegalArgumentException("Invalid column index (" + cellIndex 
+                    + ").  Allowable column range for " + FILE_FORMAT_NAME + " is (0.." 
+                    + LAST_COLUMN_NUMBER + ") or ('A'..'" + LAST_COLUMN_NAME + "')");
+        }
     }
 
     /**
index 0d89bfee2b394bf59d52eb9ec891f811bc0e64db..0fdfa2c69ea1a43e164556861715e1c6ea8ce10a 100644 (file)
@@ -32,7 +32,6 @@ import org.apache.poi.ss.formula.FormulaType;
 import org.apache.poi.ss.formula.FormulaRenderer;
 import org.apache.poi.xssf.model.StylesTable;
 import org.apache.poi.xssf.model.SharedStringsTable;
-import org.apache.poi.POIXMLException;
 import org.apache.poi.util.POILogger;
 import org.apache.poi.util.POILogFactory;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
@@ -57,10 +56,13 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellFormulaType;
 public final class XSSFCell implements Cell {
     private static POILogger logger = POILogFactory.getLogger(XSSFCell.class);
 
+    private static final String FILE_FORMAT_NAME  = "BIFF12";
     /**
      * The maximum  number of columns in SpreadsheetML
      */
-    public static final int MAX_COLUMN_NUMBER  = 16384; //2^14
+    public static final int MAX_COLUMN_NUMBER  = 16384; // 2^14
+    private static final int LAST_COLUMN_NUMBER  = MAX_COLUMN_NUMBER-1;
+    private static final String LAST_COLUMN_NAME  = "XFD";
 
     private static final String FALSE_AS_STRING = "0";
     private static final String TRUE_AS_STRING  = "1";
@@ -762,12 +764,11 @@ public final class XSSFCell implements Cell {
     /**
      * @throws RuntimeException if the bounds are exceeded.
      */
-    private static void checkBounds(int cellNum) {
-        if (cellNum > MAX_COLUMN_NUMBER) {
-            throw new IllegalArgumentException("You cannot have more than "+MAX_COLUMN_NUMBER+" columns " +
-                    "in a given row because Excel can't handle it");
-        } else if (cellNum < 0) {
-            throw new IllegalArgumentException("You cannot reference columns with an index of less then 0.");
+    private static void checkBounds(int cellIndex) {
+        if (cellIndex < 0 || cellIndex > LAST_COLUMN_NUMBER) {
+            throw new IllegalArgumentException("Invalid column index (" + cellIndex 
+                    + ").  Allowable column range for " + FILE_FORMAT_NAME + " is (0.." 
+                    + LAST_COLUMN_NUMBER + ") or ('A'..'" + LAST_COLUMN_NAME + "')");
         }
     }
 
index 9de3ea46cb4eaa4f1756131751b34a06db157a10..1011ecaf32a39453a4b01aae7a87ab7ab1873c92 100644 (file)
@@ -21,7 +21,6 @@ import java.util.*;
 
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.POIXMLException;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow;
 
@@ -30,6 +29,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow;
  */
 public class XSSFRow implements Row, Comparable<XSSFRow> {
 
+    private static final String FILE_FORMAT_NAME  = "BIFF12";
     /**
      * The maximum  number of rows in SpreadsheetML
      */
@@ -317,15 +317,16 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
     /**
      * Set the row number of this row.
      *
-     * @param rowNum  the row number (0-based)
+     * @param rowIndex  the row number (0-based)
      * @throws IllegalArgumentException if rowNum < 0 or greater than {@link #MAX_ROW_NUMBER}
      */
-    public void setRowNum(int rowNum) {
-        if(rowNum < 0) throw new IllegalArgumentException("Row number must be >= 0");
-        if (rowNum > MAX_ROW_NUMBER)
-            throw new IllegalArgumentException("You cannot have more than "+MAX_ROW_NUMBER+" rows ");
-
-        this.row.setR(rowNum + 1);
+    public void setRowNum(int rowIndex) {
+        if (rowIndex < 0 || rowIndex >= MAX_ROW_NUMBER) {
+            throw new IllegalArgumentException("Invalid row index (" + rowIndex 
+                    + ").  Allowable row range for " + FILE_FORMAT_NAME 
+                    + " is (0.." + (MAX_ROW_NUMBER-1) + ")");
+        }
+        row.setR(rowIndex + 1);
     }
 
     /**
index a5114b5bf45aab37ee09d76ec0c9239991f6ed52..54f23f8d4b3dc3d6989abf18ff00454e6356e02f 100644 (file)
@@ -316,25 +316,25 @@ public final class TestXSSFCell extends TestCase {
         cell = row.createCell(100);
         assertEquals("CW101", cell.getCTCell().getR());
 
-        row = sheet.createRow(XSSFRow.MAX_ROW_NUMBER);
+        row = sheet.createRow(XSSFRow.MAX_ROW_NUMBER-1);
         cell = row.createCell(100);
-        assertEquals("CW1048577", cell.getCTCell().getR());
+        assertEquals("CW1048576", cell.getCTCell().getR());
 
-        row = sheet.createRow(XSSFRow.MAX_ROW_NUMBER);
-        cell = row.createCell(XSSFCell.MAX_COLUMN_NUMBER);
-        assertEquals("XFE1048577", cell.getCTCell().getR());
+        row = sheet.createRow(XSSFRow.MAX_ROW_NUMBER-1);
+        cell = row.createCell(XSSFCell.MAX_COLUMN_NUMBER-1);
+        assertEquals("XFD1048576", cell.getCTCell().getR());
 
         try {
-            sheet.createRow(XSSFRow.MAX_ROW_NUMBER + 1);
-            fail("expecting exception when rownum > XSSFRow.MAX_ROW_NUMBER");
+            sheet.createRow(XSSFRow.MAX_ROW_NUMBER);
+            fail("expecting exception when rownum >= XSSFRow.MAX_ROW_NUMBER");
         } catch(IllegalArgumentException e){
             ;
         }
 
+        row = sheet.createRow(100);
         try {
-            row = sheet.createRow(100);
-            row.createCell(XSSFCell.MAX_COLUMN_NUMBER + 1);
-            fail("expecting exception when columnIndex > XSSFCell.MAX_COLUMN_NUMBER");
+            row.createCell(XSSFCell.MAX_COLUMN_NUMBER);
+            fail("expecting exception when columnIndex >= XSSFCell.MAX_COLUMN_NUMBER");
         } catch(IllegalArgumentException e){
             ;
         }