From 61bf2434673f9ab1f7b768b198d163bfab1ea64d Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 27 Sep 2011 11:31:50 +0200 Subject: [PATCH] DATACMNS-78 - Added LessThanEqual and GreaterThanEqual as supported keywords. --- .../data/repository/query/parser/Part.java | 6 ++++- .../query/parser/PartTreeUnitTests.java | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/repository/query/parser/Part.java b/spring-data-commons-core/src/main/java/org/springframework/data/repository/query/parser/Part.java index 6f5520ffa1..27e12f5ff9 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/repository/query/parser/Part.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/repository/query/parser/Part.java @@ -178,8 +178,12 @@ public static enum Type { IS_NULL(0, "IsNull", "Null"), LESS_THAN("LessThan"), + + LESS_THAN_EQUAL("LessThanEqual"), GREATER_THAN("GreaterThan"), + + GREATER_THAN_EQUAL("GreaterThanEqual"), NOT_LIKE("NotLike"), @@ -199,7 +203,7 @@ public static enum Type { // Need to list them again explicitly as the order is important // (esp. for IS_NULL, IS_NOT_NULL) - private static final List ALL = Arrays.asList(IS_NOT_NULL, IS_NULL, BETWEEN, LESS_THAN, GREATER_THAN, + private static final List ALL = Arrays.asList(IS_NOT_NULL, IS_NULL, BETWEEN, LESS_THAN, LESS_THAN_EQUAL, GREATER_THAN, GREATER_THAN_EQUAL, NOT_LIKE, LIKE, NOT_IN, IN, NEAR, WITHIN, NEGATING_SIMPLE_PROPERTY, SIMPLE_PROPERTY); private List keywords; diff --git a/spring-data-commons-core/src/test/java/org/springframework/data/repository/query/parser/PartTreeUnitTests.java b/spring-data-commons-core/src/test/java/org/springframework/data/repository/query/parser/PartTreeUnitTests.java index ba838f2a0f..194859a858 100644 --- a/spring-data-commons-core/src/test/java/org/springframework/data/repository/query/parser/PartTreeUnitTests.java +++ b/spring-data-commons-core/src/test/java/org/springframework/data/repository/query/parser/PartTreeUnitTests.java @@ -184,6 +184,32 @@ public void detectsSpecificIgnoringCase() throws Exception { assertThat(parts.next().shouldIgnoreCase(), is(IgnoreCaseType.NEVER)); } + /** + * @see DATACMNS-78 + */ + @Test + public void parsesLessThanEqualCorrectly() { + + PartTree tree = partTree("findByLastnameLessThanEqual"); + for (Part part : tree.getParts()) { + assertThat(part.getType(), is(Type.LESS_THAN_EQUAL)); + assertThat(part.getProperty(), is(newProperty("lastname"))); + } + } + + /** + * @see DATACMNS-78 + */ + @Test + public void parsesGreaterThanEqualCorrectly() { + + PartTree tree = partTree("findByLastnameGreaterThanEqual"); + for (Part part : tree.getParts()) { + assertThat(part.getType(), is(Type.GREATER_THAN_EQUAL)); + assertThat(part.getProperty(), is(newProperty("lastname"))); + } + } + private PartTree partTree(String source) { return new PartTree(source, User.class); }