poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j...@apache.org
Subject svn commit: r735061 - in /poi/trunk/src: java/org/apache/poi/hssf/usermodel/ ooxml/java/org/apache/poi/xssf/usermodel/ ooxml/testcases/org/apache/poi/xssf/usermodel/
Date Fri, 16 Jan 2009 17:31:30 GMT
Author: josh
Date: Fri Jan 16 09:31:29 2009
New Revision: 735061

URL: http://svn.apache.org/viewvc?rev=735061&view=rev
Log:
Fixing bug 46551 - spelling mistakes in xSSFCell.checkBounds().  Also fixed 0/1-based index
error for cell range checks in XSSF.

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

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java?rev=735061&r1=735060&r2=735061&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java Fri Jan 16 09:31:29 2009
@@ -88,6 +88,13 @@
     /** 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 @@
     /**
      * @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 + "')");
+        }
     }
 
     /**

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java?rev=735061&r1=735060&r2=735061&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java Fri Jan 16 09:31:29
2009
@@ -32,7 +32,6 @@
 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 @@
 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 @@
     /**
      * @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 + "')");
         }
     }
 

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java?rev=735061&r1=735060&r2=735061&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java Fri Jan 16 09:31:29
2009
@@ -21,7 +21,6 @@
 
 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 @@
  */
 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 @@
     /**
      * 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);
     }
 
     /**

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java?rev=735061&r1=735060&r2=735061&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java Fri Jan
16 09:31:29 2009
@@ -316,25 +316,25 @@
         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){
             ;
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org


Mime
View raw message