@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;
}