This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch past-M2
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 653b6ba9e236b0be3927c7e534e1f46eab157301
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun May 31 10:56:09 2026 -0400

    Unifying ParameterBinding hierarchy into a single class and reducing its 
mutability
---
 .../apache/cayenne/access/jdbc/BatchAction.java    | 18 ++++------
 .../apache/cayenne/access/jdbc/SelectAction.java   |  4 ---
 .../access/translator/ParameterBinding.java        | 40 ++++++++--------------
 .../cayenne/log/CompactSlf4jJdbcEventLogger.java   |  4 ---
 .../apache/cayenne/log/Slf4jJdbcEventLogger.java   |  4 ---
 5 files changed, 20 insertions(+), 50 deletions(-)

diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
index 19de7fa71..203f07693 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
@@ -55,16 +55,6 @@ public class BatchAction extends BaseSQLAction {
        protected BatchQuery query;
        protected RowDescriptor keyRowDescriptor;
 
-       private static void bind(DbAdapter adapter, PreparedStatement 
statement, ParameterBinding[] bindings)
-                       throws Exception {
-
-               for (ParameterBinding b : bindings) {
-                       if (!b.isDisabled()) {
-                               adapter.bindParameter(statement, b);
-                       }
-               }
-       }
-
        /**
         * @since 4.0
         */
@@ -132,7 +122,9 @@ public class BatchAction extends BaseSQLAction {
 
                                ParameterBinding[] bindings = 
translator.updateBindings(row);
                                logger.logQueryParameters("batch bind", 
bindings);
-                               bind(adapter, statement, bindings);
+                               for (ParameterBinding b : bindings) {
+                                       adapter.bindParameter(statement, b);
+                               }
 
                                statement.addBatch();
                        }
@@ -192,7 +184,9 @@ public class BatchAction extends BaseSQLAction {
                                ParameterBinding[] bindings = 
translator.updateBindings(row);
                                logger.logQueryParameters("bind", bindings);
 
-                               bind(adapter, statement, bindings);
+                               for (ParameterBinding b : bindings) {
+                                       adapter.bindParameter(statement, b);
+                               }
 
                                int updated = statement.executeUpdate();
                                if (useOptimisticLock && updated != 1) {
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
index 3785f6a66..7553e7aa9 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
@@ -48,10 +48,6 @@ public class SelectAction extends BaseSQLAction {
 
         for (ParameterBinding b : bindings) {
 
-            if (b.isDisabled()) {
-                continue;
-            }
-
             // null DbAttributes are a result of inferior qualifier
             // processing (qualifier can't map parameters to DbAttributes
             // and therefore only supports standard java types now) hence, a
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/ParameterBinding.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/ParameterBinding.java
index 64347424e..c37010f0a 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/ParameterBinding.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/ParameterBinding.java
@@ -28,8 +28,6 @@ import org.apache.cayenne.map.DbAttribute;
  */
 public class ParameterBinding {
 
-    private static final int EXCLUDED_POSITION = -1;
-
     private final DbAttribute attribute;
     private final int jdbcType;
     private final int scale;
@@ -52,7 +50,20 @@ public class ParameterBinding {
         this.attribute = attribute;
         this.jdbcType = jdbcType;
         this.scale = scale;
-        this.statementPosition = EXCLUDED_POSITION;
+
+        this.statementPosition = -1;
+    }
+
+    /**
+     * Sets the value, statement position and {@link ExtendedType} of the 
binding.
+     *
+     * @since 5.0
+     */
+    public ParameterBinding reset(int statementPosition, Object value, 
ExtendedType<?> extendedType) {
+        this.statementPosition = statementPosition;
+        this.value = value;
+        this.extendedType = extendedType;
+        return this;
     }
 
     public Object getValue() {
@@ -63,33 +74,10 @@ public class ParameterBinding {
         return statementPosition;
     }
 
-    public boolean isDisabled() {
-        return statementPosition == EXCLUDED_POSITION;
-    }
-
     public ExtendedType getExtendedType() {
         return extendedType;
     }
 
-    /**
-     * Marks the binding object as excluded for the current iteration.
-     */
-    public void disable() {
-        this.statementPosition = EXCLUDED_POSITION;
-        this.value = null;
-        this.extendedType = null;
-    }
-
-    /**
-     * Sets the value, statement position and {@link ExtendedType} of the 
binding.
-     */
-    public ParameterBinding reset(int statementPosition, Object value, 
ExtendedType<?> extendedType) {
-        this.statementPosition = statementPosition;
-        this.value = value;
-        this.extendedType = extendedType;
-        return this;
-    }
-
     public int getJdbcType() {
         return jdbcType;
     }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java 
b/cayenne/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java
index 407c81cfb..c28c37f97 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java
@@ -112,10 +112,6 @@ public class CompactSlf4jJdbcEventLogger extends 
Slf4jJdbcEventLogger {
         String key = null;
         String value;
         for (ParameterBinding b : bindings) {
-            if (b.isDisabled()) {
-                continue;
-            }
-
             DbAttribute attribute = b.getAttribute();
             if (attribute != null) {
                 key = attribute.getName();
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java 
b/cayenne/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
index 217fd287f..474cfc278 100644
--- a/cayenne/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
+++ b/cayenne/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
@@ -100,10 +100,6 @@ public class Slf4jJdbcEventLogger implements 
JdbcEventLogger {
                        for (int i = 0, j = 1; i < len; i++) {
                                ParameterBinding b = bindings[i];
 
-                               if (b.isDisabled()) {
-                                       continue;
-                               }
-
                                if (hasIncluded) {
                                        buffer.append(", ");
                                } else {

Reply via email to