add @Override annotations to spreadsheet formula Evaluation classes

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751837 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Javen O'Neal 2016-07-07 22:27:32 +00:00
parent 9539c626a9
commit 38c052cca1
8 changed files with 85 additions and 8 deletions

View File

@ -34,6 +34,7 @@ final class HSSFEvaluationSheet implements EvaluationSheet {
public HSSFSheet getHSSFSheet() { public HSSFSheet getHSSFSheet() {
return _hs; return _hs;
} }
@Override
public EvaluationCell getCell(int rowIndex, int columnIndex) { public EvaluationCell getCell(int rowIndex, int columnIndex) {
HSSFRow row = _hs.getRow(rowIndex); HSSFRow row = _hs.getRow(rowIndex);
if (row == null) { if (row == null) {
@ -46,6 +47,7 @@ final class HSSFEvaluationSheet implements EvaluationSheet {
return new HSSFEvaluationCell(cell, this); return new HSSFEvaluationCell(cell, this);
} }
@Override
public void clearAllCachedResultValues() { public void clearAllCachedResultValues() {
// nothing to do // nothing to do
} }

View File

@ -64,6 +64,7 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
_iBook = book.getWorkbook(); _iBook = book.getWorkbook();
} }
@Override
public void clearAllCachedResultValues() { public void clearAllCachedResultValues() {
// nothing to do // nothing to do
} }
@ -73,18 +74,22 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
return _uBook.createName(); return _uBook.createName();
} }
@Override
public int getExternalSheetIndex(String sheetName) { public int getExternalSheetIndex(String sheetName) {
int sheetIndex = _uBook.getSheetIndex(sheetName); int sheetIndex = _uBook.getSheetIndex(sheetName);
return _iBook.checkExternSheet(sheetIndex); return _iBook.checkExternSheet(sheetIndex);
} }
@Override
public int getExternalSheetIndex(String workbookName, String sheetName) { public int getExternalSheetIndex(String workbookName, String sheetName) {
return _iBook.getExternalSheetIndex(workbookName, sheetName); return _iBook.getExternalSheetIndex(workbookName, sheetName);
} }
@Override
public Ptg get3DReferencePtg(CellReference cr, SheetIdentifier sheet) { public Ptg get3DReferencePtg(CellReference cr, SheetIdentifier sheet) {
int extIx = getSheetExtIx(sheet); int extIx = getSheetExtIx(sheet);
return new Ref3DPtg(cr, extIx); return new Ref3DPtg(cr, extIx);
} }
@Override
public Ptg get3DReferencePtg(AreaReference areaRef, SheetIdentifier sheet) { public Ptg get3DReferencePtg(AreaReference areaRef, SheetIdentifier sheet) {
int extIx = getSheetExtIx(sheet); int extIx = getSheetExtIx(sheet);
return new Area3DPtg(areaRef, extIx); return new Area3DPtg(areaRef, extIx);
@ -115,26 +120,33 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
return sheetIndex == -1 ? null : getName(name, -1); return sheetIndex == -1 ? null : getName(name, -1);
} }
@Override
public int getSheetIndex(EvaluationSheet evalSheet) { public int getSheetIndex(EvaluationSheet evalSheet) {
HSSFSheet sheet = ((HSSFEvaluationSheet)evalSheet).getHSSFSheet(); HSSFSheet sheet = ((HSSFEvaluationSheet)evalSheet).getHSSFSheet();
return _uBook.getSheetIndex(sheet); return _uBook.getSheetIndex(sheet);
} }
@Override
public int getSheetIndex(String sheetName) { public int getSheetIndex(String sheetName) {
return _uBook.getSheetIndex(sheetName); return _uBook.getSheetIndex(sheetName);
} }
@Override
public String getSheetName(int sheetIndex) { public String getSheetName(int sheetIndex) {
return _uBook.getSheetName(sheetIndex); return _uBook.getSheetName(sheetIndex);
} }
@Override
public EvaluationSheet getSheet(int sheetIndex) { public EvaluationSheet getSheet(int sheetIndex) {
// TODO Cache these evaluation sheets so they aren't re-generated on every getSheet call
return new HSSFEvaluationSheet(_uBook.getSheetAt(sheetIndex)); return new HSSFEvaluationSheet(_uBook.getSheetAt(sheetIndex));
} }
@Override
public int convertFromExternSheetIndex(int externSheetIndex) { public int convertFromExternSheetIndex(int externSheetIndex) {
// TODO Update this to expose first and last sheet indexes // TODO Update this to expose first and last sheet indexes
return _iBook.getFirstSheetIndexFromExternSheetIndex(externSheetIndex); return _iBook.getFirstSheetIndexFromExternSheetIndex(externSheetIndex);
} }
@Override
public ExternalSheet getExternalSheet(int externSheetIndex) { public ExternalSheet getExternalSheet(int externSheetIndex) {
ExternalSheet sheet = _iBook.getExternalSheet(externSheetIndex); ExternalSheet sheet = _iBook.getExternalSheet(externSheetIndex);
if (sheet == null) { if (sheet == null) {
@ -163,36 +175,52 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
} }
return sheet; return sheet;
} }
/**
* @throws IllegalStateException: XSSF-style external references are not supported for HSSF
*/
@Override
public ExternalSheet getExternalSheet(String firstSheetName, String lastSheetName, int externalWorkbookNumber) { public ExternalSheet getExternalSheet(String firstSheetName, String lastSheetName, int externalWorkbookNumber) {
throw new IllegalStateException("XSSF-style external references are not supported for HSSF"); throw new IllegalStateException("XSSF-style external references are not supported for HSSF");
} }
@Override
public ExternalName getExternalName(int externSheetIndex, int externNameIndex) { public ExternalName getExternalName(int externSheetIndex, int externNameIndex) {
return _iBook.getExternalName(externSheetIndex, externNameIndex); return _iBook.getExternalName(externSheetIndex, externNameIndex);
} }
/**
* @throws IllegalStateException: XSSF-style external names are not supported for HSSF
*/
@Override
public ExternalName getExternalName(String nameName, String sheetName, int externalWorkbookNumber) { public ExternalName getExternalName(String nameName, String sheetName, int externalWorkbookNumber) {
throw new IllegalStateException("XSSF-style external names are not supported for HSSF"); throw new IllegalStateException("XSSF-style external names are not supported for HSSF");
} }
@Override
public String resolveNameXText(NameXPtg n) { public String resolveNameXText(NameXPtg n) {
return _iBook.resolveNameXText(n.getSheetRefIndex(), n.getNameIndex()); return _iBook.resolveNameXText(n.getSheetRefIndex(), n.getNameIndex());
} }
@Override
public String getSheetFirstNameByExternSheet(int externSheetIndex) { public String getSheetFirstNameByExternSheet(int externSheetIndex) {
return _iBook.findSheetFirstNameFromExternSheet(externSheetIndex); return _iBook.findSheetFirstNameFromExternSheet(externSheetIndex);
} }
@Override
public String getSheetLastNameByExternSheet(int externSheetIndex) { public String getSheetLastNameByExternSheet(int externSheetIndex) {
return _iBook.findSheetLastNameFromExternSheet(externSheetIndex); return _iBook.findSheetLastNameFromExternSheet(externSheetIndex);
} }
@Override
public String getNameText(NamePtg namePtg) { public String getNameText(NamePtg namePtg) {
return _iBook.getNameRecord(namePtg.getIndex()).getNameText(); return _iBook.getNameRecord(namePtg.getIndex()).getNameText();
} }
@Override
public EvaluationName getName(NamePtg namePtg) { public EvaluationName getName(NamePtg namePtg) {
int ix = namePtg.getIndex(); int ix = namePtg.getIndex();
return new Name(_iBook.getNameRecord(ix), ix); return new Name(_iBook.getNameRecord(ix), ix);
} }
@Override
@SuppressWarnings("unused") @SuppressWarnings("unused")
public Ptg[] getFormulaTokens(EvaluationCell evalCell) { public Ptg[] getFormulaTokens(EvaluationCell evalCell) {
HSSFCell cell = ((HSSFEvaluationCell)evalCell).getHSSFCell(); HSSFCell cell = ((HSSFEvaluationCell)evalCell).getHSSFCell();
@ -213,6 +241,7 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
return fra.getFormulaTokens(); return fra.getFormulaTokens();
} }
@Override
public UDFFinder getUDFFinder(){ public UDFFinder getUDFFinder(){
return _uBook.getUDFFinder(); return _uBook.getUDFFinder();
} }

