From 498f40b69f59133b0f581449e17726ce9372bc3b Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Mon, 5 Dec 2011 12:52:52 +0100 Subject: [PATCH] DATACMNS-107 - Added support for True and False as query method keywords. --- .../data/repository/query/parser/Part.java | 4 ++- .../query/parser/PartTreeUnitTests.java | 27 +++++++++++++++++++ 2 files changed, 30 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 7e44630f0..a6a74adc9 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 @@ -187,13 +187,15 @@ public class Part { WITHIN("Within"), REGEX("Regex"), EXISTS(0, "Exists"), + TRUE(0, "True"), + FALSE(0, "False"), 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 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, REGEX, EXISTS, NEGATING_SIMPLE_PROPERTY, SIMPLE_PROPERTY); + NOT_LIKE, LIKE, NOT_IN, IN, NEAR, WITHIN, REGEX, EXISTS, TRUE, FALSE, NEGATING_SIMPLE_PROPERTY, SIMPLE_PROPERTY); private final List keywords; private final int numberOfArguments; 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 c4757c784..3e63e5712 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 @@ -259,6 +259,32 @@ public class PartTreeUnitTests { assertThat(part.getParameterRequired(), is(true)); } + /** + * @see DATACMNS-107 + */ + @Test + public void parsesTrueKeywordCorrectly() { + + Part part = part("activeTrue"); + assertThat(part.getType(), is(Type.TRUE)); + assertThat(part.getProperty().toDotPath(), is("active")); + assertThat(part.getNumberOfArguments(), is(0)); + assertThat(part.getParameterRequired(), is(false)); + } + + /** + * @see DATACMNS-107 + */ + @Test + public void parsesFalseKeywordCorrectly() { + + Part part = part("activeTrue"); + assertThat(part.getType(), is(Type.TRUE)); + assertThat(part.getProperty().toDotPath(), is("active")); + assertThat(part.getNumberOfArguments(), is(0)); + assertThat(part.getParameterRequired(), is(false)); + } + private PartTree partTree(String source) { return new PartTree(source, User.class); } @@ -307,5 +333,6 @@ public class PartTreeUnitTests { String firstname; String lastname; double[] location; + boolean active; } }