public Object invokeSimple(Object target, Object[] params, IRuntimeEnv env) { SpreadsheetResultCalculator res = new SpreadsheetResultCalculator( getInvokableMethod(), (IDynamicObject) target, params, env, preFetchedResult); return getInvokableMethod().getResultBuilder().makeResult(res); }
public void set(Object target, Object value, IRuntimeEnv env) { SpreadsheetResult spreadsheetResult = (SpreadsheetResult) target; spreadsheetResult.setFieldValue(getName(), value); }
public Object makeResult(SpreadsheetResultCalculator result) { Object[][] resultArray = result.getValues(); Spreadsheet spreadsheet = result.getSpreadsheet(); String[] rowNames = spreadsheet.getRowNames(); String[] columnNames = spreadsheet.getColumnNames(); Map<String, Point> fieldsCoordinates = spreadsheet.getFieldsCoordinates(); SpreadsheetResult spreadsheetBean = new SpreadsheetResult(resultArray, rowNames, columnNames, fieldsCoordinates); TableSyntaxNode tsn = spreadsheet.getSyntaxNode(); if (tsn != null) { spreadsheetBean.setLogicalTable(tsn.getTableBody()); } return spreadsheetBean; }
public Object getValue(int col, int row) { if (row < firstRowHeight) { return null; // the row 0 contains column headers } if (col < firstColWidth) { return null; } if (res.getWidth() <= col - firstColWidth || res.getHeight() <= row - firstRowHeight) { return null; } return res.getValue(row - firstRowHeight, col - firstColWidth); }
public void finalizeBind(IBindingContext bindingContext) throws Exception { super.finalizeBind(bindingContext); ILogicalTable tableBody = getTableSyntaxNode().getTableBody(); getTableSyntaxNode().getSubTables().put(IXlsTableNames.VIEW_BUSINESS, tableBody); cells = structureBuilder.getCells(); Spreadsheet spreadsheet = (Spreadsheet) getMethod(); spreadsheet.setCells(cells); spreadsheet.setResultBuilder(componentsBuilder.buildResultBuilder(spreadsheet)); }
public SpreadsheetResultCalculator(Spreadsheet spreadsheet, IDynamicObject targetModule, Object[] params, IRuntimeEnv env, Object[][] preCalculatedResult) { super(); this.spreadsheet = spreadsheet; this.targetModule = targetModule; this.params = params; this.env = env; if (preCalculatedResult == null) this.results = new Object[spreadsheet.getHeight()][spreadsheet.getWidth()]; else this.results = clonePrecalculatedResults(preCalculatedResult); }
public Object get(Object target, IRuntimeEnv env) { if (target == null) { return getType().nullObject(); } Object res = ((SpreadsheetResult) target).getFieldValue(getName()); return res != null ? res : getType().nullObject(); }
public boolean canInvoke() { return getInvokableMethod().getResultBuilder() != null; }
public String[] getRowNames() { return buildArrayForHeaders(rowHeaders, cellsHeaderExtractor.getHeight()); }
public String[] getColumnNames() { return buildArrayForHeaders(columnHeaders, cellsHeaderExtractor.getWidth()); }
public IResultBuilder buildResultBuilder(Spreadsheet spreadsheet) { IResultBuilder resultBuilder = null; try { resultBuilder = getResultBuilderInternal(spreadsheet); } catch (SyntaxNodeException e) { addError(e); } return resultBuilder; }
@Override public void setCells(SpreadsheetCell[][] cells) { delegate.setCells(cells); }
public Map<String, Point> getFieldsCoordinates() { if (fieldsCoordinates == null) { synchronized (this) { if (fieldsCoordinates == null) { fieldsCoordinates = SpreadsheetResult.buildFieldsCoordinates(columnNames, rowNames); } } } return fieldsCoordinates; } }
protected Invokable getInvoker() { if (invoker == null) { synchronized (this) { if (invoker == null) { invoker = createInvoker(); } } } return invoker; }
@Override protected IMemberBoundNode createNode(TableSyntaxNode tableSyntaxNode, OpenL openl, OpenMethodHeader header, XlsModuleOpenClass module) { return new SpreadsheetBoundNode(tableSyntaxNode, openl, header, module); } }
private CustomSpreadsheetResultOpenClass getCustomSpreadsheetResultType() { if (spreadsheetCustomType == null) { synchronized (this) { if (spreadsheetCustomType == null) { CustomSpreadsheetResultOpenClass type = initCustomSpreadsheetResultType(); spreadsheetCustomType = type; } } } return spreadsheetCustomType; }
public SpreadsheetInvoker(Spreadsheet spreadsheet) { super(spreadsheet); this.preFetchedResult = preFetchResult(spreadsheet); }
@Override public String getModuleName() { return delegate.getModuleName(); }