switch( operator )
{
case EQUAL:
return new EqualsToPredicate( fieldName, Coercions.coerce( value, expectedFieldType ) );
case NOT_EQUAL:
return new NotEqualsToPredicate( fieldName, Coercions.coerce( value, expectedFieldType ) );
case LESS_THAN:
return new LessThanPredicate( fieldName, (Comparable) Coercions.coerce( value, expectedFieldType ) );
case LESS_OR_EQUAL:
return new LessOrEqualThanPredicate( fieldName, (Comparable) Coercions.coerce( value, expectedFieldType ) );
case GREATER_THAN: