From ec7c7048db86a677e85d4d066cd76f77cd1cc23a Mon Sep 17 00:00:00 2001
From: rbygrave
Date: Wed, 11 Aug 2021 13:19:44 +1200
Subject: [PATCH] Refactor rename BindHash to BindValuesKey
---
.../java/io/ebeaninternal/api/BindHash.java | 29 --------------
.../java/io/ebeaninternal/api/BindParams.java | 12 +++---
.../io/ebeaninternal/api/BindValuesKey.java | 35 +++++++++++++++++
.../java/io/ebeaninternal/api/HashQuery.java | 12 +++---
.../io/ebeaninternal/api/SpiExpression.java | 2 +-
.../java/io/ebeaninternal/api/SpiQuery.java | 2 +-
.../expression/AbstractTextExpression.java | 4 +-
.../expression/AllEqualsExpression.java | 10 ++---
.../expression/ArrayContainsExpression.java | 8 ++--
.../expression/ArrayIsEmptyExpression.java | 6 +--
.../server/expression/BetweenExpression.java | 6 +--
.../expression/BetweenPropertyExpression.java | 6 +--
.../server/expression/BitwiseExpression.java | 6 +--
.../CaseInsensitiveEqualExpression.java | 6 +--
.../expression/DefaultExampleExpression.java | 10 ++---
.../expression/DefaultExpressionList.java | 10 ++---
.../expression/ExistsQueryExpression.java | 6 +--
.../server/expression/IdExpression.java | 6 +--
.../server/expression/IdInExpression.java | 8 ++--
.../server/expression/InExpression.java | 8 ++--
.../server/expression/InPairsExpression.java | 8 ++--
.../server/expression/InQueryExpression.java | 6 +--
.../server/expression/InRangeExpression.java | 6 +--
.../server/expression/IsEmptyExpression.java | 4 +-
.../server/expression/JsonPathExpression.java | 6 +--
.../server/expression/JunctionExpression.java | 6 +--
.../server/expression/LikeExpression.java | 6 +--
.../server/expression/LogicExpression.java | 6 +--
.../expression/NativeILikeExpression.java | 6 +--
.../NestedPathWrapperExpression.java | 6 +--
.../server/expression/NoopExpression.java | 4 +-
.../server/expression/NotExpression.java | 6 +--
.../server/expression/NullExpression.java | 6 +--
.../server/expression/RawExpression.java | 8 ++--
.../server/expression/SimpleExpression.java | 6 +--
.../server/querydefn/DefaultOrmQuery.java | 18 ++++-----
.../server/expression/RawExpressionTest.java | 14 +++----
.../server/querydefn/BindHashTest.java | 38 -------------------
.../server/querydefn/BindValuesKeyTest.java | 38 +++++++++++++++++++
.../server/querydefn/DefaultOrmQueryTest.java | 16 ++++----
40 files changed, 204 insertions(+), 202 deletions(-)
delete mode 100644 ebean-core/src/main/java/io/ebeaninternal/api/BindHash.java
create mode 100644 ebean-core/src/main/java/io/ebeaninternal/api/BindValuesKey.java
delete mode 100644 ebean-core/src/test/java/io/ebeaninternal/server/querydefn/BindHashTest.java
create mode 100644 ebean-core/src/test/java/io/ebeaninternal/server/querydefn/BindValuesKeyTest.java
diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/BindHash.java b/ebean-core/src/main/java/io/ebeaninternal/api/BindHash.java
deleted file mode 100644
index b3ad8e49b..000000000
--- a/ebean-core/src/main/java/io/ebeaninternal/api/BindHash.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package io.ebeaninternal.api;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * BindHash implementation.
- */
-public class BindHash {
-
- private final List
*/
@Override
- public void queryBindHash(BindHash hash) {
- hash.update(id);
- if (whereExpressions != null) whereExpressions.queryBindHash(hash);
- if (havingExpressions != null) havingExpressions.queryBindHash(hash);
- if (bindParams != null) bindParams.queryBindHash(hash);
- hash.update(asOf).update(versionsStart).update(versionsEnd);
+ public void queryBindHash(BindValuesKey key) {
+ key.add(id);
+ if (whereExpressions != null) whereExpressions.queryBindHash(key);
+ if (havingExpressions != null) havingExpressions.queryBindHash(key);
+ if (bindParams != null) bindParams.queryBindHash(key);
+ key.add(asOf).add(versionsStart).add(versionsEnd);
}
/**
@@ -1244,9 +1244,9 @@ public class DefaultOrmQuery extends AbstractQuery implements SpiQuery {
public HashQuery queryHash() {
// calculateQueryPlanHash is called just after potential AutoTune tuning
// so queryPlanHash is calculated well before this method is called
- BindHash hash = new BindHash();
- queryBindHash(hash);
- return new HashQuery(queryPlanKey, hash);
+ BindValuesKey bindKey = new BindValuesKey();
+ queryBindHash(bindKey);
+ return new HashQuery(queryPlanKey, bindKey);
}
@Override
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/expression/RawExpressionTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/expression/RawExpressionTest.java
index 99c7d7eec..3568a3bf6 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/expression/RawExpressionTest.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/expression/RawExpressionTest.java
@@ -3,7 +3,7 @@ package io.ebeaninternal.server.expression;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
-import io.ebeaninternal.api.BindHash;
+import io.ebeaninternal.api.BindValuesKey;
public class RawExpressionTest extends BaseExpressionTest {
@@ -62,16 +62,16 @@ public class RawExpressionTest extends BaseExpressionTest {
}
public void assert_queryBindHash_isDifferent(RawExpression exp0, RawExpression exp1) {
- assertThat(getHash(exp0)).isNotEqualTo(getHash(exp1));
+ assertThat(bindKey(exp0)).isNotEqualTo(bindKey(exp1));
}
public void assert_queryBindHash_isSame(RawExpression exp0, RawExpression exp1) {
- assertThat(getHash(exp0)).isEqualTo(getHash(exp1));
+ assertThat(bindKey(exp0)).isEqualTo(bindKey(exp1));
}
- private int getHash(RawExpression query) {
- BindHash hash = new BindHash();
- query.queryBindHash(hash);
- return hash.hashCode();
+ private BindValuesKey bindKey(RawExpression query) {
+ BindValuesKey bindValuesKey = new BindValuesKey();
+ query.queryBindHash(bindValuesKey);
+ return bindValuesKey;
}
}
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/BindHashTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/BindHashTest.java
deleted file mode 100644
index a74f4432f..000000000
--- a/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/BindHashTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.ebeaninternal.server.querydefn;
-
-import io.ebeaninternal.api.BindHash;
-import org.junit.Test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class BindHashTest {
-
- @Test
- public void update_with_null() {
-
- BindHash hash = new BindHash();
- hash.update(1).update(null).update("hello");
-
- BindHash hash2 = new BindHash();
- hash2.update(1).update(null).update("hello");
-
- assertThat(hash).isEqualTo(hash2);
- }
-
- @Test
- public void notEqual() {
-
- BindHash hash = new BindHash();
- hash.update(1).update(null).update("hello");
-
- BindHash hash2 = new BindHash();
- hash2.update(1).update("hello");
-
- BindHash hash3 = new BindHash();
- hash2.update(1).update(null);
-
- assertThat(hash).isNotEqualTo(hash2);
- assertThat(hash).isNotEqualTo(hash3);
- assertThat(hash2).isNotEqualTo(hash3);
- }
-}
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/BindValuesKeyTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/BindValuesKeyTest.java
new file mode 100644
index 000000000..1a7d3b39f
--- /dev/null
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/BindValuesKeyTest.java
@@ -0,0 +1,38 @@
+package io.ebeaninternal.server.querydefn;
+
+import io.ebeaninternal.api.BindValuesKey;
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class BindValuesKeyTest {
+
+ @Test
+ public void update_with_null() {
+
+ BindValuesKey hash = new BindValuesKey();
+ hash.add(1).add(null).add("hello");
+
+ BindValuesKey hash2 = new BindValuesKey();
+ hash2.add(1).add(null).add("hello");
+
+ assertThat(hash).isEqualTo(hash2);
+ }
+
+ @Test
+ public void notEqual() {
+
+ BindValuesKey hash = new BindValuesKey();
+ hash.add(1).add(null).add("hello");
+
+ BindValuesKey hash2 = new BindValuesKey();
+ hash2.add(1).add("hello");
+
+ BindValuesKey hash3 = new BindValuesKey();
+ hash2.add(1).add(null);
+
+ assertThat(hash).isNotEqualTo(hash2);
+ assertThat(hash).isNotEqualTo(hash3);
+ assertThat(hash2).isNotEqualTo(hash3);
+ }
+}
diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java
index 999459892..b3b657c4a 100644
--- a/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java
+++ b/ebean-core/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java
@@ -4,7 +4,7 @@ package io.ebeaninternal.server.querydefn;
import io.ebean.BaseTestCase;
import io.ebean.CacheMode;
import io.ebean.Ebean;
-import io.ebeaninternal.api.BindHash;
+import io.ebeaninternal.api.BindValuesKey;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.core.OrmQueryRequest;
import org.junit.Test;
@@ -63,7 +63,7 @@ public class DefaultOrmQueryTest extends BaseTestCase {
prepare(q1, q2);
assertThat(q1.createQueryPlanKey()).isNotEqualTo(q2.createQueryPlanKey());
- assertThat(getHash(q1)).isNotEqualTo(getHash(q2));
+ assertThat(bindKey(q1)).isNotEqualTo(bindKey(q2));
}
@Test
@@ -74,7 +74,7 @@ public class DefaultOrmQueryTest extends BaseTestCase {
prepare(q1, q2);
assertThat(q1.createQueryPlanKey()).isEqualTo(q2.createQueryPlanKey());
- assertThat(getHash(q1)).isNotEqualTo(getHash(q2));
+ assertThat(bindKey(q1)).isNotEqualTo(bindKey(q2));
}
@Test
@@ -85,7 +85,7 @@ public class DefaultOrmQueryTest extends BaseTestCase {
prepare(q1, q2);
assertThat(q1.createQueryPlanKey()).isEqualTo(q2.createQueryPlanKey());
- assertThat(getHash(q1)).isEqualTo(getHash(q2));
+ assertThat(bindKey(q1)).isEqualTo(bindKey(q2));
}
@Test
@@ -112,9 +112,9 @@ public class DefaultOrmQueryTest extends BaseTestCase {
q2.prepare(r2);
}
- private int getHash(DefaultOrmQuery query) {
- BindHash hash = new BindHash();
- query.queryBindHash(hash);
- return hash.hashCode();
+ private BindValuesKey bindKey(DefaultOrmQuery query) {
+ BindValuesKey key = new BindValuesKey();
+ query.queryBindHash(key);
+ return key;
}
}