@Override public UnaryTest evaluate(EvaluationContext ctx) { switch ( operator ) { case LTE: return new UnaryTestImpl( createCompareUnaryTest( (l, r) -> l.compareTo( r ) <= 0 ) , value.getText() ); case LT: return new UnaryTestImpl( createCompareUnaryTest( (l, r) -> l.compareTo( r ) < 0 ) , value.getText() ); case GT: return new UnaryTestImpl( createCompareUnaryTest( (l, r) -> l.compareTo( r ) > 0 ) , value.getText() ); case GTE: return new UnaryTestImpl( createCompareUnaryTest( (l, r) -> l.compareTo( r ) >= 0 ) , value.getText() ); case EQ: return new UnaryTestImpl( createIsEqualUnaryTest( ) , value.getText() ); case NE: return new UnaryTestImpl( createIsNotEqualUnaryTest( ) , value.getText() ); case IN: return new UnaryTestImpl( createInUnaryTest() , value.getText() ); case NOT: return new UnaryTestImpl( createNotUnaryTest() , value.getText() ); case TEST: return new UnaryTestImpl( createBooleanUnaryTest(), value.getText() ); } ctx.notifyEvt( astEvent(Severity.ERROR, Msg.createMessage(Msg.NULL_OR_UNKNOWN_OPERATOR))); return null; }