This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new d43d29123 CAY-2837 Deprecate TraversalHelper and move no-op
implementations to TraversalHandler
d43d29123 is described below
commit d43d29123b4b53e8bf00619183b368d0ba57cc40
Author: Nikita Timofeev <[email protected]>
AuthorDate: Tue Jan 23 16:30:49 2024 +0400
CAY-2837 Deprecate TraversalHelper and move no-op implementations to
TraversalHandler
---
RELEASE-NOTES.txt | 1 +
.../access/translator/select/QualifierTranslator.java | 4 ----
.../src/main/java/org/apache/cayenne/exp/Expression.java | 2 +-
.../java/org/apache/cayenne/exp/TraversalHandler.java | 14 +++++++++-----
.../java/org/apache/cayenne/exp/TraversalHelper.java | 16 +++-------------
.../cayenne/reflect/PersistentDescriptorFactory.java | 4 ++--
.../java/org/apache/cayenne/exp/TstTraversalHandler.java | 10 +---------
7 files changed, 17 insertions(+), 34 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 1985cbb66..70d85f9d0 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -62,6 +62,7 @@ CAY-2829 Merge `BaseContext` with `DataContext` and deprecate
it
CAY-2830 Cleanup `DataContext` code
CAY-2831 Upgrade Gradle to 8.5
CAY-2834 v11 upgrade handler should update XMLPoolingDataSourceFactory package
+CAY-2837 Deprecate TraversalHelper and move no-op implementations to
TraversalHandler
Bug Fixes:
diff --git
a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
index fafd5660f..ddab8332f 100644
---
a/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
+++
b/cayenne/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
@@ -473,10 +473,6 @@ class QualifierTranslator implements TraversalHandler {
return result.getLastAttribute();
}
- @Override
- public void finishedChild(Expression node, int childIndex, boolean
hasMoreChildren) {
- }
-
private String expToStr(int type) {
switch (type) {
case AND:
diff --git a/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java
b/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java
index 64ac39e64..fa0a55f5d 100644
--- a/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java
+++ b/cayenne/src/main/java/org/apache/cayenne/exp/Expression.java
@@ -813,7 +813,7 @@ public abstract class Expression implements Serializable,
XMLSerializable {
}
- final class InPlaceParamReplacer extends TraversalHelper {
+ final class InPlaceParamReplacer implements TraversalHandler {
private Object[] parameters;
private int i;
diff --git a/cayenne/src/main/java/org/apache/cayenne/exp/TraversalHandler.java
b/cayenne/src/main/java/org/apache/cayenne/exp/TraversalHandler.java
index 2ca7255cd..f67cb296e 100644
--- a/cayenne/src/main/java/org/apache/cayenne/exp/TraversalHandler.java
+++ b/cayenne/src/main/java/org/apache/cayenne/exp/TraversalHandler.java
@@ -30,10 +30,11 @@ public interface TraversalHandler {
* Called during traversal after a child of expression
* has been visited.
*/
- public void finishedChild(
+ default void finishedChild(
Expression node,
int childIndex,
- boolean hasMoreChildren);
+ boolean hasMoreChildren) {
+ }
/**
* Called during the traversal before an expression node children
@@ -41,7 +42,8 @@ public interface TraversalHandler {
*
* @since 1.1
*/
- public void startNode(Expression node, Expression parentNode);
+ default void startNode(Expression node, Expression parentNode) {
+ }
/**
* Called during the traversal after an expression node children
@@ -49,11 +51,13 @@ public interface TraversalHandler {
*
* @since 1.1
*/
- public void endNode(Expression node, Expression parentNode);
+ default void endNode(Expression node, Expression parentNode) {
+ }
/**
* Called during the traversal when a leaf non-expression node
* is encountered.
*/
- public void objectNode(Object leaf, Expression parentNode);
+ default void objectNode(Object leaf, Expression parentNode) {
+ }
}
diff --git a/cayenne/src/main/java/org/apache/cayenne/exp/TraversalHelper.java
b/cayenne/src/main/java/org/apache/cayenne/exp/TraversalHelper.java
index 0773457ba..4c8161a65 100644
--- a/cayenne/src/main/java/org/apache/cayenne/exp/TraversalHelper.java
+++ b/cayenne/src/main/java/org/apache/cayenne/exp/TraversalHelper.java
@@ -23,19 +23,9 @@ package org.apache.cayenne.exp;
* Noop implementation of TraversalHandler.
* Useful as a superclass for partial implementations
* of TraversalHandler.
- *
+ *
+ * @deprecated since 5.0 as {@link TraversalHandler} has default no-op
implementations for all methods
*/
+@Deprecated(since = "5.0", forRemoval = true)
public class TraversalHelper implements TraversalHandler {
-
- public void startNode(Expression node, Expression parentNode) {
- }
-
- public void endNode(Expression node, Expression parentNode) {
- }
-
- public void finishedChild(Expression node, int childIndex, boolean
hasMoreChildren) {
- }
-
- public void objectNode(Object leaf, Expression parentNode) {
- }
}
diff --git
a/cayenne/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
b/cayenne/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
index b6c8fe2d7..103777c33 100644
---
a/cayenne/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
+++
b/cayenne/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
@@ -26,7 +26,7 @@ import java.util.Map;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.dba.TypesMapping;
import org.apache.cayenne.exp.Expression;
-import org.apache.cayenne.exp.TraversalHelper;
+import org.apache.cayenne.exp.TraversalHandler;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbRelationship;
@@ -222,7 +222,7 @@ public abstract class PersistentDescriptorFactory
implements ClassDescriptorFact
final Map<String, ObjAttribute> attributes = new HashMap<>();
final DbEntity dbEntity = descriptor.getEntity().getDbEntity();
- qualifier.traverse(new TraversalHelper() {
+ qualifier.traverse(new TraversalHandler() {
@Override
public void startNode(Expression node, Expression parentNode) {
diff --git
a/cayenne/src/test/java/org/apache/cayenne/exp/TstTraversalHandler.java
b/cayenne/src/test/java/org/apache/cayenne/exp/TstTraversalHandler.java
index 53e2ca2f9..d268208a4 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/TstTraversalHandler.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/TstTraversalHandler.java
@@ -30,7 +30,7 @@ import org.junit.Assert;
* Class that collects statistics of expression traversal.
*/
public class TstTraversalHandler implements TraversalHandler {
- protected List<Object> treeFlatView = new ArrayList<Object>();
+ protected List<Object> treeFlatView = new ArrayList<>();
protected int children;
protected int nodes;
protected int nodesStarted;
@@ -58,10 +58,6 @@ public class TstTraversalHandler implements TraversalHandler
{
Assert.assertEquals(nodesStarted, nodes);
}
- public List<Object> getTreeFlatView() {
- return treeFlatView;
- }
-
public void traverseExpression(Expression exp) {
reset();
exp.traverse(this);
@@ -86,10 +82,6 @@ public class TstTraversalHandler implements TraversalHandler
{
return nodes;
}
- public int getNodesStarted() {
- return nodesStarted;
- }
-
public int getLeafs() {
return leafs;
}