Package org.apache.poi.ss.formula.eval

Examples of org.apache.poi.ss.formula.eval.ValueEval


   * @return a {@link NumberEval}, {@link StringEval}, {@link BoolEval}, or
   *         {@link ErrorEval}. Never <code>null</code>. {@link BlankEval} is
   *         converted to {@link NumberEval#ZERO}
   */
  public static ValueEval dereferenceResult(ValueEval evaluationResult, int srcRowNum, int srcColNum) {
    ValueEval value;
    try {
      value = OperandResolver.getSingleValue(evaluationResult, srcRowNum, srcColNum);
    } catch (EvaluationException e) {
      return e.getErrorEval();
    }
View Full Code Here


   * Creates a criteria predicate object for the supplied criteria arg
   * @return <code>null</code> if the arg evaluates to blank.
   */
  /* package */ static I_MatchPredicate createCriteriaPredicate(ValueEval arg, int srcRowIndex, int srcColumnIndex) {

    ValueEval evaluatedCriteriaArg = evaluateCriteriaArg(arg, srcRowIndex, srcColumnIndex);

    if(evaluatedCriteriaArg instanceof NumberEval) {
      return new NumberMatcher(((NumberEval)evaluatedCriteriaArg).getNumberValue(), CmpOp.OP_NONE);
    }
    if(evaluatedCriteriaArg instanceof BoolEval) {
      return new BooleanMatcher(((BoolEval)evaluatedCriteriaArg).getBooleanValue(), CmpOp.OP_NONE);
    }

    if(evaluatedCriteriaArg instanceof StringEval) {
      return createGeneralMatchPredicate((StringEval)evaluatedCriteriaArg);
    }
    if(evaluatedCriteriaArg instanceof ErrorEval) {
      return new ErrorMatcher(((ErrorEval)evaluatedCriteriaArg).getErrorCode(), CmpOp.OP_NONE);
    }
    if(evaluatedCriteriaArg == BlankEval.instance) {
      return null;
    }
    throw new RuntimeException("Unexpected type for criteria ("
        + evaluatedCriteriaArg.getClass().getName() + ")");
  }
View Full Code Here

    public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0,
        ValueEval arg1) {
      double dn;
      try {
        ValueEval ve1 = OperandResolver.getSingleValue(arg1, srcRowIndex, srcColumnIndex);
        dn = OperandResolver.coerceValueToDouble(ve1);
      } catch (EvaluationException e1) {
        // all errors in the second arg translate to #VALUE!
        return ErrorEval.VALUE_INVALID;
      }
View Full Code Here

    public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0,
        ValueEval arg1) {
      double dn;
      try {
        ValueEval ve1 = OperandResolver.getSingleValue(arg1, srcRowIndex, srcColumnIndex);
        dn = OperandResolver.coerceValueToDouble(ve1);
      } catch (EvaluationException e1) {
        // all errors in the second arg translate to #VALUE!
        return ErrorEval.VALUE_INVALID;
      }
View Full Code Here

   * Creates a criteria predicate object for the supplied criteria arg
   * @return <code>null</code> if the arg evaluates to blank.
   */
  /* package */ static I_MatchPredicate createCriteriaPredicate(ValueEval arg, int srcRowIndex, int srcColumnIndex) {

    ValueEval evaluatedCriteriaArg = evaluateCriteriaArg(arg, srcRowIndex, srcColumnIndex);

    if(evaluatedCriteriaArg instanceof NumberEval) {
      return new NumberMatcher(((NumberEval)evaluatedCriteriaArg).getNumberValue(), CmpOp.OP_NONE);
    }
    if(evaluatedCriteriaArg instanceof BoolEval) {
      return new BooleanMatcher(((BoolEval)evaluatedCriteriaArg).getBooleanValue(), CmpOp.OP_NONE);
    }

    if(evaluatedCriteriaArg instanceof StringEval) {
      return createGeneralMatchPredicate((StringEval)evaluatedCriteriaArg);
    }
    if(evaluatedCriteriaArg instanceof ErrorEval) {
      return new ErrorMatcher(((ErrorEval)evaluatedCriteriaArg).getErrorCode(), CmpOp.OP_NONE);
    }
    if(evaluatedCriteriaArg == BlankEval.instance) {
      return null;
    }
    throw new RuntimeException("Unexpected type for criteria ("
        + evaluatedCriteriaArg.getClass().getName() + ")");
  }
View Full Code Here

  public ValueEval evaluate(ValueEval[] args, OperationEvaluationContext ec) {
    if (args.length != 2) {
      return ErrorEval.VALUE_INVALID;
    }

    ValueEval val;
    try {
      val = evaluateInternal(args[0], args[1], ec.getRowIndex(), ec.getColumnIndex());
    } catch (EvaluationException e) {
      return e.getErrorEval();
    }
View Full Code Here

  public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval lookup_value, ValueEval table_array,
      ValueEval col_index, ValueEval range_lookup) {
    try {
      // Evaluation order:
      // lookup_value , table_array, range_lookup, find lookup value, col_index, fetch result
      ValueEval lookupValue = OperandResolver.getSingleValue(lookup_value, srcRowIndex, srcColumnIndex);
      TwoDEval tableArray = LookupUtils.resolveTableArrayArg(table_array);
      boolean isRangeLookup = LookupUtils.resolveRangeLookupArg(range_lookup, srcRowIndex, srcColumnIndex);
      int rowIndex = LookupUtils.lookupIndexOfValue(lookupValue, LookupUtils.createColumnVector(tableArray, 0), isRangeLookup);
      int colIndex = LookupUtils.resolveRowOrColIndexArg(col_index, srcRowIndex, srcColumnIndex);
      ValueVector resultCol = createResultColumnVector(tableArray, colIndex);
View Full Code Here

            if (refEval.getNumberOfSheets() > 1) {
                // Multi-Sheet references are not supported
                throw new EvaluationException(ErrorEval.VALUE_INVALID);
            }
           
            ValueEval innerValueEval = refEval.getInnerValueEval(refEval.getFirstSheetIndex());
            if(innerValueEval instanceof NumberEval) {
                return ((NumberEval) innerValueEval).getNumberValue();
            }
            if(innerValueEval instanceof BlankEval) {
                return 0;
View Full Code Here

    if(args.length != 4)
            throw new EvaluationException(ErrorEval.VALUE_INVALID);

    double result;

    ValueEval v1 = OperandResolver.getSingleValue(args[0], srcCellRow, srcCellCol);
    ValueEval v2 = OperandResolver.getSingleValue(args[1], srcCellRow, srcCellCol);
    ValueEval v3 = OperandResolver.getSingleValue(args[2], srcCellRow, srcCellCol);
    ValueEval v4 = OperandResolver.getSingleValue(args[3], srcCellRow, srcCellCol);

    double interestRate = OperandResolver.coerceValueToDouble(v1);
    int period = OperandResolver.coerceValueToInt(v2);
    int numberPayments = OperandResolver.coerceValueToInt(v3);
    double PV = OperandResolver.coerceValueToDouble(v4);
View Full Code Here

* (regardless of the coordinates of the evaluating formula cell).
*/
public final class T extends Fixed1ArgFunction {

    public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0) {
        ValueEval arg = arg0;
        if (arg instanceof RefEval) {
            // always use the first sheet
            RefEval re = (RefEval)arg;
            arg = re.getInnerValueEval(re.getFirstSheetIndex());
        } else if (arg instanceof AreaEval) {
View Full Code Here

TOP

Related Classes of org.apache.poi.ss.formula.eval.ValueEval

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.