From 3a6113c5e832c5501a1b0d9e61ab2d3d437f5fd7 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 2 Mar 2011 11:14:50 +0100 Subject: [PATCH] Added toString methods to make debugging easier. --- .../data/repository/query/parser/Part.java | 12 +++++++++ .../repository/query/parser/PartTree.java | 27 +++++++++++++++++++ .../query/parser/PartTreeUnitTests.java | 11 ++++++++ 3 files changed, 50 insertions(+) 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 d16eed9cc..85eb537d8 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 @@ -113,6 +113,18 @@ public class Part { } + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + + return String.format("%s %s", property.getName(), type); + } + + /** * @return the type */ diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/repository/query/parser/PartTree.java b/spring-data-commons-core/src/main/java/org/springframework/data/repository/query/parser/PartTree.java index 0bf145a22..826799ac5 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/repository/query/parser/PartTree.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/repository/query/parser/PartTree.java @@ -27,6 +27,7 @@ import java.util.regex.Pattern; import org.springframework.data.domain.Sort; import org.springframework.data.repository.query.parser.PartTree.OrPart; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; /** @@ -179,6 +180,20 @@ public class PartTree implements Iterable { return group != null && group.contains(DISTINCT); } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + + return String.format("%s %s", + StringUtils.collectionToDelimitedString(nodes, " or "), + orderBySource.toString()); + } + /** * A part of the parsed source that results from splitting up the resource * ar {@literal Or} keywords. Consists of {@link Part}s that have to be @@ -209,6 +224,18 @@ public class PartTree implements Iterable { } + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + + return StringUtils.collectionToDelimitedString(children, " and "); + } + + /* * (non-Javadoc) * 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 f7223d120..1f1f9c2f2 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 @@ -82,6 +82,17 @@ public class PartTreeUnitTests { } + @Test + public void parsesCombinedAndAndOrPropertiesCorrectly() throws Exception { + + PartTree tree = + new PartTree("firstnameAndLastnameOrLastname", User.class); + assertPart(tree, new Part[] { new Part("firstname", User.class), + new Part("lastname", User.class) }, new Part[] { new Part( + "lastname", User.class) }); + } + + @Test public void hasSortIfOrderByIsGiven() throws Exception {