@Override public SpreadsheetCell[][] getCells() { return delegate.getCells(); }
public SpreadsheetCell[][] getCells() { return delegate.getCells(); }
/** * Creates a result with constant values that are populated */ protected Object[][] preFetchResult(Spreadsheet spreadsheet) { SpreadsheetCell[][] cc = spreadsheet.getCells(); Object[][] res = cc.length == 0 ? new Object[0][0] : new Object[cc.length][cc[0].length]; for (int i = 0; i < cc.length; i++) { SpreadsheetCell[] row = cc[i]; for (int j = 0; j < row.length; j++) { SpreadsheetCell cell = row[j]; switch (cell.getSpreadsheetCellType()) { case EMPTY: res[i][j] = SpreadsheetResultCalculator.EMPTY_CELL; break; case VALUE: res[i][j] = cell.getValue(); break; case CONSTANT: res[i][j] = cell.getValue(); break; case METHOD: res[i][j] = SpreadsheetResultCalculator.NEED_TO_CALCULATE_VALUE; break; } } } return res; } }
public Object getValue(int row, int column) { Object result = results[row][column]; if (result == EMPTY_CELL) { return null; } SpreadsheetCell spreadsheetCell = spreadsheet.getCells()[row][column]; if (result != NEED_TO_CALCULATE_VALUE) { if (spreadsheetCell.getSpreadsheetCellType() == SpreadsheetCellType.METHOD) { Tracer.resolveTraceNode(spreadsheetCell, this, params, env, this); } else { Tracer.put(spreadsheetCell, "cell", result); } return result; } result = Tracer.invoke(spreadsheetCell, this, params, env, this); results[row][column] = result; return result; }
tableSyntaxNode); List<SpreadsheetCell> notEmptyReturnDefinitions = listNonEmptyCells(spreadsheet.getCells(), returnHeaderDefinition);