Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.jexl2
Class JexlThreadedArithmetic

    java.lang.Object
      org.apache.commons.jexl2.JexlArithmetic
          org.apache.commons.jexl2.JexlThreadedArithmetic

    public class JexlThreadedArithmetic

extends JexlArithmetic

A derived arithmetic that allows different threads to operate with different strict/lenient/math modes using the same JexlEngine.

Since:
  2.1

Field Summary

Fields inherited from class org.apache.commons.jexl2.JexlArithmetic
`BIGD_DOUBLE_MAX_VALUE, BIGD_DOUBLE_MIN_VALUE, BIGD_SCALE, BIGI_LONG_MAX_VALUE, BIGI_LONG_MIN_VALUE, mathContext, mathScale`

Constructor Summary
`JexlThreadedArithmetic(boolean lenient)` Standard ctor.
`JexlThreadedArithmetic(boolean lenient, MathContext bigdContext, int bigdScale)` Creates a JexlThreadedArithmetic instance.

Method Summary
`MathContext` | `getMathContext()` The MathContext instance used for +,-,/,*,% operations on big decimals.
`int` | `getMathScale()` The BigDecimal scale used for comparison and coercion operations.
`boolean` | `isLenient()` Checks whether this JexlArithmetic instance triggers errors during evaluation when null is used as an operand.
`static void` | `setLenient(Boolean flag)` Overrides the default behavior and sets whether this JexlArithmetic instance triggers errors during evaluation when null is used as an operand for the current thread.
`static void` | `setMathContext(MathContext mc)` Sets the math context.
`static void` | `setMathScale(Integer scale)` Sets the math scale.

Methods inherited from class org.apache.commons.jexl2.JexlArithmetic
`add, bitwiseAnd, bitwiseComplement, bitwiseOr, bitwiseXor, compare, controlNullNullOperands, controlNullOperand, divide, equals, greaterThan, greaterThanOrEqual, isFloatingPoint, isFloatingPointNumber, isFloatingPointType, isNumberable, lessThan, lessThanOrEqual, matches, mod, multiply, narrow, narrowAccept, narrowArguments, narrowArrayType, narrowBigDecimal, narrowBigInteger, narrowNumber, negate, roundBigDecimal, subtract, toBigDecimal, toBigInteger, toBoolean, toDouble, toInteger, toLong, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### JexlThreadedArithmetic

    public JexlThreadedArithmetic(boolean lenient)

  Standard ctor.

  Parameters:
    `lenient` - lenient versus strict evaluation flag

### JexlThreadedArithmetic

    public JexlThreadedArithmetic(boolean lenient,
                                  MathContext bigdContext,
                                  int bigdScale)

  Creates a JexlThreadedArithmetic instance.

  Parameters:
    `lenient` - whether this arithmetic is lenient or strict
    `bigdContext` - the math context instance to use for +,-,/,*,% operations on big decimals.
    `bigdScale` - the scale used for big decimals.

Method Detail

### setLenient

    public static void setLenient(Boolean flag)

  Overrides the default behavior and sets whether this JexlArithmetic instance triggers errors during evaluation when null is used as an operand for the current thread.

  It is advised to protect calls by either calling JexlThreadedArithmetic.setLenient explicitly before evaluation or add a try/finally clause resetting the flag to avoid unexpected reuse of the lenient flag value through thread pools side-effects.

  Parameters:
    `flag` - true means no JexlException will occur, false allows them, null reverts to default behavior
  See Also:
    `JexlEngine.setSilent(boolean)`, `JexlEngine.setDebug(boolean)`

### setMathScale

    public static void setMathScale(Integer scale)

  Sets the math scale.

  The goal and constraints are the same than for setLenient.

  Parameters:
    `scale` - the scale

### setMathContext

    public static void setMathContext(MathContext mc)

  Sets the math context.

  The goal and constraints are the same than for setLenient.

  Parameters:
    `mc` - the math context

### isLenient

    public boolean isLenient()

  Checks whether this JexlArithmetic instance triggers errors during evaluation when null is used as an operand.

  Overrides:
    `isLenient` in class `JexlArithmetic`
  Returns:
    true if lenient, false if strict

### getMathScale

    public int getMathScale()

  Description copied from class: `JexlArithmetic`
  The BigDecimal scale used for comparison and coercion operations.

  Overrides:
    `getMathScale` in class `JexlArithmetic`
  Returns:
    the scale

### getMathContext

    public MathContext getMathContext()

  Description copied from class: `JexlArithmetic`
  The MathContext instance used for +,-,/,*,% operations on big decimals.

  Overrides:
    `getMathContext` in class `JexlArithmetic`
  Returns:
    the math context

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.