View File

@ -50,6 +50,7 @@ final class ForkedEvaluationSheet implements EvaluationSheet {
_sharedCellsByRowCol = new HashMap<RowColKey, ForkedEvaluationCell>(); _sharedCellsByRowCol = new HashMap<RowColKey, ForkedEvaluationCell>();
} }
@Override
public EvaluationCell getCell(int rowIndex, int columnIndex) { public EvaluationCell getCell(int rowIndex, int columnIndex) {
RowColKey key = new RowColKey(rowIndex, columnIndex); RowColKey key = new RowColKey(rowIndex, columnIndex);
@ -105,10 +106,12 @@ final class ForkedEvaluationSheet implements EvaluationSheet {
* leave the map alone, if it needs resetting, reusing this class is probably a bad idea. * leave the map alone, if it needs resetting, reusing this class is probably a bad idea.
* @see org.apache.poi.ss.formula.EvaluationSheet#clearAllCachedResultValues() * @see org.apache.poi.ss.formula.EvaluationSheet#clearAllCachedResultValues()
*/ */
@Override
public void clearAllCachedResultValues() { public void clearAllCachedResultValues() {
_masterSheet.clearAllCachedResultValues(); _masterSheet.clearAllCachedResultValues();
} }
// FIXME: serves same purpose as org.apache.poi.xssf.usermodel.XSSFEvaluationSheet$CellKey
private static final class RowColKey implements Comparable<RowColKey>{ private static final class RowColKey implements Comparable<RowColKey>{
private final int _rowIndex; private final int _rowIndex;
private final int _columnIndex; private final int _columnIndex;

View File

@ -75,17 +75,21 @@ final class ForkedEvaluationWorkbook implements EvaluationWorkbook {
} }
} }
@Override
public int convertFromExternSheetIndex(int externSheetIndex) { public int convertFromExternSheetIndex(int externSheetIndex) {
return _masterBook.convertFromExternSheetIndex(externSheetIndex); return _masterBook.convertFromExternSheetIndex(externSheetIndex);
} }
@Override
public ExternalSheet getExternalSheet(int externSheetIndex) { public ExternalSheet getExternalSheet(int externSheetIndex) {
return _masterBook.getExternalSheet(externSheetIndex); return _masterBook.getExternalSheet(externSheetIndex);
} }
@Override
public ExternalSheet getExternalSheet(String firstSheetName, String lastSheetName, int externalWorkbookNumber) { public ExternalSheet getExternalSheet(String firstSheetName, String lastSheetName, int externalWorkbookNumber) {
return _masterBook.getExternalSheet(firstSheetName, lastSheetName, externalWorkbookNumber); return _masterBook.getExternalSheet(firstSheetName, lastSheetName, externalWorkbookNumber);
} }
@Override
public Ptg[] getFormulaTokens(EvaluationCell cell) { public Ptg[] getFormulaTokens(EvaluationCell cell) {
if (cell instanceof ForkedEvaluationCell) { if (cell instanceof ForkedEvaluationCell) {
// doesn't happen yet because formulas cannot be modified from the master workbook // doesn't happen yet because formulas cannot be modified from the master workbook
@ -94,25 +98,31 @@ final class ForkedEvaluationWorkbook implements EvaluationWorkbook {
return _masterBook.getFormulaTokens(cell); return _masterBook.getFormulaTokens(cell);
} }
@Override
public EvaluationName getName(NamePtg namePtg) { public EvaluationName getName(NamePtg namePtg) {
return _masterBook.getName(namePtg); return _masterBook.getName(namePtg);
} }
@Override
public EvaluationName getName(String name, int sheetIndex){ public EvaluationName getName(String name, int sheetIndex){
return _masterBook.getName(name, sheetIndex); return _masterBook.getName(name, sheetIndex);
} }
@Override
public EvaluationSheet getSheet(int sheetIndex) { public EvaluationSheet getSheet(int sheetIndex) {
return getSharedSheet(getSheetName(sheetIndex)); return getSharedSheet(getSheetName(sheetIndex));
} }
@Override
public ExternalName getExternalName(int externSheetIndex, int externNameIndex) { public ExternalName getExternalName(int externSheetIndex, int externNameIndex) {
return _masterBook.getExternalName(externSheetIndex, externNameIndex); return _masterBook.getExternalName(externSheetIndex, externNameIndex);
} }
@Override
public ExternalName getExternalName(String nameName, String sheetName, int externalWorkbookNumber) { public ExternalName getExternalName(String nameName, String sheetName, int externalWorkbookNumber) {
return _masterBook.getExternalName(nameName, sheetName, externalWorkbookNumber); return _masterBook.getExternalName(nameName, sheetName, externalWorkbookNumber);
} }
@Override
public int getSheetIndex(EvaluationSheet sheet) { public int getSheetIndex(EvaluationSheet sheet) {
if (sheet instanceof ForkedEvaluationSheet) { if (sheet instanceof ForkedEvaluationSheet) {
ForkedEvaluationSheet mes = (ForkedEvaluationSheet) sheet; ForkedEvaluationSheet mes = (ForkedEvaluationSheet) sheet;
@ -121,18 +131,22 @@ final class ForkedEvaluationWorkbook implements EvaluationWorkbook {
return _masterBook.getSheetIndex(sheet); return _masterBook.getSheetIndex(sheet);
} }
@Override
public int getSheetIndex(String sheetName) { public int getSheetIndex(String sheetName) {
return _masterBook.getSheetIndex(sheetName); return _masterBook.getSheetIndex(sheetName);
} }
@Override
public String getSheetName(int sheetIndex) { public String getSheetName(int sheetIndex) {
return _masterBook.getSheetName(sheetIndex); return _masterBook.getSheetName(sheetIndex);
} }
@Override
public String resolveNameXText(NameXPtg ptg) { public String resolveNameXText(NameXPtg ptg) {
return _masterBook.resolveNameXText(ptg); return _masterBook.resolveNameXText(ptg);
} }
@Override
public UDFFinder getUDFFinder() { public UDFFinder getUDFFinder() {
return _masterBook.getUDFFinder(); return _masterBook.getUDFFinder();
} }
@ -141,6 +155,7 @@ final class ForkedEvaluationWorkbook implements EvaluationWorkbook {
* leave the map alone, if it needs resetting, reusing this class is probably a bad idea. * leave the map alone, if it needs resetting, reusing this class is probably a bad idea.
* @see org.apache.poi.ss.formula.EvaluationSheet#clearAllCachedResultValues() * @see org.apache.poi.ss.formula.EvaluationSheet#clearAllCachedResultValues()
*/ */
@Override
public void clearAllCachedResultValues() { public void clearAllCachedResultValues() {
_masterBook.clearAllCachedResultValues(); _masterBook.clearAllCachedResultValues();
} }

View File

@ -33,6 +33,7 @@ final class SXSSFEvaluationSheet implements EvaluationSheet {
public SXSSFSheet getSXSSFSheet() { public SXSSFSheet getSXSSFSheet() {
return _xs; return _xs;
} }
@Override
public EvaluationCell getCell(int rowIndex, int columnIndex) { public EvaluationCell getCell(int rowIndex, int columnIndex) {
SXSSFRow row = _xs.getRow(rowIndex); SXSSFRow row = _xs.getRow(rowIndex);
if (row == null) { if (row == null) {
@ -48,6 +49,7 @@ final class SXSSFEvaluationSheet implements EvaluationSheet {
return new SXSSFEvaluationCell(cell, this); return new SXSSFEvaluationCell(cell, this);
} }
@Override
public void clearAllCachedResultValues() { public void clearAllCachedResultValues() {
// nothing to do // nothing to do
} }

View File

@ -52,10 +52,16 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWorkbook, EvaluationWorkbook, FormulaParsingWorkbook { public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWorkbook, EvaluationWorkbook, FormulaParsingWorkbook {
protected final XSSFWorkbook _uBook; protected final XSSFWorkbook _uBook;
// lazily populated. This should only be accessed through getTableCache
// keys are lower-case to make this a quasi-case-insensitive map
private Map<String, XSSFTable> _tableCache = null;
protected BaseXSSFEvaluationWorkbook(XSSFWorkbook book) { protected BaseXSSFEvaluationWorkbook(XSSFWorkbook book) {
_uBook = book; _uBook = book;
} }
@Override
public void clearAllCachedResultValues() { public void clearAllCachedResultValues() {
_tableCache = null; _tableCache = null;
} }
@ -67,6 +73,7 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
* XSSF doesn't use external sheet indexes, so when asked treat * XSSF doesn't use external sheet indexes, so when asked treat
* it just as a local index * it just as a local index
*/ */
@Override
public int convertFromExternSheetIndex(int externSheetIndex) { public int convertFromExternSheetIndex(int externSheetIndex) {
return externSheetIndex; return externSheetIndex;
} }
@ -80,6 +87,7 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
return sheetIndex; return sheetIndex;
} }
@Override
public int getExternalSheetIndex(String sheetName) { public int getExternalSheetIndex(String sheetName) {
int sheetIndex = _uBook.getSheetIndex(sheetName); int sheetIndex = _uBook.getSheetIndex(sheetName);
return convertToExternalSheetIndex(sheetIndex); return convertToExternalSheetIndex(sheetIndex);
@ -121,7 +129,7 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
// Not properly referenced // Not properly referenced
throw new RuntimeException("Book not linked for filename " + bookName); throw new RuntimeException("Book not linked for filename " + bookName);
} }
/* case-sensitive */ /* This is case-sensitive. Is that correct? */
private int findExternalLinkIndex(String bookName, List<ExternalLinksTable> tables) { private int findExternalLinkIndex(String bookName, List<ExternalLinksTable> tables) {
int i = 0; int i = 0;
for (ExternalLinksTable table : tables) { for (ExternalLinksTable table : tables) {
@ -152,6 +160,7 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
* EvaluationName corresponding to that named range * EvaluationName corresponding to that named range
* Returns null if there is no named range with the same name and scope in the workbook * Returns null if there is no named range with the same name and scope in the workbook
*/ */
@Override
public EvaluationName getName(String name, int sheetIndex) { public EvaluationName getName(String name, int sheetIndex) {
for (int i = 0; i < _uBook.getNumberOfNames(); i++) { for (int i = 0; i < _uBook.getNumberOfNames(); i++) {
XSSFName nm = _uBook.getNameAt(i); XSSFName nm = _uBook.getNameAt(i);
@ -165,14 +174,17 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
return sheetIndex == -1 ? null : getName(name, -1); return sheetIndex == -1 ? null : getName(name, -1);
} }
@Override
public String getSheetName(int sheetIndex) { public String getSheetName(int sheetIndex) {
return _uBook.getSheetName(sheetIndex); return _uBook.getSheetName(sheetIndex);
} }
@Override
public ExternalName getExternalName(int externSheetIndex, int externNameIndex) { public ExternalName getExternalName(int externSheetIndex, int externNameIndex) {
throw new IllegalStateException("HSSF-style external references are not supported for XSSF"); throw new IllegalStateException("HSSF-style external references are not supported for XSSF");
} }
@Override
public ExternalName getExternalName(String nameName, String sheetName, int externalWorkbookNumber) { public ExternalName getExternalName(String nameName, String sheetName, int externalWorkbookNumber) {
if (externalWorkbookNumber > 0) { if (externalWorkbookNumber > 0) {
// External reference - reference is 1 based, link table is 0 based // External reference - reference is 1 based, link table is 0 based
@ -236,6 +248,7 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
return new NameXPxg(sheetName, name); return new NameXPxg(sheetName, name);
} }
} }
@Override
public Ptg get3DReferencePtg(CellReference cell, SheetIdentifier sheet) { public Ptg get3DReferencePtg(CellReference cell, SheetIdentifier sheet) {
if (sheet._bookName != null) { if (sheet._bookName != null) {
int bookIndex = resolveBookIndex(sheet._bookName); int bookIndex = resolveBookIndex(sheet._bookName);
@ -244,6 +257,7 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
return new Ref3DPxg(sheet, cell); return new Ref3DPxg(sheet, cell);
} }
} }
@Override
public Ptg get3DReferencePtg(AreaReference area, SheetIdentifier sheet) { public Ptg get3DReferencePtg(AreaReference area, SheetIdentifier sheet) {
if (sheet._bookName != null) { if (sheet._bookName != null) {
int bookIndex = resolveBookIndex(sheet._bookName); int bookIndex = resolveBookIndex(sheet._bookName);
@ -253,6 +267,7 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
} }
} }
@Override
public String resolveNameXText(NameXPtg n) { public String resolveNameXText(NameXPtg n) {
int idx = n.getNameIndex(); int idx = n.getNameIndex();
String name = null; String name = null;
@ -271,9 +286,11 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
return name; return name;
} }
@Override
public ExternalSheet getExternalSheet(int externSheetIndex) { public ExternalSheet getExternalSheet(int externSheetIndex) {
throw new IllegalStateException("HSSF-style external references are not supported for XSSF"); throw new IllegalStateException("HSSF-style external references are not supported for XSSF");
} }
@Override
public ExternalSheet getExternalSheet(String firstSheetName, String lastSheetName, int externalWorkbookNumber) { public ExternalSheet getExternalSheet(String firstSheetName, String lastSheetName, int externalWorkbookNumber) {
String workbookName; String workbookName;
if (externalWorkbookNumber > 0) { if (externalWorkbookNumber > 0) {
@ -297,22 +314,27 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
public int getExternalSheetIndex(String workbookName, String sheetName) { public int getExternalSheetIndex(String workbookName, String sheetName) {
throw new RuntimeException("not implemented yet"); throw new RuntimeException("not implemented yet");
} }
@Override
public int getSheetIndex(String sheetName) { public int getSheetIndex(String sheetName) {
return _uBook.getSheetIndex(sheetName); return _uBook.getSheetIndex(sheetName);
} }
@Override
public String getSheetFirstNameByExternSheet(int externSheetIndex) { public String getSheetFirstNameByExternSheet(int externSheetIndex) {
int sheetIndex = convertFromExternalSheetIndex(externSheetIndex); int sheetIndex = convertFromExternalSheetIndex(externSheetIndex);
return _uBook.getSheetName(sheetIndex); return _uBook.getSheetName(sheetIndex);
} }
@Override
public String getSheetLastNameByExternSheet(int externSheetIndex) { public String getSheetLastNameByExternSheet(int externSheetIndex) {
// XSSF does multi-sheet references differently, so this is the same as the first // XSSF does multi-sheet references differently, so this is the same as the first
return getSheetFirstNameByExternSheet(externSheetIndex); return getSheetFirstNameByExternSheet(externSheetIndex);
} }
@Override
public String getNameText(NamePtg namePtg) { public String getNameText(NamePtg namePtg) {
return _uBook.getNameAt(namePtg.getIndex()).getNameName(); return _uBook.getNameAt(namePtg.getIndex()).getNameName();
} }
@Override
public EvaluationName getName(NamePtg namePtg) { public EvaluationName getName(NamePtg namePtg) {
int ix = namePtg.getIndex(); int ix = namePtg.getIndex();
return new Name(_uBook.getNameAt(ix), ix, this); return new Name(_uBook.getNameAt(ix), ix, this);
@ -337,7 +359,6 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
* *
* Perhaps tables can be managed similar to PivotTable references above? * Perhaps tables can be managed similar to PivotTable references above?
*/ */
private Map<String, XSSFTable> _tableCache = null;
private Map<String, XSSFTable> getTableCache() { private Map<String, XSSFTable> getTableCache() {
if ( _tableCache != null ) { if ( _tableCache != null ) {
return _tableCache; return _tableCache;
@ -371,10 +392,16 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
return getTableCache().get(lname); return getTableCache().get(lname);
} }
@Override
public UDFFinder getUDFFinder(){ public UDFFinder getUDFFinder(){
return _uBook.getUDFFinder(); return _uBook.getUDFFinder();
} }
@Override
public SpreadsheetVersion getSpreadsheetVersion(){
return SpreadsheetVersion.EXCEL2007;
}
private static final class Name implements EvaluationName { private static final class Name implements EvaluationName {
private final XSSFName _nameRecord; private final XSSFName _nameRecord;
@ -414,8 +441,4 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork
return new NamePtg(_index); return new NamePtg(_index);
} }
} }
public SpreadsheetVersion getSpreadsheetVersion(){
return SpreadsheetVersion.EXCEL2007;
}
} }

View File

@ -41,10 +41,12 @@ final class XSSFEvaluationSheet implements EvaluationSheet {
return _xs; return _xs;
} }
@Override
public void clearAllCachedResultValues() { public void clearAllCachedResultValues() {
_cellCache = null; _cellCache = null;
} }
@Override
public EvaluationCell getCell(int rowIndex, int columnIndex) { public EvaluationCell getCell(int rowIndex, int columnIndex) {
// cache for performance: ~30% speedup due to caching // cache for performance: ~30% speedup due to caching
if (_cellCache == null) { if (_cellCache == null) {

View File

@ -40,6 +40,7 @@ public final class XSSFEvaluationWorkbook extends BaseXSSFEvaluationWorkbook {
super(book); super(book);
} }
@Override
public void clearAllCachedResultValues() { public void clearAllCachedResultValues() {
super.clearAllCachedResultValues(); super.clearAllCachedResultValues();
_sheetCache = null; _sheetCache = null;