From 05558941505e34e2cb3508197816edfc9d8d7ef3 Mon Sep 17 00:00:00 2001
From: Javen O'Neal
Date: Mon, 30 Nov 2015 04:43:32 +0000
Subject: [PATCH] add @Override and @NotImplemented annotations to SXSSFCell,
update javadocs
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1717164 13f79535-47bb-0310-9956-ffa450edef68
---
.../apache/poi/xssf/streaming/SXSSFCell.java | 90 ++++++++++++++-----
1 file changed, 67 insertions(+), 23 deletions(-)
diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java
index e4dd721dab..6a4cba4c7c 100644
--- a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java
+++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java
@@ -36,6 +36,7 @@ import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.util.LocaleUtil;
+import org.apache.poi.util.NotImplemented;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
import org.apache.poi.xssf.usermodel.XSSFHyperlink;
@@ -45,12 +46,12 @@ import org.apache.poi.xssf.usermodel.XSSFRichTextString;
* Streaming version of XSSFRow implementing the "BigGridDemo" strategy.
*/
public class SXSSFCell implements Cell {
- private static POILogger logger = POILogFactory.getLogger(SXSSFCell.class);
+ private static final POILogger logger = POILogFactory.getLogger(SXSSFCell.class);
- SXSSFRow _row;
- Value _value;
- CellStyle _style;
- Property _firstProperty;
+ private final SXSSFRow _row;
+ private Value _value;
+ private CellStyle _style;
+ private Property _firstProperty;
public SXSSFCell(SXSSFRow row,int cellType)
{
@@ -65,6 +66,7 @@ public class SXSSFCell implements Cell {
*
* @return zero-based column index of a column in a sheet.
*/
+ @Override
public int getColumnIndex()
{
return _row.getCellIndex(this);
@@ -75,6 +77,7 @@ public class SXSSFCell implements Cell {
*
* @return zero-based row index of a row in the sheet that contains this cell
*/
+ @Override
public int getRowIndex()
{
return _row.getRowNum();
@@ -85,6 +88,7 @@ public class SXSSFCell implements Cell {
*
* @return the sheet this cell belongs to
*/
+ @Override
public SXSSFSheet getSheet()
{
return _row.getSheet();
@@ -95,10 +99,11 @@ public class SXSSFCell implements Cell {
*
* @return the Row that owns this cell
*/
- public Row getRow()
- {
- return _row;
- }
+ @Override
+ public Row getRow()
+ {
+ return _row;
+ }
/**
* Set the cells type (numeric, formula or string)
@@ -111,6 +116,7 @@ public class SXSSFCell implements Cell {
* @see #CELL_TYPE_BOOLEAN
* @see #CELL_TYPE_ERROR
*/
+ @Override
public void setCellType(int cellType)
{
ensureType(cellType);
@@ -127,6 +133,7 @@ public class SXSSFCell implements Cell {
* @see Cell#CELL_TYPE_BOOLEAN
* @see Cell#CELL_TYPE_ERROR
*/
+ @Override
public int getCellType()
{
return _value.getType();
@@ -138,6 +145,7 @@ public class SXSSFCell implements Cell {
* {@link #CELL_TYPE_BOOLEAN}, {@link #CELL_TYPE_ERROR}) depending
* on the cached value of the formula
*/
+ @Override
public int getCachedFormulaResultType()
{
if (_value.getType() != CELL_TYPE_FORMULA) {
@@ -154,6 +162,7 @@ public class SXSSFCell implements Cell {
* precalculated value, for numerics we'll set its value. For other types we
* will change the cell to a numeric cell and set its value.
*/
+ @Override
public void setCellValue(double value)
{
if(Double.isInfinite(value)) {
@@ -186,6 +195,7 @@ public class SXSSFCell implements Cell {
* precalculated value, for numerics we'll set its value. For other types we
* will change the cell to a numerics cell and set its value.
*/
+ @Override
public void setCellValue(Date value) {
boolean date1904 = getSheet().getWorkbook().isDate1904();
setCellValue(DateUtil.getExcelDate(value, date1904));
@@ -207,6 +217,7 @@ public class SXSSFCell implements Cell {
* precalculated value, for numerics we'll set its value. For othertypes we
* will change the cell to a numeric cell and set its value.
*/
+ @Override
public void setCellValue(Calendar value) {
boolean date1904 = getSheet().getWorkbook().isDate1904();
setCellValue( DateUtil.getExcelDate(value, date1904 ));
@@ -220,6 +231,7 @@ public class SXSSFCell implements Cell {
* change the cell to a string cell and set its value.
* If value is null then we will change the cell to a Blank cell.
*/
+ @Override
public void setCellValue(RichTextString value)
{
XSSFRichTextString xvalue = (XSSFRichTextString)value;
@@ -247,6 +259,7 @@ public class SXSSFCell implements Cell {
* change the cell to a string cell and set its value.
* If value is null then we will change the cell to a Blank cell.
*/
+ @Override
public void setCellValue(String value)
{
ensureTypeOrFormulaType(CELL_TYPE_STRING);
@@ -272,6 +285,7 @@ public class SXSSFCell implements Cell {
* If the argument is null
then the current formula is removed.
* @throws FormulaParseException if the formula has incorrect syntax or is otherwise invalid
*/
+ @Override
public void setCellFormula(String formula) throws FormulaParseException
{
if(formula == null) {
@@ -288,6 +302,7 @@ public class SXSSFCell implements Cell {
* @return a formula for the cell
* @throws IllegalStateException if the cell type returned by {@link #getCellType()} is not CELL_TYPE_FORMULA
*/
+ @Override
public String getCellFormula()
{
if(_value.getType()!=CELL_TYPE_FORMULA)
@@ -306,6 +321,7 @@ public class SXSSFCell implements Cell {
* @exception NumberFormatException if the cell value isn't a parsable double
.
* @see org.apache.poi.ss.usermodel.DataFormatter for turning this number into a string similar to that which Excel would render this number as.
*/
+ @Override
public double getNumericCellValue()
{
int cellType = getCellType();
@@ -337,6 +353,7 @@ public class SXSSFCell implements Cell {
* @exception NumberFormatException if the cell value isn't a parsable double
.
* @see org.apache.poi.ss.usermodel.DataFormatter for formatting this date into a string similar to how excel does.
*/
+ @Override
public Date getDateCellValue()
{
int cellType = getCellType();
@@ -358,6 +375,7 @@ public class SXSSFCell implements Cell {
*
* @return the value of the cell as a XSSFRichTextString
*/
+ @Override
public RichTextString getRichStringCellValue()
{
int cellType = getCellType();
@@ -382,6 +400,7 @@ public class SXSSFCell implements Cell {
*
* @return the value of the cell as a string
*/
+ @Override
public String getStringCellValue()
{
int cellType = getCellType();
@@ -415,6 +434,7 @@ public class SXSSFCell implements Cell {
* precalculated value, for booleans we'll set its value. For other types we
* will change the cell to a boolean cell and set its value.
*/
+ @Override
public void setCellValue(boolean value)
{
ensureTypeOrFormulaType(CELL_TYPE_BOOLEAN);
@@ -433,6 +453,7 @@ public class SXSSFCell implements Cell {
* cell and set its value.
* @see org.apache.poi.ss.usermodel.FormulaError
*/
+ @Override
public void setCellErrorValue(byte value)
{
ensureType(CELL_TYPE_ERROR);
@@ -451,6 +472,7 @@ public class SXSSFCell implements Cell {
* @throws IllegalStateException if the cell type returned by {@link #getCellType()}
* is not CELL_TYPE_BOOLEAN, CELL_TYPE_BLANK or CELL_TYPE_FORMULA
*/
+ @Override
public boolean getBooleanCellValue()
{
int cellType = getCellType();
@@ -485,6 +507,7 @@ public class SXSSFCell implements Cell {
* @throws IllegalStateException if the cell type returned by {@link #getCellType()} isn't CELL_TYPE_ERROR
* @see org.apache.poi.ss.usermodel.FormulaError for error codes
*/
+ @Override
public byte getErrorCellValue()
{
int cellType = getCellType();
@@ -516,6 +539,7 @@ public class SXSSFCell implements Cell {
* If the value is null then the style information is removed causing the cell to used the default workbook style.
* @see org.apache.poi.ss.usermodel.Workbook#createCellStyle()
*/
+ @Override
public void setCellStyle(CellStyle style)
{
_style=style;
@@ -542,9 +566,12 @@ public class SXSSFCell implements Cell {
/**
* Sets this cell as the active cell for the worksheet
*/
+ @NotImplemented
+ @Override
public void setAsActiveCell()
{
-//TODO: What needs to be done here? Is there a "the active cell" at the sheet or even the workbook level?
+ throw new RuntimeException("NotImplemented");
+ //TODO: What needs to be done here? Is there a "the active cell" at the sheet or even the workbook level?
//getRow().setAsActiveCell(this);
}
@@ -553,6 +580,7 @@ public class SXSSFCell implements Cell {
*
* @param comment comment associated with this cell
*/
+ @Override
public void setCellComment(Comment comment)
{
setProperty(Property.COMMENT,comment);
@@ -563,6 +591,7 @@ public class SXSSFCell implements Cell {
*
* @return comment associated with this cell or null
if not found
*/
+ @Override
public Comment getCellComment()
{
return (Comment)getPropertyValue(Property.COMMENT);
@@ -571,6 +600,7 @@ public class SXSSFCell implements Cell {
/**
* Removes the comment for this cell, if there is one.
*/
+ @Override
public void removeCellComment()
{
removeProperty(Property.COMMENT);
@@ -613,6 +643,7 @@ public class SXSSFCell implements Cell {
/**
* Removes the hyperlink for this cell, if there is one.
*/
+ @Override
public void removeHyperlink()
{
removeProperty(Property.HYPERLINK);
@@ -625,7 +656,8 @@ public class SXSSFCell implements Cell {
*
* @return range of the array formula group that the cell belongs to.
*/
-//TODO: What is this?
+// TODO: What is this?
+ @NotImplemented
public CellRangeAddress getArrayFormulaRange()
{
return null;
@@ -635,6 +667,7 @@ public class SXSSFCell implements Cell {
* @return true
if this cell is part of group of cells having a common array formula.
*/
//TODO: What is this?
+ @NotImplemented
public boolean isPartOfArrayFormulaGroup()
{
return false;
@@ -674,7 +707,7 @@ public class SXSSFCell implements Cell {
}
}
- void removeProperty(int type)
+ /*package*/ void removeProperty(int type)
{
Property current=_firstProperty;
Property previous=null;
@@ -695,7 +728,7 @@ public class SXSSFCell implements Cell {
}
}
}
- void setProperty(int type,Object value)
+ /*package*/ void setProperty(int type,Object value)
{
Property current=_firstProperty;
Property previous=null;
@@ -733,40 +766,43 @@ public class SXSSFCell implements Cell {
}
}
}
- Object getPropertyValue(int type)
+ /*package*/ Object getPropertyValue(int type)
{
return getPropertyValue(type,null);
}
- Object getPropertyValue(int type,String defaultValue)
+ /*package*/ Object getPropertyValue(int type,String defaultValue)
{
Property current=_firstProperty;
while(current!=null&¤t.getType()!=type) current=current._next;
return current==null?defaultValue:current.getValue();
}
- void ensurePlainStringType()
+ /*package*/ void ensurePlainStringType()
{
if(_value.getType()!=CELL_TYPE_STRING
||((StringValue)_value).isRichText())
_value=new PlainStringValue();
}
- void ensureRichTextStringType()
+ /*package*/ void ensureRichTextStringType()
{
if(_value.getType()!=CELL_TYPE_STRING
||!((StringValue)_value).isRichText())
_value=new RichTextValue();
}
- void ensureType(int type)
+ /*package*/ void ensureType(int type)
{
if(_value.getType()!=type)
setType(type);
}
- void ensureFormulaType(int type)
+ /*package*/ void ensureFormulaType(int type)
{
if(_value.getType()!=CELL_TYPE_FORMULA
||((FormulaValue)_value).getFormulaType()!=type)
setFormulaType(type);
}
- void ensureTypeOrFormulaType(int type)
+ /*
+ * Sets the cell type to type if it is different
+ */
+ /*package*/ void ensureTypeOrFormulaType(int type)
{
if(_value.getType()==type)
{
@@ -783,7 +819,14 @@ public class SXSSFCell implements Cell {
}
setType(type);
}
- void setType(int type)
+ /**
+ * changes the cell type to the specified type, and resets the value to the default value for that type
+ * If cell type is the same as specified type, this will reset the value to the default value for that type
+ *
+ * @param type the cell type to set
+ * @throws IllegalArgumentException if type is not a recognized type
+ */
+ /*package*/ void setType(int type)
{
switch(type)
{
@@ -835,7 +878,7 @@ public class SXSSFCell implements Cell {
}
}
}
- void setFormulaType(int type)
+ /*package*/ void setFormulaType(int type)
{
switch(type)
{
@@ -866,7 +909,8 @@ public class SXSSFCell implements Cell {
}
}
//TODO: implement this correctly
- int computeTypeFromFormula(String formula)
+ @NotImplemented
+ /*package*/ int computeTypeFromFormula(String formula)
{
return CELL_TYPE_NUMERIC;
}
--
2.39.5