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
The following commit(s) were added to refs/heads/past-M2 by this push:
new ce15f91ec Unifying ParameterBinding hierarchy into a single class and
reducing its mutability
ce15f91ec is described below
commit ce15f91ecb673440dafdee992000d7a14dcd8799
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 {