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

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


   * 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


      row.createCell(i).setCellFormula(String.valueOf(i));
    }

    EvalCountListener evalListener = new EvalCountListener();
    WorkbookEvaluator evaluator = WorkbookEvaluatorTestHelper.createEvaluator(wb, evalListener);
    ValueEval ve = evaluator.evaluate(HSSFEvaluationTestHelper.wrapCell(cellA1));
    int evalCount = evalListener.getEvalCount();
    if (evalCount == 6) {
      // Without short-circuit-if evaluation, evaluating cell 'A1' takes 3 extra evaluations (for D1,E1,F1)
      throw new AssertionFailedError("Identifed bug 48195 - Formula evaluator should short-circuit IF() calculations.");
    }
View Full Code Here

        new NumberEval(25),
        new NumberEval(25),
    };
    AreaEval arg0 = EvalFactory.createAreaEval("C1:C6", values);

    ValueEval criteriaArg = EvalFactory.createRefEval("A1", new NumberEval(25));
    ValueEval[] args=  { arg0, criteriaArg, };

    double actual = NumericFunctionInvoker.invoke(new Countif(), args);
    assertEquals(4, actual, 0D);
  }
View Full Code Here

   * the criteria arg is mostly handled by {@link OperandResolver#getSingleValue(org.apache.poi.ss.formula.eval.ValueEval, int, int)}}
   */
  public void testCountifAreaCriteria() {
    int srcColIx = 2; // anything but column A

    ValueEval v0 = new NumberEval(2.0);
    ValueEval v1 = new StringEval("abc");
    ValueEval v2 = ErrorEval.DIV_ZERO;

    AreaEval ev = EvalFactory.createAreaEval("A10:A12", new ValueEval[] { v0, v1, v2, });

    I_MatchPredicate mp;
    mp = Countif.createCriteriaPredicate(ev, 9, srcColIx);
View Full Code Here

  private static void confirmPredicate(boolean expectedResult, I_MatchPredicate matchPredicate, int value) {
    assertEquals(expectedResult, matchPredicate.matches(new NumberEval(value)));
  }
  private static void confirmPredicate(boolean expectedResult, I_MatchPredicate matchPredicate, String value) {
    ValueEval ev = value == null ? BlankEval.instance : new StringEval(value);
    assertEquals(expectedResult, matchPredicate.matches(ev));
  }
View Full Code Here

    ValueEval[] args = new ValueEval[] { new StringEval(number1), new StringEval(number2), };
    return new Delta().evaluate(args, -1, -1);
  }

  private static void confirmValue(String number1, String number2, double expected) {
    ValueEval result = invokeValue(number1, number2);
    assertEquals(NumberEval.class, result.getClass());
    assertEquals(expected, ((NumberEval) result).getNumberValue(), 0.0);
  }
View Full Code Here

    assertEquals(NumberEval.class, result.getClass());
    assertEquals(expected, ((NumberEval) result).getNumberValue(), 0.0);
  }

    private static void confirmValueError(String number1, String number2) {
        ValueEval result = invokeValue(number1, number2);
        assertEquals(ErrorEval.class, result.getClass());
        assertEquals(ErrorEval.VALUE_INVALID, result);
    }
View Full Code Here

    ValueEval[] args = new ValueEval[] { new StringEval(number1) };
    return new Oct2Dec().evaluate(args, -1, -1);
  }

    private static void confirmValue(String msg, String number1, String expected) {
    ValueEval result = invokeValue(number1);
    assertEquals(NumberEval.class, result.getClass());
    assertEquals(msg, expected, ((NumberEval) result).getStringValue());
  }
View Full Code Here

    assertEquals(NumberEval.class, result.getClass());
    assertEquals(msg, expected, ((NumberEval) result).getStringValue());
  }

    private static void confirmValueError(String msg, String number1, ErrorEval numError) {
        ValueEval result = invokeValue(number1);
        assertEquals(ErrorEval.class, result.getClass());
        assertEquals(msg, numError, result);
    }
View Full Code Here

    ValueEval[] args = new ValueEval[] { xArray, yArray, };
    return function.evaluate(args, -1, (short)-1);
  }

  private void confirm(Function function, ValueEval xArray, ValueEval yArray, double expected) {
    ValueEval result = invoke(function, xArray, yArray);
    assertEquals(NumberEval.class, result.getClass());
    assertEquals(expected, ((NumberEval)result).getNumberValue(), 0);
  }
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.