public BooleanLiteral(String payload, int startPos, int endPos, boolean value) { super(payload, startPos, endPos); this.value = BooleanTypedValue.forValue(value); this.exitTypeDescriptor = "Z"; }
public BooleanLiteral(String payload, int pos, boolean value) { super(payload, pos); this.value = BooleanTypedValue.forValue(value); this.exitTypeDescriptor = "Z"; }
BigDecimal leftBigDecimal = NumberUtils.convertNumberToTargetClass(leftNumber, BigDecimal.class); BigDecimal rightBigDecimal = NumberUtils.convertNumberToTargetClass(rightNumber, BigDecimal.class); return BooleanTypedValue.forValue(leftBigDecimal.compareTo(rightBigDecimal) >= 0); return BooleanTypedValue.forValue(leftNumber.doubleValue() >= rightNumber.doubleValue()); return BooleanTypedValue.forValue(leftNumber.floatValue() >= rightNumber.floatValue()); return BooleanTypedValue.forValue(leftBigInteger.compareTo(rightBigInteger) >= 0); return BooleanTypedValue.forValue(leftNumber.longValue() >= rightNumber.longValue()); return BooleanTypedValue.forValue(leftNumber.intValue() >= rightNumber.intValue()); return BooleanTypedValue.forValue(leftNumber.shortValue() >= rightNumber.shortValue()); return BooleanTypedValue.forValue(leftNumber.byteValue() >= rightNumber.byteValue()); return BooleanTypedValue.forValue(leftNumber.doubleValue() >= rightNumber.doubleValue()); return BooleanTypedValue.forValue(state.getTypeComparator().compare(left, right) >= 0);
BigDecimal leftBigDecimal = NumberUtils.convertNumberToTargetClass(leftNumber, BigDecimal.class); BigDecimal rightBigDecimal = NumberUtils.convertNumberToTargetClass(rightNumber, BigDecimal.class); return BooleanTypedValue.forValue(leftBigDecimal.compareTo(rightBigDecimal) < 0); return BooleanTypedValue.forValue(leftNumber.doubleValue() < rightNumber.doubleValue()); return BooleanTypedValue.forValue(leftNumber.floatValue() < rightNumber.floatValue()); return BooleanTypedValue.forValue(leftBigInteger.compareTo(rightBigInteger) < 0); return BooleanTypedValue.forValue(leftNumber.longValue() < rightNumber.longValue()); return BooleanTypedValue.forValue(leftNumber.intValue() < rightNumber.intValue()); return BooleanTypedValue.forValue(leftNumber.shortValue() < rightNumber.shortValue()); return BooleanTypedValue.forValue(leftNumber.byteValue() < rightNumber.byteValue()); return BooleanTypedValue.forValue(leftNumber.doubleValue() < rightNumber.doubleValue()); return BooleanTypedValue.forValue(state.getTypeComparator().compare(left, right) < 0);
BigDecimal leftBigDecimal = NumberUtils.convertNumberToTargetClass(leftNumber, BigDecimal.class); BigDecimal rightBigDecimal = NumberUtils.convertNumberToTargetClass(rightNumber, BigDecimal.class); return BooleanTypedValue.forValue(leftBigDecimal.compareTo(rightBigDecimal) > 0); return BooleanTypedValue.forValue(leftNumber.doubleValue() > rightNumber.doubleValue()); return BooleanTypedValue.forValue(leftNumber.floatValue() > rightNumber.floatValue()); return BooleanTypedValue.forValue(leftBigInteger.compareTo(rightBigInteger) > 0); return BooleanTypedValue.forValue(leftNumber.longValue() > rightNumber.longValue()); return BooleanTypedValue.forValue(leftNumber.intValue() > rightNumber.intValue()); return BooleanTypedValue.forValue(leftNumber.shortValue() > rightNumber.shortValue()); return BooleanTypedValue.forValue(leftNumber.byteValue() > rightNumber.byteValue()); return BooleanTypedValue.forValue(leftNumber.doubleValue() > rightNumber.doubleValue()); return BooleanTypedValue.forValue(state.getTypeComparator().compare(left, right) > 0);
BigDecimal leftBigDecimal = NumberUtils.convertNumberToTargetClass(leftNumber, BigDecimal.class); BigDecimal rightBigDecimal = NumberUtils.convertNumberToTargetClass(rightNumber, BigDecimal.class); return BooleanTypedValue.forValue(leftBigDecimal.compareTo(rightBigDecimal) <= 0); return BooleanTypedValue.forValue(leftNumber.doubleValue() <= rightNumber.doubleValue()); return BooleanTypedValue.forValue(leftNumber.floatValue() <= rightNumber.floatValue()); return BooleanTypedValue.forValue(leftBigInteger.compareTo(rightBigInteger) <= 0); return BooleanTypedValue.forValue(leftNumber.longValue() <= rightNumber.longValue()); return BooleanTypedValue.forValue(leftNumber.intValue() <= rightNumber.intValue()); return BooleanTypedValue.forValue(leftNumber.shortValue() <= rightNumber.shortValue()); return BooleanTypedValue.forValue(leftNumber.byteValue() <= rightNumber.byteValue()); return BooleanTypedValue.forValue(leftNumber.doubleValue() <= rightNumber.doubleValue()); return BooleanTypedValue.forValue(state.getTypeComparator().compare(left, right) <= 0);
@Override public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException { if (getBooleanValue(state, getLeftOperand())) { // no need to evaluate right operand return BooleanTypedValue.TRUE; } return BooleanTypedValue.forValue(getBooleanValue(state, getRightOperand())); }
@Override public TypedValue getValueInternal(ExpressionState state) throws EvaluationException { if (!getBooleanValue(state, getLeftOperand())) { // no need to evaluate right operand return BooleanTypedValue.FALSE; } return BooleanTypedValue.forValue(getBooleanValue(state, getRightOperand())); }
BigDecimal leftBigDecimal = NumberUtils.convertNumberToTargetClass(leftNumber, BigDecimal.class); BigDecimal rightBigDecimal = NumberUtils.convertNumberToTargetClass(rightNumber, BigDecimal.class); return BooleanTypedValue.forValue(leftBigDecimal.compareTo(rightBigDecimal) >= 0); return BooleanTypedValue.forValue(leftNumber.doubleValue() >= rightNumber.doubleValue()); return BooleanTypedValue.forValue(leftNumber.floatValue() >= rightNumber.floatValue()); return BooleanTypedValue.forValue(leftBigInteger.compareTo(rightBigInteger) >= 0); return BooleanTypedValue.forValue(leftNumber.longValue() >= rightNumber.longValue()); return BooleanTypedValue.forValue(leftNumber.intValue() >= rightNumber.intValue()); return BooleanTypedValue.forValue(leftNumber.shortValue() >= rightNumber.shortValue()); return BooleanTypedValue.forValue(leftNumber.byteValue() >= rightNumber.byteValue()); return BooleanTypedValue.forValue(leftNumber.doubleValue() >= rightNumber.doubleValue()); return BooleanTypedValue.forValue(state.getTypeComparator().compare(left, right) >= 0);
@Override public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException { try { Boolean value = this.children[0].getValue(state, Boolean.class); if (value == null) { throw new SpelEvaluationException(SpelMessage.TYPE_CONVERSION_ERROR, "null", "boolean"); } return BooleanTypedValue.forValue(!value); } catch (SpelEvaluationException ex) { ex.setPosition(getChild(0).getStartPosition()); throw ex; } }
BigDecimal leftBigDecimal = NumberUtils.convertNumberToTargetClass(leftNumber, BigDecimal.class); BigDecimal rightBigDecimal = NumberUtils.convertNumberToTargetClass(rightNumber, BigDecimal.class); return BooleanTypedValue.forValue(leftBigDecimal.compareTo(rightBigDecimal) <= 0); return BooleanTypedValue.forValue(leftNumber.doubleValue() <= rightNumber.doubleValue()); return BooleanTypedValue.forValue(leftNumber.floatValue() <= rightNumber.floatValue()); return BooleanTypedValue.forValue(leftBigInteger.compareTo(rightBigInteger) <= 0); return BooleanTypedValue.forValue(leftNumber.longValue() <= rightNumber.longValue()); return BooleanTypedValue.forValue(leftNumber.intValue() <= rightNumber.intValue()); return BooleanTypedValue.forValue(leftNumber.shortValue() <= rightNumber.shortValue()); return BooleanTypedValue.forValue(leftNumber.byteValue() <= rightNumber.byteValue()); return BooleanTypedValue.forValue(leftNumber.doubleValue() <= rightNumber.doubleValue()); return BooleanTypedValue.forValue(state.getTypeComparator().compare(left, right) <= 0);
BigDecimal leftBigDecimal = NumberUtils.convertNumberToTargetClass(leftNumber, BigDecimal.class); BigDecimal rightBigDecimal = NumberUtils.convertNumberToTargetClass(rightNumber, BigDecimal.class); return BooleanTypedValue.forValue(leftBigDecimal.compareTo(rightBigDecimal) > 0); return BooleanTypedValue.forValue(leftNumber.doubleValue() > rightNumber.doubleValue()); return BooleanTypedValue.forValue(leftNumber.floatValue() > rightNumber.floatValue()); return BooleanTypedValue.forValue(leftBigInteger.compareTo(rightBigInteger) > 0); return BooleanTypedValue.forValue(leftNumber.longValue() > rightNumber.longValue()); return BooleanTypedValue.forValue(leftNumber.intValue() > rightNumber.intValue()); return BooleanTypedValue.forValue(leftNumber.shortValue() > rightNumber.shortValue()); return BooleanTypedValue.forValue(leftNumber.byteValue() > rightNumber.byteValue()); return BooleanTypedValue.forValue(leftNumber.doubleValue() > rightNumber.doubleValue()); return BooleanTypedValue.forValue(state.getTypeComparator().compare(left, right) > 0);
BigDecimal leftBigDecimal = NumberUtils.convertNumberToTargetClass(leftNumber, BigDecimal.class); BigDecimal rightBigDecimal = NumberUtils.convertNumberToTargetClass(rightNumber, BigDecimal.class); return BooleanTypedValue.forValue(leftBigDecimal.compareTo(rightBigDecimal) < 0); return BooleanTypedValue.forValue(leftNumber.doubleValue() < rightNumber.doubleValue()); return BooleanTypedValue.forValue(leftNumber.floatValue() < rightNumber.floatValue()); return BooleanTypedValue.forValue(leftBigInteger.compareTo(rightBigInteger) < 0); return BooleanTypedValue.forValue(leftNumber.longValue() < rightNumber.longValue()); return BooleanTypedValue.forValue(leftNumber.intValue() < rightNumber.intValue()); return BooleanTypedValue.forValue(leftNumber.shortValue() < rightNumber.shortValue()); return BooleanTypedValue.forValue(leftNumber.byteValue() < rightNumber.byteValue()); return BooleanTypedValue.forValue(leftNumber.doubleValue() < rightNumber.doubleValue()); return BooleanTypedValue.forValue(state.getTypeComparator().compare(left, right) < 0);
result = BooleanTypedValue.forValue(rightClass.isAssignableFrom(leftValue.getClass()));
@Override public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException { if (getBooleanValue(state, getLeftOperand())) { // no need to evaluate right operand return BooleanTypedValue.TRUE; } return BooleanTypedValue.forValue(getBooleanValue(state, getRightOperand())); }
@Override public TypedValue getValueInternal(ExpressionState state) throws EvaluationException { if (!getBooleanValue(state, getLeftOperand())) { // no need to evaluate right operand return BooleanTypedValue.FALSE; } return BooleanTypedValue.forValue(getBooleanValue(state, getRightOperand())); }
/** * Returns a boolean based on whether a value is in the range expressed. The first * operand is any value whilst the second is a list of two values - those two values * being the bounds allowed for the first operand (inclusive). * @param state the expression state * @return true if the left operand is in the range specified, false otherwise * @throws EvaluationException if there is a problem evaluating the expression */ @Override public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException { Object left = getLeftOperand().getValueInternal(state).getValue(); Object right = getRightOperand().getValueInternal(state).getValue(); if (!(right instanceof List) || ((List<?>) right).size() != 2) { throw new SpelEvaluationException(getRightOperand().getStartPosition(), SpelMessage.BETWEEN_RIGHT_OPERAND_MUST_BE_TWO_ELEMENT_LIST); } List<?> list = (List<?>) right; Object low = list.get(0); Object high = list.get(1); TypeComparator comp = state.getTypeComparator(); try { return BooleanTypedValue.forValue(comp.compare(left, low) >= 0 && comp.compare(left, high) <= 0); } catch (SpelEvaluationException ex) { ex.setPosition(getStartPosition()); throw ex; } }
return BooleanTypedValue.forValue(matcher.matches());
@Override public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException { Object left = getLeftOperand().getValueInternal(state).getValue(); Object right = getRightOperand().getValueInternal(state).getValue(); this.leftActualDescriptor = CodeFlow.toDescriptorFromObject(left); this.rightActualDescriptor = CodeFlow.toDescriptorFromObject(right); return BooleanTypedValue.forValue(equalityCheck(state.getEvaluationContext(), left, right)); }
@Override public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException { Object leftValue = getLeftOperand().getValueInternal(state).getValue(); Object rightValue = getRightOperand().getValueInternal(state).getValue(); this.leftActualDescriptor = CodeFlow.toDescriptorFromObject(leftValue); this.rightActualDescriptor = CodeFlow.toDescriptorFromObject(rightValue); return BooleanTypedValue.forValue(!equalityCheck(state.getEvaluationContext(), leftValue, rightValue)); }