in src/main/java/org/apache/commons/jexl3/JexlArithmetic.java [1521:1556]
public Object negate(final Object val) {
if (val == null) {
return null;
}
if (val instanceof Integer) {
return -((Integer) val);
}
if (val instanceof Double) {
return - ((Double) val);
}
if (val instanceof Long) {
return -((Long) val);
}
if (val instanceof BigDecimal) {
return ((BigDecimal) val).negate();
}
if (val instanceof BigInteger) {
return ((BigInteger) val).negate();
}
if (val instanceof Float) {
return -((Float) val);
}
if (val instanceof Short) {
return (short) -((Short) val);
}
if (val instanceof Byte) {
return (byte) -((Byte) val);
}
if (val instanceof Boolean) {
return !(Boolean) val;
}
if (val instanceof AtomicBoolean) {
return !((AtomicBoolean) val).get();
}
throw new ArithmeticException("Object negate:(" + val + ")");
}