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:
return new GreaterThanPredicate( fieldName, (Comparable) Coercions.coerce( value, expectedFieldType ) );
case GREATER_OR_EQUAL: