This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository nuiton-utils. See https://gitlab.nuiton.org/nuiton/nuiton-utils.git commit 6ef976fc2c2724d0bee67545d69e17d36e7e2259 Author: Arnaud Thimel <thimel@codelutin.com> Date: Fri Sep 30 22:59:16 2016 +0200 fixes #4051 Implement equals and hashCode on PaginationParameter and PaginationOrder --- .../nuiton/util/pagination/PaginationOrder.java | 26 +++++++++++++++++++ .../util/pagination/PaginationParameter.java | 29 ++++++++++++++++++++++ .../util/pagination/PaginationParameterTest.java | 28 +++++++++++++++++++++ 3 files changed, 83 insertions(+) diff --git a/src/main/java/org/nuiton/util/pagination/PaginationOrder.java b/src/main/java/org/nuiton/util/pagination/PaginationOrder.java index 5d294a4..b8d2930 100644 --- a/src/main/java/org/nuiton/util/pagination/PaginationOrder.java +++ b/src/main/java/org/nuiton/util/pagination/PaginationOrder.java @@ -58,4 +58,30 @@ public class PaginationOrder implements Serializable { this.desc = desc; } + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + PaginationOrder that = (PaginationOrder) o; + + if (desc != that.desc) { + return false; + } + boolean result = clause != null ? clause.equals(that.clause) : that.clause == null; + return result; + + } + + @Override + public int hashCode() { + int result = clause != null ? clause.hashCode() : 0; + result = 31 * result + (desc ? 1 : 0); + return result; + } + } diff --git a/src/main/java/org/nuiton/util/pagination/PaginationParameter.java b/src/main/java/org/nuiton/util/pagination/PaginationParameter.java index 827e049..9ab8416 100644 --- a/src/main/java/org/nuiton/util/pagination/PaginationParameter.java +++ b/src/main/java/org/nuiton/util/pagination/PaginationParameter.java @@ -215,6 +215,35 @@ public class PaginationParameter implements Serializable { return endIndex; } + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + PaginationParameter that = (PaginationParameter) o; + + if (pageNumber != that.pageNumber) { + return false; + } + if (pageSize != that.pageSize) { + return false; + } + boolean result = orderClauses.equals(that.orderClauses); + return result; + } + + @Override + public int hashCode() { + int result = pageNumber; + result = 31 * result + pageSize; + result = 31 * result + orderClauses.hashCode(); + return result; + } + /** * Class used to build an instance of PaginationParameter. Use the {@link #build()} method to create the * {@link org.nuiton.util.pagination.PaginationParameter}. diff --git a/src/test/java/org/nuiton/util/pagination/PaginationParameterTest.java b/src/test/java/org/nuiton/util/pagination/PaginationParameterTest.java index 5b39cd6..9471a8c 100644 --- a/src/test/java/org/nuiton/util/pagination/PaginationParameterTest.java +++ b/src/test/java/org/nuiton/util/pagination/PaginationParameterTest.java @@ -88,4 +88,32 @@ public class PaginationParameterTest { paginationParameter.getStartIndex(); } + @Test + public void testEquals() { + + // Tests without order clauses + Assert.assertEquals(PaginationParameter.ALL, PaginationParameter.ALL); + Assert.assertEquals(PaginationParameter.ALL, PaginationParameter.of(0, -1)); + Assert.assertNotEquals(PaginationParameter.ALL, PaginationParameter.of(0, 1)); + Assert.assertNotEquals(PaginationParameter.of(1, 1), PaginationParameter.of(0, 1)); + + // Tests with order clauses + Assert.assertNotEquals( + PaginationParameter.of(0, 5), + PaginationParameter.of(0, 5, "oc", true)); + Assert.assertEquals( + PaginationParameter.of(0, 5, "oc", false), + PaginationParameter.of(0, 5, "oc", false)); + Assert.assertNotEquals( + PaginationParameter.of(0, 5, "oc", false), + PaginationParameter.of(0, 5, "oc", true)); + Assert.assertNotEquals( + PaginationParameter.of(0, 5, "oc5", false, "oc2", true), + PaginationParameter.of(0, 5, "oc", false, "oc2", true)); + Assert.assertEquals( + PaginationParameter.of(0, 5, "oc5", false, "oc2", true, "oc3", false), + PaginationParameter.of(0, 5, "oc5", false, "oc2", true, "oc3", false)); + + } + } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.