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;
        }

Reply via email to