public static Expression unary(
UnaryTestNode.UnaryOperator operator,
Expression right) {
switch (operator) {
case LTE:
return unaryComparison("lte", right);
case LT:
return unaryComparison("lt", right);
case GT:
return unaryComparison("gt", right);
case GTE:
return unaryComparison("gte", right);
case EQ:
return new MethodCallExpr(null, "gracefulEq", new NodeList<>(FeelCtx.FEELCTX, right, LEFT_EXPR));
case NE:
return unaryComparison("ne", right);
case IN:
return new MethodCallExpr(null, "includes", new NodeList<>(FeelCtx.FEELCTX, right, LEFT_EXPR));
case NOT:
return new MethodCallExpr(null, "notExists", new NodeList<>(FeelCtx.FEELCTX, right, LEFT_EXPR));
case TEST:
return coerceToBoolean(right);
default:
throw new UnsupportedOperationException(operator.toString());
}
}