bug 59791: CellFormat#ultimateType(Cell) should return an integer for backwards compatibility (use ultimateTypeEnum for now for CellType enums); re-add SXSSFCell(SXSSFRow, int) for backwards compatibility

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751273 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Javen O'Neal 2016-07-04 13:09:30 +00:00
parent a6cd0dd6f4
commit 4f92e81892
3 changed files with 36 additions and 5 deletions

View 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();

View 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)
{

View 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: