From ae72a675cae7e07839bb216dc236f2fe05c02376 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Sat, 19 Jul 2014 19:23:13 +0000 Subject: [PATCH] Fix inconsistent indents/whitespace git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1611949 13f79535-47bb-0310-9956-ffa450edef68 --- .../usermodel/HSSFEvaluationWorkbook.java | 299 +++++++++--------- .../poi/ss/formula/EvaluationWorkbook.java | 126 ++++---- .../poi/ss/formula/WorkbookEvaluator.java | 168 +++++----- 3 files changed, 296 insertions(+), 297 deletions(-) diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java b/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java index 6b8c30dc39..199f7ca3c3 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java @@ -46,33 +46,33 @@ import org.apache.poi.util.POILogger; * Internal POI use only */ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, EvaluationWorkbook, FormulaParsingWorkbook { - private static POILogger logger = POILogFactory.getLogger(HSSFEvaluationWorkbook.class); - private final HSSFWorkbook _uBook; - private final InternalWorkbook _iBook; - - public static HSSFEvaluationWorkbook create(HSSFWorkbook book) { - if (book == null) { - return null; - } - return new HSSFEvaluationWorkbook(book); - } - - private HSSFEvaluationWorkbook(HSSFWorkbook book) { - _uBook = book; - _iBook = book.getWorkbook(); - } - - public int getExternalSheetIndex(String sheetName) { - int sheetIndex = _uBook.getSheetIndex(sheetName); - return _iBook.checkExternSheet(sheetIndex); - } - public int getExternalSheetIndex(String workbookName, String sheetName) { - return _iBook.getExternalSheetIndex(workbookName, sheetName); - } - - public Ptg get3DReferencePtg(CellReference cr, SheetIdentifier sheet) { + private static POILogger logger = POILogFactory.getLogger(HSSFEvaluationWorkbook.class); + private final HSSFWorkbook _uBook; + private final InternalWorkbook _iBook; + + public static HSSFEvaluationWorkbook create(HSSFWorkbook book) { + if (book == null) { + return null; + } + return new HSSFEvaluationWorkbook(book); + } + + private HSSFEvaluationWorkbook(HSSFWorkbook book) { + _uBook = book; + _iBook = book.getWorkbook(); + } + + public int getExternalSheetIndex(String sheetName) { + int sheetIndex = _uBook.getSheetIndex(sheetName); + return _iBook.checkExternSheet(sheetIndex); + } + public int getExternalSheetIndex(String workbookName, String sheetName) { + return _iBook.getExternalSheetIndex(workbookName, sheetName); + } + + public Ptg get3DReferencePtg(CellReference cr, SheetIdentifier sheet) { int extIx = getSheetExtIx(sheet); - return new Ref3DPtg(cr, extIx); + return new Ref3DPtg(cr, extIx); } public Ptg get3DReferencePtg(AreaReference areaRef, SheetIdentifier sheet) { int extIx = getSheetExtIx(sheet); @@ -81,138 +81,137 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E public NameXPtg getNameXPtg(String name, SheetIdentifier sheet) { int sheetRefIndex = getSheetExtIx(sheet); return _iBook.getNameXPtg(name, sheetRefIndex, _uBook.getUDFFinder()); - } - - /** - * Lookup a named range by its name. - * - * @param name the name to search - * @param sheetIndex the 0-based index of the sheet this formula belongs to. - * The sheet index is required to resolve sheet-level names. -1 means workbook-global names - */ - public EvaluationName getName(String name, int sheetIndex) { - for(int i=0; i < _iBook.getNumNames(); i++) { - NameRecord nr = _iBook.getNameRecord(i); - if (nr.getSheetNumber() == sheetIndex+1 && name.equalsIgnoreCase(nr.getNameText())) { - return new Name(nr, i); - } - } - return sheetIndex == -1 ? null : getName(name, -1); - } - - public int getSheetIndex(EvaluationSheet evalSheet) { - HSSFSheet sheet = ((HSSFEvaluationSheet)evalSheet).getHSSFSheet(); - return _uBook.getSheetIndex(sheet); - } - public int getSheetIndex(String sheetName) { - return _uBook.getSheetIndex(sheetName); - } - - public String getSheetName(int sheetIndex) { - return _uBook.getSheetName(sheetIndex); - } - - public EvaluationSheet getSheet(int sheetIndex) { - return new HSSFEvaluationSheet(_uBook.getSheetAt(sheetIndex)); - } - public int convertFromExternSheetIndex(int externSheetIndex) { - return _iBook.getSheetIndexFromExternSheetIndex(externSheetIndex); - } - - public ExternalSheet getExternalSheet(int externSheetIndex) { - ExternalSheet sheet = _iBook.getExternalSheet(externSheetIndex); - if (sheet == null) { - // Try to treat it as a local sheet - int localSheetIndex = convertFromExternSheetIndex(externSheetIndex); + } + + /** + * Lookup a named range by its name. + * + * @param name the name to search + * @param sheetIndex the 0-based index of the sheet this formula belongs to. + * The sheet index is required to resolve sheet-level names. -1 means workbook-global names + */ + public EvaluationName getName(String name, int sheetIndex) { + for(int i=0; i < _iBook.getNumNames(); i++) { + NameRecord nr = _iBook.getNameRecord(i); + if (nr.getSheetNumber() == sheetIndex+1 && name.equalsIgnoreCase(nr.getNameText())) { + return new Name(nr, i); + } + } + return sheetIndex == -1 ? null : getName(name, -1); + } + + public int getSheetIndex(EvaluationSheet evalSheet) { + HSSFSheet sheet = ((HSSFEvaluationSheet)evalSheet).getHSSFSheet(); + return _uBook.getSheetIndex(sheet); + } + public int getSheetIndex(String sheetName) { + return _uBook.getSheetIndex(sheetName); + } + + public String getSheetName(int sheetIndex) { + return _uBook.getSheetName(sheetIndex); + } + + public EvaluationSheet getSheet(int sheetIndex) { + return new HSSFEvaluationSheet(_uBook.getSheetAt(sheetIndex)); + } + public int convertFromExternSheetIndex(int externSheetIndex) { + return _iBook.getSheetIndexFromExternSheetIndex(externSheetIndex); + } + + public ExternalSheet getExternalSheet(int externSheetIndex) { + ExternalSheet sheet = _iBook.getExternalSheet(externSheetIndex); + if (sheet == null) { + // Try to treat it as a local sheet + int localSheetIndex = convertFromExternSheetIndex(externSheetIndex); if (localSheetIndex == -1) { // The sheet referenced can't be found, sorry return null; } - if (localSheetIndex == -2) { - // Not actually sheet based at all - is workbook scoped - return null; - } - // Look up the local sheet - String sheetName = getSheetName(localSheetIndex); - sheet = new ExternalSheet(null, sheetName); - } - return sheet; - } - public ExternalSheet getExternalSheet(String sheetName, int externalWorkbookNumber) { - throw new IllegalStateException("XSSF-style external references are not supported for HSSF"); + if (localSheetIndex == -2) { + // Not actually sheet based at all - is workbook scoped + return null; + } + // Look up the local sheet + String sheetName = getSheetName(localSheetIndex); + sheet = new ExternalSheet(null, sheetName); + } + return sheet; + } + public ExternalSheet getExternalSheet(String sheetName, int externalWorkbookNumber) { + throw new IllegalStateException("XSSF-style external references are not supported for HSSF"); } public ExternalName getExternalName(int externSheetIndex, int externNameIndex) { - return _iBook.getExternalName(externSheetIndex, externNameIndex); - } - - public String resolveNameXText(NameXPtg n) { - return _iBook.resolveNameXText(n.getSheetRefIndex(), n.getNameIndex()); - } - - public String getSheetNameByExternSheet(int externSheetIndex) { - return _iBook.findSheetNameFromExternSheet(externSheetIndex); - } - public String getNameText(NamePtg namePtg) { - return _iBook.getNameRecord(namePtg.getIndex()).getNameText(); - } - public EvaluationName getName(NamePtg namePtg) { - int ix = namePtg.getIndex(); - return new Name(_iBook.getNameRecord(ix), ix); - } - - @SuppressWarnings("unused") + return _iBook.getExternalName(externSheetIndex, externNameIndex); + } + + public String resolveNameXText(NameXPtg n) { + return _iBook.resolveNameXText(n.getSheetRefIndex(), n.getNameIndex()); + } + + public String getSheetNameByExternSheet(int externSheetIndex) { + return _iBook.findSheetNameFromExternSheet(externSheetIndex); + } + public String getNameText(NamePtg namePtg) { + return _iBook.getNameRecord(namePtg.getIndex()).getNameText(); + } + public EvaluationName getName(NamePtg namePtg) { + int ix = namePtg.getIndex(); + return new Name(_iBook.getNameRecord(ix), ix); + } + + @SuppressWarnings("unused") public Ptg[] getFormulaTokens(EvaluationCell evalCell) { - HSSFCell cell = ((HSSFEvaluationCell)evalCell).getHSSFCell(); - if (false) { - // re-parsing the formula text also works, but is a waste of time - // It is useful from time to time to run all unit tests with this code - // to make sure that all formulas POI can evaluate can also be parsed. - try { - return HSSFFormulaParser.parse(cell.getCellFormula(), _uBook, FormulaType.CELL, _uBook.getSheetIndex(cell.getSheet())); - } catch (FormulaParseException e) { - // Note - as of Bugzilla 48036 (svn r828244, r828247) POI is capable of evaluating - // IntesectionPtg. However it is still not capable of parsing it. - // So FormulaEvalTestData.xls now contains a few formulas that produce errors here. - logger.log( POILogger.ERROR, e.getMessage()); - } - } - FormulaRecordAggregate fra = (FormulaRecordAggregate) cell.getCellValueRecord(); - return fra.getFormulaTokens(); - } - + HSSFCell cell = ((HSSFEvaluationCell)evalCell).getHSSFCell(); + if (false) { + // re-parsing the formula text also works, but is a waste of time + // It is useful from time to time to run all unit tests with this code + // to make sure that all formulas POI can evaluate can also be parsed. + try { + return HSSFFormulaParser.parse(cell.getCellFormula(), _uBook, FormulaType.CELL, _uBook.getSheetIndex(cell.getSheet())); + } catch (FormulaParseException e) { + // Note - as of Bugzilla 48036 (svn r828244, r828247) POI is capable of evaluating + // IntesectionPtg. However it is still not capable of parsing it. + // So FormulaEvalTestData.xls now contains a few formulas that produce errors here. + logger.log( POILogger.ERROR, e.getMessage()); + } + } + FormulaRecordAggregate fra = (FormulaRecordAggregate) cell.getCellValueRecord(); + return fra.getFormulaTokens(); + } + public UDFFinder getUDFFinder(){ return _uBook.getUDFFinder(); } - private static final class Name implements EvaluationName { - - private final NameRecord _nameRecord; - private final int _index; - - public Name(NameRecord nameRecord, int index) { - _nameRecord = nameRecord; - _index = index; - } - public Ptg[] getNameDefinition() { - return _nameRecord.getNameDefinition(); - } - public String getNameText() { - return _nameRecord.getNameText(); - } - public boolean hasFormula() { - return _nameRecord.hasFormula(); - } - public boolean isFunctionName() { - return _nameRecord.isFunctionName(); - } - public boolean isRange() { - return _nameRecord.hasFormula(); // TODO - is this right? - } - public NamePtg createPtg() { - return new NamePtg(_index); - } - } + private static final class Name implements EvaluationName { + private final NameRecord _nameRecord; + private final int _index; + + public Name(NameRecord nameRecord, int index) { + _nameRecord = nameRecord; + _index = index; + } + public Ptg[] getNameDefinition() { + return _nameRecord.getNameDefinition(); + } + public String getNameText() { + return _nameRecord.getNameText(); + } + public boolean hasFormula() { + return _nameRecord.hasFormula(); + } + public boolean isFunctionName() { + return _nameRecord.isFunctionName(); + } + public boolean isRange() { + return _nameRecord.hasFormula(); // TODO - is this right? + } + public NamePtg createPtg() { + return new NamePtg(_index); + } + } private int getSheetExtIx(SheetIdentifier sheetIden) { int extIx; @@ -228,8 +227,8 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E } return extIx; } - - public SpreadsheetVersion getSpreadsheetVersion(){ - return SpreadsheetVersion.EXCEL97; - } + + public SpreadsheetVersion getSpreadsheetVersion(){ + return SpreadsheetVersion.EXCEL97; + } } diff --git a/src/java/org/apache/poi/ss/formula/EvaluationWorkbook.java b/src/java/org/apache/poi/ss/formula/EvaluationWorkbook.java index ca87e313a3..f91dacf0de 100644 --- a/src/java/org/apache/poi/ss/formula/EvaluationWorkbook.java +++ b/src/java/org/apache/poi/ss/formula/EvaluationWorkbook.java @@ -30,75 +30,75 @@ import org.apache.poi.ss.formula.udf.UDFFinder; * @author Josh Micich */ public interface EvaluationWorkbook { - String getSheetName(int sheetIndex); - /** - * @return -1 if the specified sheet is from a different book - */ - int getSheetIndex(EvaluationSheet sheet); - /** - * Finds a sheet index by case insensitive name. - * @return the index of the sheet matching the specified name. -1 if not found - */ - int getSheetIndex(String sheetName); + String getSheetName(int sheetIndex); + /** + * @return -1 if the specified sheet is from a different book + */ + int getSheetIndex(EvaluationSheet sheet); + /** + * Finds a sheet index by case insensitive name. + * @return the index of the sheet matching the specified name. -1 if not found + */ + int getSheetIndex(String sheetName); - EvaluationSheet getSheet(int sheetIndex); + EvaluationSheet getSheet(int sheetIndex); - /** - * HSSF Only - fetch the external-style sheet details - *

Return will have no workbook set if it's actually in our own workbook

- */ - ExternalSheet getExternalSheet(int externSheetIndex); - /** - * XSSF Only - fetch the external-style sheet details + /** + * HSSF Only - fetch the external-style sheet details *

Return will have no workbook set if it's actually in our own workbook

- */ - ExternalSheet getExternalSheet(String sheetName, int externalWorkbookNumber); - /** - * HSSF Only - convert an external sheet index to an internal sheet index, - * for an external-style reference to one of this workbook's own sheets - */ - int convertFromExternSheetIndex(int externSheetIndex); - - ExternalName getExternalName(int externSheetIndex, int externNameIndex); - EvaluationName getName(NamePtg namePtg); + */ + ExternalSheet getExternalSheet(int externSheetIndex); + /** + * XSSF Only - fetch the external-style sheet details + *

Return will have no workbook set if it's actually in our own workbook

+ */ + ExternalSheet getExternalSheet(String sheetName, int externalWorkbookNumber); + /** + * HSSF Only - convert an external sheet index to an internal sheet index, + * for an external-style reference to one of this workbook's own sheets + */ + int convertFromExternSheetIndex(int externSheetIndex); + + ExternalName getExternalName(int externSheetIndex, int externNameIndex); + EvaluationName getName(NamePtg namePtg); EvaluationName getName(String name, int sheetIndex); - String resolveNameXText(NameXPtg ptg); - Ptg[] getFormulaTokens(EvaluationCell cell); + String resolveNameXText(NameXPtg ptg); + Ptg[] getFormulaTokens(EvaluationCell cell); UDFFinder getUDFFinder(); - class ExternalSheet { - private final String _workbookName; - private final String _sheetName; + class ExternalSheet { + private final String _workbookName; + private final String _sheetName; - public ExternalSheet(String workbookName, String sheetName) { - _workbookName = workbookName; - _sheetName = sheetName; - } - public String getWorkbookName() { - return _workbookName; - } - public String getSheetName() { - return _sheetName; - } - } - class ExternalName { - private final String _nameName; - private final int _nameNumber; - private final int _ix; + public ExternalSheet(String workbookName, String sheetName) { + _workbookName = workbookName; + _sheetName = sheetName; + } + public String getWorkbookName() { + return _workbookName; + } + public String getSheetName() { + return _sheetName; + } + } + class ExternalName { + private final String _nameName; + private final int _nameNumber; + private final int _ix; - public ExternalName(String nameName, int nameNumber, int ix) { - _nameName = nameName; - _nameNumber = nameNumber; - _ix = ix; - } - public String getName() { - return _nameName; - } - public int getNumber() { - return _nameNumber; - } - public int getIx() { - return _ix; - } - } + public ExternalName(String nameName, int nameNumber, int ix) { + _nameName = nameName; + _nameNumber = nameNumber; + _ix = ix; + } + public String getName() { + return _nameName; + } + public int getNumber() { + return _nameNumber; + } + public int getIx() { + return _ix; + } + } } diff --git a/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java b/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java index 3daa8714cc..e124278f8e 100644 --- a/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java +++ b/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java @@ -621,90 +621,90 @@ public final class WorkbookEvaluator { } - /** - * returns an appropriate Eval impl instance for the Ptg. The Ptg must be - * one of: Area3DPtg, AreaPtg, ReferencePtg, Ref3DPtg, IntPtg, NumberPtg, - * StringPtg, BoolPtg
special Note: OperationPtg subtypes cannot be - * passed here! - */ - private ValueEval getEvalForPtg(Ptg ptg, OperationEvaluationContext ec) { - // consider converting all these (ptg instanceof XxxPtg) expressions to (ptg.getClass() == XxxPtg.class) - - if (ptg instanceof NamePtg) { - // Named ranges, macro functions - NamePtg namePtg = (NamePtg) ptg; - EvaluationName nameRecord = _workbook.getName(namePtg); - return getEvalForNameRecord(nameRecord, ec); - } - if (ptg instanceof NameXPtg) { - // Externally defined named ranges or macro functions - NameXPtg nameXPtg = (NameXPtg)ptg; - ValueEval eval = ec.getNameXEval(nameXPtg); - - if (eval instanceof NameXEval) { - // Could not be directly evaluated, so process as a name - return getEvalForNameX(nameXPtg, ec); - } else { - // Use the evaluated version - return eval; - } - } - - if (ptg instanceof IntPtg) { - return new NumberEval(((IntPtg)ptg).getValue()); - } - if (ptg instanceof NumberPtg) { - return new NumberEval(((NumberPtg)ptg).getValue()); - } - if (ptg instanceof StringPtg) { - return new StringEval(((StringPtg) ptg).getValue()); - } - if (ptg instanceof BoolPtg) { - return BoolEval.valueOf(((BoolPtg) ptg).getValue()); - } - if (ptg instanceof ErrPtg) { - return ErrorEval.valueOf(((ErrPtg) ptg).getErrorCode()); - } - if (ptg instanceof MissingArgPtg) { - return MissingArgEval.instance; - } - if (ptg instanceof AreaErrPtg ||ptg instanceof RefErrorPtg - || ptg instanceof DeletedArea3DPtg || ptg instanceof DeletedRef3DPtg) { - return ErrorEval.REF_INVALID; - } - if (ptg instanceof Ref3DPtg) { - return ec.getRef3DEval((Ref3DPtg)ptg); - } - if (ptg instanceof Ref3DPxg) { - return ec.getRef3DEval((Ref3DPxg)ptg); - } - if (ptg instanceof Area3DPtg) { - Area3DPtg aptg = (Area3DPtg) ptg; - return ec.getArea3DEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn(), aptg.getExternSheetIndex()); - } - if (ptg instanceof RefPtg) { - RefPtg rptg = (RefPtg) ptg; - return ec.getRefEval(rptg.getRow(), rptg.getColumn()); - } - if (ptg instanceof AreaPtg) { - AreaPtg aptg = (AreaPtg) ptg; - return ec.getAreaEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn()); - } - - if (ptg instanceof UnknownPtg) { - // POI uses UnknownPtg when the encoded Ptg array seems to be corrupted. - // This seems to occur in very rare cases (e.g. unused name formulas in bug 44774, attachment 21790) - // In any case, formulas are re-parsed before execution, so UnknownPtg should not get here - throw new RuntimeException("UnknownPtg not allowed"); - } - if (ptg instanceof ExpPtg) { - // ExpPtg is used for array formulas and shared formulas. - // it is currently unsupported, and may not even get implemented here - throw new RuntimeException("ExpPtg currently not supported"); - } - - throw new RuntimeException("Unexpected ptg class (" + ptg.getClass().getName() + ")"); - } + /** + * returns an appropriate Eval impl instance for the Ptg. The Ptg must be + * one of: Area3DPtg, AreaPtg, ReferencePtg, Ref3DPtg, IntPtg, NumberPtg, + * StringPtg, BoolPtg
special Note: OperationPtg subtypes cannot be + * passed here! + */ + private ValueEval getEvalForPtg(Ptg ptg, OperationEvaluationContext ec) { + // consider converting all these (ptg instanceof XxxPtg) expressions to (ptg.getClass() == XxxPtg.class) + + if (ptg instanceof NamePtg) { + // Named ranges, macro functions + NamePtg namePtg = (NamePtg) ptg; + EvaluationName nameRecord = _workbook.getName(namePtg); + return getEvalForNameRecord(nameRecord, ec); + } + if (ptg instanceof NameXPtg) { + // Externally defined named ranges or macro functions + NameXPtg nameXPtg = (NameXPtg)ptg; + ValueEval eval = ec.getNameXEval(nameXPtg); + + if (eval instanceof NameXEval) { + // Could not be directly evaluated, so process as a name + return getEvalForNameX(nameXPtg, ec); + } else { + // Use the evaluated version + return eval; + } + } + + if (ptg instanceof IntPtg) { + return new NumberEval(((IntPtg)ptg).getValue()); + } + if (ptg instanceof NumberPtg) { + return new NumberEval(((NumberPtg)ptg).getValue()); + } + if (ptg instanceof StringPtg) { + return new StringEval(((StringPtg) ptg).getValue()); + } + if (ptg instanceof BoolPtg) { + return BoolEval.valueOf(((BoolPtg) ptg).getValue()); + } + if (ptg instanceof ErrPtg) { + return ErrorEval.valueOf(((ErrPtg) ptg).getErrorCode()); + } + if (ptg instanceof MissingArgPtg) { + return MissingArgEval.instance; + } + if (ptg instanceof AreaErrPtg ||ptg instanceof RefErrorPtg + || ptg instanceof DeletedArea3DPtg || ptg instanceof DeletedRef3DPtg) { + return ErrorEval.REF_INVALID; + } + if (ptg instanceof Ref3DPtg) { + return ec.getRef3DEval((Ref3DPtg)ptg); + } + if (ptg instanceof Ref3DPxg) { + return ec.getRef3DEval((Ref3DPxg)ptg); + } + if (ptg instanceof Area3DPtg) { + Area3DPtg aptg = (Area3DPtg) ptg; + return ec.getArea3DEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn(), aptg.getExternSheetIndex()); + } + if (ptg instanceof RefPtg) { + RefPtg rptg = (RefPtg) ptg; + return ec.getRefEval(rptg.getRow(), rptg.getColumn()); + } + if (ptg instanceof AreaPtg) { + AreaPtg aptg = (AreaPtg) ptg; + return ec.getAreaEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn()); + } + + if (ptg instanceof UnknownPtg) { + // POI uses UnknownPtg when the encoded Ptg array seems to be corrupted. + // This seems to occur in very rare cases (e.g. unused name formulas in bug 44774, attachment 21790) + // In any case, formulas are re-parsed before execution, so UnknownPtg should not get here + throw new RuntimeException("UnknownPtg not allowed"); + } + if (ptg instanceof ExpPtg) { + // ExpPtg is used for array formulas and shared formulas. + // it is currently unsupported, and may not even get implemented here + throw new RuntimeException("ExpPtg currently not supported"); + } + + throw new RuntimeException("Unexpected ptg class (" + ptg.getClass().getName() + ")"); + } private ValueEval getEvalForNameRecord(EvaluationName nameRecord, OperationEvaluationContext ec) { if (nameRecord.isFunctionName()) { -- 2.39.5