if (isSum()) ParseItem[] operands = getOperands(); data = newdata; else if (isIf()) return getIf();
/** * Reads the ptg data from the array starting at the specified position * * @param data the RPN array * @param pos the current position in the array, excluding the ptg identifier * @return the number of bytes read */ public int read(byte[] data, int pos) { options = data[pos]; word = IntegerHelper.getInt(data[pos + 1], data[pos + 2]); if (!isChoose()) { return 3; } // word contains the number of jumps by index. // and there is an additional final jump to the choose function itself. return 3 + (word + 1) * 2; }
/** * If this formula was on an imported sheet, check that * cell references to another sheet are warned appropriately * Does nothing, as operators don't have cell references */ void handleImportedCellReferences() { ParseItem[] operands = null; if (isIf()) { operands = ifConditions.getOperands(); } else { operands = getOperands(); } for (int i = 0; i < operands.length; i++) { operands[i].handleImportedCellReferences(); } } }
Attribute a = new Attribute(sf, settings); a.add(pi2); stack.push(a); return; Attribute a = new Attribute(sf, settings); a.setIfConditions(vaf); stack.push(a); return;
/** * Gets the string version of the attribute * * @param buf the buffer to populate */ public void getString(StringBuffer buf) { if ((options & SUM_MASK) != 0) { ParseItem[] operands = getOperands(); buf.append(Function.SUM.getName(settings)); buf.append('('); operands[0].getString(buf); buf.append(')'); } else if ((options & IF_MASK) != 0) { buf.append(Function.IF.getName(settings)); buf.append('('); ParseItem[] operands = ifConditions.getOperands(); // Operands are in the correct order for IFs for (int i = 0; i < operands.length - 1; i++) { operands[i].getString(buf); buf.append(','); } operands[operands.length - 1].getString(buf); buf.append(')'); } }
/** * If this formula was on an imported sheet, check that * cell references to another sheet are warned appropriately * Does nothing, as operators don't have cell references */ void handleImportedCellReferences() { ParseItem[] operands = null; if (isIf()) { operands = ifConditions.getOperands(); } else { operands = getOperands(); } for (int i = 0; i < operands.length; i++) { operands[i].handleImportedCellReferences(); } } }
Attribute a = new Attribute(sf, settings); a.add(pi2); stack.push(a); return; Attribute a = new Attribute(sf, settings); a.setIfConditions(vaf); stack.push(a); return;
/** * Gets the string version of the attribute * * @param buf the buffer to populate */ public void getString(StringBuffer buf) { if ((options & SUM_MASK) != 0) { ParseItem[] operands = getOperands(); buf.append(Function.SUM.getName(settings)); buf.append('('); operands[0].getString(buf); buf.append(')'); } else if ((options & IF_MASK) != 0) { buf.append(Function.IF.getName(settings)); buf.append('('); ParseItem[] operands = ifConditions.getOperands(); // Operands are in the correct order for IFs for (int i = 0; i < operands.length - 1; i++) { operands[i].getString(buf); buf.append(','); } operands[operands.length - 1].getString(buf); buf.append(')'); } }
/** * Default behaviour is to do nothing * * @param colAdjust the amount to add on to each relative cell reference * @param rowAdjust the amount to add on to each relative row reference */ public void adjustRelativeCellReferences(int colAdjust, int rowAdjust) { ParseItem[] operands = null; if (isIf()) { operands = ifConditions.getOperands(); } else { operands = getOperands(); } for (int i = 0; i < operands.length; i++) { operands[i].adjustRelativeCellReferences(colAdjust, rowAdjust); } }
if (isSum()) ParseItem[] operands = getOperands(); data = newdata; else if (isIf()) return getIf();
/** * Reads the ptg data from the array starting at the specified position * * @param data the RPN array * @param pos the current position in the array, excluding the ptg identifier * @return the number of bytes read */ public int read(byte[] data, int pos) { options = data[pos]; word = IntegerHelper.getInt(data[pos + 1], data[pos + 2]); if (!isChoose()) { return 3; } // word contains the number of jumps by index. // and there is an additional final jump to the choose function itself. return 3 + (word + 1) * 2; }
/** * Default behaviour is to do nothing * * @param colAdjust the amount to add on to each relative cell reference * @param rowAdjust the amount to add on to each relative row reference */ public void adjustRelativeCellReferences(int colAdjust, int rowAdjust) { ParseItem[] operands = null; if (isIf()) { operands = ifConditions.getOperands(); } else { operands = getOperands(); } for (int i = 0; i < operands.length; i++) { operands[i].adjustRelativeCellReferences(colAdjust, rowAdjust); } }
/** * Called when a column is inserted on the specified sheet. Tells * the formula parser to update all of its cell references beyond this * column * * @param sheetIndex the sheet on which the column was removed * @param col the column number which was removed * @param currentSheet TRUE if this formula is on the sheet in which the * column was inserted, FALSE otherwise */ void columnRemoved(int sheetIndex, int col, boolean currentSheet) { ParseItem[] operands = null; if (isIf()) { operands = ifConditions.getOperands(); } else { operands = getOperands(); } for (int i = 0; i < operands.length; i++) { operands[i].columnRemoved(sheetIndex, col, currentSheet); } }
/** * Called when a column is inserted on the specified sheet. Tells * the formula parser to update all of its cell references beyond this * column * * @param sheetIndex the sheet on which the column was removed * @param col the column number which was removed * @param currentSheet TRUE if this formula is on the sheet in which the * column was inserted, FALSE otherwise */ void columnRemoved(int sheetIndex, int col, boolean currentSheet) { ParseItem[] operands = null; if (isIf()) { operands = ifConditions.getOperands(); } else { operands = getOperands(); } for (int i = 0; i < operands.length; i++) { operands[i].columnRemoved(sheetIndex, col, currentSheet); } }
/** * Called when a column is inserted on the specified sheet. Tells * the formula parser to update all of its cell references beyond this * column * * @param sheetIndex the sheet on which the row was removed * @param row the row number which was removed * @param currentSheet TRUE if this formula is on the sheet in which the * column was inserted, FALSE otherwise */ void rowRemoved(int sheetIndex, int row, boolean currentSheet) { ParseItem[] operands = null; if (isIf()) { operands = ifConditions.getOperands(); } else { operands = getOperands(); } for (int i = 0; i < operands.length; i++) { operands[i].rowRemoved(sheetIndex, row, currentSheet); } }
/** * Called when a column is inserted on the specified sheet. Tells * the formula parser to update all of its cell references beyond this * column * * @param sheetIndex the sheet on which the row was removed * @param row the row number which was removed * @param currentSheet TRUE if this formula is on the sheet in which the * column was inserted, FALSE otherwise */ void rowRemoved(int sheetIndex, int row, boolean currentSheet) { ParseItem[] operands = null; if (isIf()) { operands = ifConditions.getOperands(); } else { operands = getOperands(); } for (int i = 0; i < operands.length; i++) { operands[i].rowRemoved(sheetIndex, row, currentSheet); } }