whitespace (tabs to spaces); +props svn:eol-style=native

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1747839 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Javen O'Neal 2016-06-11 02:12:43 +00:00
parent e3beb3abdd
commit 69ded5b7b0
1 changed files with 51 additions and 51 deletions

View File

@ -30,57 +30,57 @@ import org.apache.poi.ss.usermodel.Row;
*/
final class XSSFEvaluationSheet implements EvaluationSheet {
private final XSSFSheet _xs;
private Map<CellKey, EvaluationCell> _cellCache;
private final XSSFSheet _xs;
private Map<CellKey, EvaluationCell> _cellCache;
public XSSFEvaluationSheet(XSSFSheet sheet) {
_xs = sheet;
}
public XSSFEvaluationSheet(XSSFSheet sheet) {
_xs = sheet;
}
public XSSFSheet getXSSFSheet() {
return _xs;
}
public EvaluationCell getCell(int rowIndex, int columnIndex) {
// cache for performance: ~30% speedup due to caching
if (_cellCache == null) {
_cellCache = new HashMap<CellKey, EvaluationCell>(_xs.getLastRowNum()*3);
for (final Row row : _xs) {
final int rowNum = row.getRowNum();
for (final Cell cell : row) {
// cast is safe, the iterator is just defined using the interface
final CellKey key = new CellKey(rowNum, cell.getColumnIndex());
final EvaluationCell evalcell = new XSSFEvaluationCell((XSSFCell) cell, this);
_cellCache.put(key, evalcell);
}
}
}
return _cellCache.get(new CellKey(rowIndex, columnIndex));
}
private static class CellKey {
private final int _row;
private final int _col;
private final int _hash;
protected CellKey(int row, int col) {
_row = row;
_col = col;
_hash = (17 * 37 + row) * 37 + col;
}
@Override
public int hashCode() {
return _hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
// assumes other object is one of us, otherwise ClassCastException is thrown
final CellKey oKey = (CellKey) obj;
return _row == oKey._row && _col == oKey._col;
}
}
public XSSFSheet getXSSFSheet() {
return _xs;
}
public EvaluationCell getCell(int rowIndex, int columnIndex) {
// cache for performance: ~30% speedup due to caching
if (_cellCache == null) {
_cellCache = new HashMap<CellKey, EvaluationCell>(_xs.getLastRowNum()*3);
for (final Row row : _xs) {
final int rowNum = row.getRowNum();
for (final Cell cell : row) {
// cast is safe, the iterator is just defined using the interface
final CellKey key = new CellKey(rowNum, cell.getColumnIndex());
final EvaluationCell evalcell = new XSSFEvaluationCell((XSSFCell) cell, this);
_cellCache.put(key, evalcell);
}
}
}
return _cellCache.get(new CellKey(rowIndex, columnIndex));
}
private static class CellKey {
private final int _row;
private final int _col;
private final int _hash;
protected CellKey(int row, int col) {
_row = row;
_col = col;
_hash = (17 * 37 + row) * 37 + col;
}
@Override
public int hashCode() {
return _hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
// assumes other object is one of us, otherwise ClassCastException is thrown
final CellKey oKey = (CellKey) obj;
return _row == oKey._row && _col == oKey._col;
}
}
}