]> source.dussan.org Git - poi.git/commitdiff
bug 59791: CellFormat#ultimateType(Cell) should return an integer for backwards compa...
authorJaven O'Neal <onealj@apache.org>
Mon, 4 Jul 2016 13:09:30 +0000 (13:09 +0000)
committerJaven O'Neal <onealj@apache.org>
Mon, 4 Jul 2016 13:09:30 +0000 (13:09 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751273 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/ss/format/CellFormat.java
src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java
src/ooxml/testcases/org/apache/poi/ss/format/TestCellFormatPart.java

index d284f46e2124414ea4745211a17bd83e9e480e98..30f0056238f3b1a6be90aab68cce084c42d8a94c 100644 (file)
@@ -35,6 +35,7 @@ import org.apache.poi.ss.usermodel.ConditionalFormattingRule;
 import org.apache.poi.ss.usermodel.DataFormatter;
 import org.apache.poi.ss.usermodel.DateUtil;
 import org.apache.poi.ss.util.DateFormatConverter;
+import org.apache.poi.util.Internal;
 
 /**
  * Format a value according to the standard Excel behavior.  This "standard" is
@@ -265,7 +266,7 @@ public class CellFormat {
      * @return The result, in a {@link CellFormatResult}.
      */
     public CellFormatResult apply(Cell c) {
-        switch (ultimateType(c)) {
+        switch (ultimateTypeEnum(c)) {
         case BLANK:
             return apply("");
         case BOOLEAN:
@@ -335,7 +336,7 @@ public class CellFormat {
      * @return The result, in a {@link CellFormatResult}.
      */
     public CellFormatResult apply(JLabel label, Cell c) {
-        switch (ultimateType(c)) {
+        switch (ultimateTypeEnum(c)) {
             case BLANK:
                 return apply(label, "");
             case BOOLEAN:
@@ -407,6 +408,23 @@ public class CellFormat {
         }
         
     }
+    
+    /**
+     * Returns the ultimate cell type, following the results of formulas.  If
+     * the cell is a {@link CellType#FORMULA}, this returns the result of
+     * {@link Cell#getCachedFormulaResultTypeEnum()}.  Otherwise this returns the
+     * result of {@link Cell#getCellTypeEnum()}.
+     * 
+     * Will return {@link CellType} in a future version of POI.
+     * For forwards compatibility, do not hard-code cell type literals in your code.
+     *
+     * @param cell The cell.
+     *
+     * @return The ultimate type of this cell.
+     */
+    public static int ultimateType(Cell cell) {
+        return ultimateTypeEnum(cell).getCode();
+    }
 
     /**
      * Returns the ultimate cell type, following the results of formulas.  If
@@ -417,8 +435,12 @@ public class CellFormat {
      * @param cell The cell.
      *
      * @return The ultimate type of this cell.
+     * @since POI 3.15 beta 3
+     * @deprecated POI 3.15 beta 3
+     * Will be deleted when we make the CellType enum transition. See bug 59791.
      */
-    public static CellType ultimateType(Cell cell) {
+    @Internal
+    public static CellType ultimateTypeEnum(Cell cell) {
         CellType type = cell.getCellTypeEnum();
         if (type == CellType.FORMULA)
             return cell.getCachedFormulaResultTypeEnum();
index e4bfff808bf94a74f5ea7780f6d4eebddceea877..040bec06c6352fa2132b29504d24b687378d0572 100644 (file)
@@ -56,6 +56,15 @@ public class SXSSFCell implements Cell {
     private Value _value;
     private CellStyle _style;
     private Property _firstProperty;
+    
+    /**
+     * @deprecated POI 3.15 beta 3.
+     * Will be deleted when we make the CellType enum transition. See bug 59791.
+     */
+    public SXSSFCell(SXSSFRow row, int cellType)
+    {
+        this(row, CellType.forInt((cellType)));
+    }
 
     public SXSSFCell(SXSSFRow row,CellType cellType)
     {
index ddb3e78b2ec1b3af3dfee630bea1ab82fb0058c4..fe8747b5a1909241dc224c230db0d19a79e650e9 100644 (file)
@@ -58,7 +58,7 @@ public class TestCellFormatPart extends CellFormatTestBase {
     public void testGeneralFormat() throws Exception {
         runFormatTests("GeneralFormatTests.xlsx", new CellValue() {
             public Object getValue(Cell cell) {
-                switch (CellFormat.ultimateType(cell)) {
+                switch (CellFormat.ultimateTypeEnum(cell)) {
                     case BOOLEAN:
                         return cell.getBooleanCellValue();
                     case NUMERIC:
@@ -126,7 +126,7 @@ public class TestCellFormatPart extends CellFormatTestBase {
     public void testTextFormat() throws Exception {
         runFormatTests("TextFormatTests.xlsx", new CellValue() {
             public Object getValue(Cell cell) {
-                switch(CellFormat.ultimateType(cell)) {
+                switch(CellFormat.ultimateTypeEnum(cell)) {
                     case BOOLEAN:
                         return cell.getBooleanCellValue();
                     default: