DATACMNS-16, DATAJPA-29 - Cleaned up Part class.

Removed operator property (as it was JPA specific) and added 'In' keyword.
This commit is contained in:
Oliver Gierke
2011-02-22 21:40:04 +01:00
parent aeee6935f5
commit dd45054da2

View File

@@ -129,31 +129,32 @@ public class Part {
*/
public static enum Type {
BETWEEN(null, 2, "Between"),
BETWEEN(2, "Between"),
IS_NOT_NULL(null, 0, "IsNotNull", "NotNull"),
IS_NOT_NULL(0, "IsNotNull", "NotNull"),
IS_NULL(null, 0, "IsNull", "Null"),
IS_NULL(0, "IsNull", "Null"),
LESS_THAN("<", "LessThan"),
LESS_THAN("LessThan"),
GREATER_THAN(">", "GreaterThan"),
GREATER_THAN("GreaterThan"),
NOT_LIKE("not like", "NotLike"),
NOT_LIKE("NotLike"),
LIKE("like", "Like"),
LIKE("Like"),
NEGATING_SIMPLE_PROPERTY("<>", "Not"),
IN("In"),
SIMPLE_PROPERTY("=");
NEGATING_SIMPLE_PROPERTY("Not"),
SIMPLE_PROPERTY;
// Need to list them again explicitly as the order is important
// (esp. for IS_NULL, IS_NOT_NULL)
private static final List<Part.Type> ALL = Arrays.asList(IS_NOT_NULL,
IS_NULL, BETWEEN, LESS_THAN, GREATER_THAN, NOT_LIKE, LIKE,
IS_NULL, BETWEEN, LESS_THAN, GREATER_THAN, NOT_LIKE, LIKE, IN,
NEGATING_SIMPLE_PROPERTY, SIMPLE_PROPERTY);
private List<String> keywords;
private String operator;
private int numberOfArguments;
@@ -166,17 +167,16 @@ public class Part {
* @param numberOfArguments
* @param keywords
*/
private Type(String operator, int numberOfArguments, String... keywords) {
private Type(int numberOfArguments, String... keywords) {
this.operator = operator;
this.numberOfArguments = numberOfArguments;
this.keywords = Arrays.asList(keywords);
}
private Type(String operator, String... keywords) {
private Type(String... keywords) {
this(operator, 1, keywords);
this(1, keywords);
}
@@ -202,12 +202,6 @@ public class Part {
}
public String getOperator() {
return this.operator;
}
/**
* Returns whether the the type supports the given raw property. Default
* implementation checks whether the property ends with the registered