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 a6eecd48b1b6435f586a6cf1157532b447013d23
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sat May 30 21:13:19 2026 -0400

    Straighten SQL translator flow...
    
    cleanup
---
 .../velocity/VelocitySQLTemplateTranslator.java    | 10 +++---
 .../VelocitySQLTemplateTranslatorTest.java         | 28 +++++++--------
 .../VelocitySQLTemplateTranslator_ChainTest.java   | 24 ++++++-------
 .../VelocitySQLTemplateTranslator_SelectTest.java  | 12 +++----
 .../cayenne/access/jdbc/SQLTemplateAction.java     | 13 +++----
 .../sqltemplate/CayenneSQLTemplateTranslator.java  |  9 +++--
 .../sqltemplate/SQLTemplateTranslator.java         |  6 ++--
 .../sqltemplate/TranslatedSQL.java}                |  8 +++--
 .../dba/frontbase/FrontBaseTemplateAction.java     |  4 +--
 .../dba/oracle/Oracle8SQLTemplateAction.java       |  4 +--
 .../dba/oracle/OracleSQLTemplateAction.java        |  8 ++---
 .../dba/sqlite/SQLiteSQLTemplateAction.java        |  4 +--
 .../cayenne/access/jdbc/SQLStatementTest.java      | 41 ----------------------
 .../CayenneSQLTemplateTranslatorTest.java          | 29 +++++++--------
 14 files changed, 79 insertions(+), 121 deletions(-)

diff --git 
a/cayenne-velocity/src/main/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator.java
 
b/cayenne-velocity/src/main/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator.java
index 04d66a65e..704a0d6a0 100644
--- 
a/cayenne-velocity/src/main/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator.java
+++ 
b/cayenne-velocity/src/main/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.velocity;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.jdbc.ColumnDescriptor;
-import org.apache.cayenne.access.jdbc.SQLStatement;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.apache.cayenne.access.translator.sqltemplate.SQLTemplateTranslator;
 import org.apache.cayenne.access.translator.ParameterBinding;
 import org.apache.cayenne.exp.ExpressionException;
@@ -123,7 +123,7 @@ public class VelocitySQLTemplateTranslator implements 
SQLTemplateTranslator {
         * as a "helper" variable and SQLStatement object as "statement" 
variable.
         */
        @Override
-       public SQLStatement translate(String template, Map<String, ?> 
parameters) {
+       public TranslatedSQL translate(String template, Map<String, ?> 
parameters) {
                // have to make a copy of parameter map since we are gonna 
modify it..
                Map<String, Object> internalParameters = (parameters != null && 
!parameters.isEmpty()) ? new HashMap<>(
                                parameters) : new HashMap<String, Object>(5);
@@ -133,7 +133,7 @@ public class VelocitySQLTemplateTranslator implements 
SQLTemplateTranslator {
        }
 
        @Override
-       public SQLStatement translate(String template, List<Object> 
positionalParameters) {
+       public TranslatedSQL translate(String template, List<Object> 
positionalParameters) {
 
                SimpleNode parsedTemplate = parse(template);
 
@@ -146,7 +146,7 @@ public class VelocitySQLTemplateTranslator implements 
SQLTemplateTranslator {
                return translate(template, parsedTemplate, internalParameters);
        }
 
-       SQLStatement translate(String template, SimpleNode parsedTemplate, 
Map<String, Object> parameters) {
+       TranslatedSQL translate(String template, SimpleNode parsedTemplate, 
Map<String, Object> parameters) {
                List<ParameterBinding> bindings = new ArrayList<>();
                List<ColumnDescriptor> results = new ArrayList<>();
                parameters.put(BINDINGS_LIST_KEY, bindings);
@@ -166,7 +166,7 @@ public class VelocitySQLTemplateTranslator implements 
SQLTemplateTranslator {
                ColumnDescriptor[] resultsArray = new 
ColumnDescriptor[results.size()];
                results.toArray(resultsArray);
 
-               return new SQLStatement(sql, resultsArray, bindingsArray);
+               return new TranslatedSQL(sql, resultsArray, bindingsArray);
        }
 
        String buildStatement(VelocityContext context, String template, 
SimpleNode parsedTemplate) throws Exception {
diff --git 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslatorTest.java
 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslatorTest.java
index 69507f9ae..f3daaf396 100644
--- 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslatorTest.java
+++ 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslatorTest.java
@@ -31,7 +31,7 @@ import java.util.Map;
 import org.apache.cayenne.GenericPersistentObject;
 import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.Persistent;
-import org.apache.cayenne.access.jdbc.SQLStatement;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.apache.cayenne.access.translator.ParameterBinding;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -49,7 +49,7 @@ public class VelocitySQLTemplateTranslatorTest {
        public void processTemplateUnchanged1() throws Exception {
                String sqlTemplate = "SELECT * FROM ME";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals(sqlTemplate, compiled.sql());
                assertEquals(0, compiled.bindings().length);
@@ -59,7 +59,7 @@ public class VelocitySQLTemplateTranslatorTest {
        public void processTemplateUnchanged2() throws Exception {
                String sqlTemplate = "SELECT a.b as XYZ FROM $SYSTEM_TABLE";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals(sqlTemplate, compiled.sql());
                assertEquals(0, compiled.bindings().length);
@@ -70,7 +70,7 @@ public class VelocitySQLTemplateTranslatorTest {
                String sqlTemplate = "SELECT * FROM ME WHERE $a";
 
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", "VALUE_OF_A");
-               SQLStatement compiled = processor.translate(sqlTemplate, map);
+               TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
                assertEquals("SELECT * FROM ME WHERE VALUE_OF_A", 
compiled.sql());
 
@@ -83,7 +83,7 @@ public class VelocitySQLTemplateTranslatorTest {
                String sqlTemplate = "SELECT * FROM ME WHERE "
                                + "COLUMN1 = #bind($a 'VARCHAR') AND COLUMN2 = 
#bind($b 'INTEGER')";
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", "VALUE_OF_A");
-               SQLStatement compiled = processor.translate(sqlTemplate, map);
+               TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
                assertEquals("SELECT * FROM ME WHERE COLUMN1 = ? AND COLUMN2 = 
?", compiled.sql());
                assertEquals(2, compiled.bindings().length);
@@ -96,7 +96,7 @@ public class VelocitySQLTemplateTranslatorTest {
                String sqlTemplate = "SELECT * FROM ME WHERE COLUMN1 = 
#bind($a)";
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", "VALUE_OF_A");
 
-               SQLStatement compiled = processor.translate(sqlTemplate, map);
+               TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
                assertEquals(1, compiled.bindings().length);
                assertBindingType(Types.VARCHAR, compiled.bindings()[0]);
@@ -107,7 +107,7 @@ public class VelocitySQLTemplateTranslatorTest {
                String sqlTemplate = "SELECT * FROM ME WHERE COLUMN1 = 
#bind($a)";
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", 4);
 
-               SQLStatement compiled = processor.translate(sqlTemplate, map);
+               TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
                assertEquals(1, compiled.bindings().length);
                assertBindingType(Types.INTEGER, compiled.bindings()[0]);
@@ -117,7 +117,7 @@ public class VelocitySQLTemplateTranslatorTest {
        public void processTemplateBindEqual() throws Exception {
                String sqlTemplate = "SELECT * FROM ME WHERE COLUMN 
#bindEqual($a 'VARCHAR')";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals("SELECT * FROM ME WHERE COLUMN IS NULL", 
compiled.sql());
                assertEquals(0, compiled.bindings().length);
@@ -135,7 +135,7 @@ public class VelocitySQLTemplateTranslatorTest {
        public void processTemplateBindNotEqual() throws Exception {
                String sqlTemplate = "SELECT * FROM ME WHERE COLUMN 
#bindNotEqual($a 'VARCHAR')";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals("SELECT * FROM ME WHERE COLUMN IS NOT NULL", 
compiled.sql());
                assertEquals(0, compiled.bindings().length);
@@ -158,7 +158,7 @@ public class VelocitySQLTemplateTranslatorTest {
 
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", persistent);
 
-               SQLStatement compiled = processor.translate(sqlTemplate, map);
+               TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
                assertEquals("SELECT * FROM ME WHERE COLUMN1 = ?", 
compiled.sql());
                assertEquals(1, compiled.bindings().length);
@@ -180,7 +180,7 @@ public class VelocitySQLTemplateTranslatorTest {
 
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", persistent);
 
-               SQLStatement compiled = processor.translate(sqlTemplate, map);
+               TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
                assertEquals("SELECT * FROM ME WHERE COLUMN1 <> ? AND COLUMN2 
<> ?", compiled.sql());
                assertEquals(2, compiled.bindings().length);
@@ -194,7 +194,7 @@ public class VelocitySQLTemplateTranslatorTest {
 
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", "VALUE_OF_A");
 
-               SQLStatement compiled = processor.translate(sqlTemplate, map);
+               TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
                assertEquals("SELECT * FROM ME  WHERE COLUMN1 > ?", 
compiled.sql());
                assertEquals(1, compiled.bindings().length);
@@ -211,7 +211,7 @@ public class VelocitySQLTemplateTranslatorTest {
                String sqlTemplate = "SELECT * FROM ME WHERE COLUMN IN 
(#bind($list 'VARCHAR'))";
 
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("list", Arrays.asList("a", "b", "c"));
-               SQLStatement compiled = new 
VelocitySQLTemplateTranslator().translate(sqlTemplate, map);
+               TranslatedSQL compiled = new 
VelocitySQLTemplateTranslator().translate(sqlTemplate, map);
 
                assertEquals("SELECT * FROM ME WHERE COLUMN IN (?,?,?)", 
compiled.sql());
                assertEquals(3, compiled.bindings().length);
@@ -225,7 +225,7 @@ public class VelocitySQLTemplateTranslatorTest {
        @Test
        public void unknownDirective() throws Exception {
                String sqlTemplate = "SELECT #from(1) FROM a";
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
         assertEquals("SELECT #from(1) FROM a", compiled.sql());
        }
 
diff --git 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator_ChainTest.java
 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator_ChainTest.java
index 8084950b8..a8b707e64 100644
--- 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator_ChainTest.java
+++ 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator_ChainTest.java
@@ -25,7 +25,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.cayenne.access.jdbc.SQLStatement;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -43,7 +43,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                // whatever is inside the chain, it should render as empty if 
there
                // is no chunks...
 
-               SQLStatement compiled = processor.translate("#chain(' AND ') 
#end",
+               TranslatedSQL compiled = processor.translate("#chain(' AND ') 
#end",
                                Collections.<String, Object> emptyMap());
                assertEquals("", compiled.sql());
 
@@ -68,7 +68,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                map.put("b", "[B]");
                map.put("c", "[C]");
 
-               SQLStatement compiled = processor.translate(template, map);
+               TranslatedSQL compiled = processor.translate(template, map);
                assertEquals("[A] OR [B] OR [C]", compiled.sql());
        }
 
@@ -82,7 +82,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                map.put("b", "[B]");
                map.put("c", "[C]");
 
-               SQLStatement compiled = processor.translate(template, map);
+               TranslatedSQL compiled = processor.translate(template, map);
                assertEquals("WHERE [A] OR [B] OR [C]", compiled.sql());
        }
 
@@ -95,7 +95,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                map.put("a", "[A]");
                map.put("c", "[C]");
 
-               SQLStatement compiled = processor.translate(template, map);
+               TranslatedSQL compiled = processor.translate(template, map);
                assertEquals("WHERE [A] OR [C]", compiled.sql());
        }
 
@@ -108,7 +108,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                map.put("b", "[B]");
                map.put("c", "[C]");
 
-               SQLStatement compiled = processor.translate(template, map);
+               TranslatedSQL compiled = processor.translate(template, map);
                assertEquals("WHERE [B] OR [C]", compiled.sql());
        }
 
@@ -121,7 +121,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                map.put("a", "[A]");
                map.put("b", "[B]");
 
-               SQLStatement compiled = processor.translate(template, map);
+               TranslatedSQL compiled = processor.translate(template, map);
                assertEquals("WHERE [A] OR [B]", compiled.sql());
        }
 
@@ -134,7 +134,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                map.put("a", "[A]");
                map.put("c", "[C]");
 
-               SQLStatement compiled = processor.translate(template, map);
+               TranslatedSQL compiled = processor.translate(template, map);
                assertEquals("WHERE [A] some other stuff OR [C]", 
compiled.sql());
        }
 
@@ -142,7 +142,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
        public void processTemplateChainUnconditionalChunks() throws Exception {
                String template = "#chain(' OR ' 'WHERE ')" + "#chunk()C1#end" 
+ "#chunk()C2#end" + "#chunk()C3#end" + "#end";
 
-               SQLStatement compiled = processor.translate(template, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(template, 
Collections.<String, Object> emptyMap());
                assertEquals("WHERE C1 OR C2 OR C3", compiled.sql());
        }
 
@@ -151,7 +151,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                String template = "#chain(' OR ' 'WHERE ')" + 
"#chunk($a)$a#end" + "#chunk($b)$b#end" + "#chunk($c)$c#end"
                                + "#end";
 
-               SQLStatement compiled = processor.translate(template, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(template, 
Collections.<String, Object> emptyMap());
                assertEquals("", compiled.sql());
        }
 
@@ -164,7 +164,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                map.put("a", false);
                map.put("b", 0);
 
-               SQLStatement compiled = processor.translate(template, map);
+               TranslatedSQL compiled = processor.translate(template, map);
                assertEquals("WHERE [A] OR [B]", compiled.sql());
        }
 
@@ -177,7 +177,7 @@ public class VelocitySQLTemplateTranslator_ChainTest {
                map.put("a", false);
                map.put("b", 0);
 
-               SQLStatement compiled = processor.translate(template, map);
+               TranslatedSQL compiled = processor.translate(template, map);
                assertEquals("WHERE false OR 0", compiled.sql());
        }
 
diff --git 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator_SelectTest.java
 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator_SelectTest.java
index 6507ca2e7..cc7369be1 100644
--- 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator_SelectTest.java
+++ 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateTranslator_SelectTest.java
@@ -25,7 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 import java.util.Collections;
 
 import org.apache.cayenne.access.jdbc.ColumnDescriptor;
-import org.apache.cayenne.access.jdbc.SQLStatement;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -42,7 +42,7 @@ public class VelocitySQLTemplateTranslator_SelectTest {
        public void processTemplateUnchanged() throws Exception {
                String sqlTemplate = "SELECT * FROM ME";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals(sqlTemplate, compiled.sql());
                assertEquals(0, compiled.bindings().length);
@@ -53,7 +53,7 @@ public class VelocitySQLTemplateTranslator_SelectTest {
        public void processSelectTemplate1() throws Exception {
                String sqlTemplate = "SELECT #result('A') FROM ME";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals("SELECT A FROM ME", compiled.sql());
                assertEquals(0, compiled.bindings().length);
@@ -66,7 +66,7 @@ public class VelocitySQLTemplateTranslator_SelectTest {
        public void processSelectTemplate2() throws Exception {
                String sqlTemplate = "SELECT #result('A' 'String') FROM ME";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals("SELECT A FROM ME", compiled.sql());
                assertEquals(0, compiled.bindings().length);
@@ -80,7 +80,7 @@ public class VelocitySQLTemplateTranslator_SelectTest {
        public void processSelectTemplate3() throws Exception {
                String sqlTemplate = "SELECT #result('A' 'String' 'B') FROM ME";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals("SELECT A AS B FROM ME", compiled.sql());
                assertEquals(0, compiled.bindings().length);
@@ -96,7 +96,7 @@ public class VelocitySQLTemplateTranslator_SelectTest {
        public void processSelectTemplate4() throws Exception {
                String sqlTemplate = "SELECT #result('A'), #result('B'), 
#result('C') FROM ME";
 
-               SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
+               TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
                assertEquals("SELECT A, B, C FROM ME", compiled.sql());
                assertEquals(0, compiled.bindings().length);
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
index b33946421..444c14e13 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
@@ -25,6 +25,7 @@ import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.jdbc.reader.RowReader;
 import org.apache.cayenne.access.translator.ParameterBinding;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.apache.cayenne.access.types.ExtendedType;
 import org.apache.cayenne.access.types.ExtendedTypeMap;
 import org.apache.cayenne.dba.DbAdapter;
@@ -139,7 +140,7 @@ public class SQLTemplateAction implements SQLAction {
        private void runWithPositionalParameters(Connection connection, 
OperationObserver callback, String template,
                                                                                
         Collection<Number> counts, boolean loggable) throws Exception {
 
-               SQLStatement compiled = 
dataNode.getSqlTemplateTranslator().translate(template,
+               TranslatedSQL compiled = 
dataNode.getSqlTemplateTranslator().translate(template,
                                query.getPositionalParams());
 
                bindExtendedTypes(compiled.bindings());
@@ -171,7 +172,7 @@ public class SQLTemplateAction implements SQLAction {
 
                for (int i = 0; i < batchSize; i++) {
                        Map<String, ?> nextParameters = it.next();
-                       SQLStatement compiled = 
dataNode.getSqlTemplateTranslator().translate(template, nextParameters);
+                       TranslatedSQL compiled = 
dataNode.getSqlTemplateTranslator().translate(template, nextParameters);
                        bindExtendedTypes(compiled.bindings());
                        if (loggable) {
                                
dataNode.getJdbcEventLogger().logQuery(compiled.sql(), compiled.bindings());
@@ -182,7 +183,7 @@ public class SQLTemplateAction implements SQLAction {
 
        }
 
-       protected void execute(Connection connection, OperationObserver 
callback, SQLStatement compiled,
+       protected void execute(Connection connection, OperationObserver 
callback, TranslatedSQL compiled,
                                                   Collection<Number> 
updateCounts) throws Exception {
 
                long t1 = System.currentTimeMillis();
@@ -247,7 +248,7 @@ public class SQLTemplateAction implements SQLAction {
        }
 
        @SuppressWarnings({ "unchecked", "rawtypes" })
-       protected void processSelectResult(SQLStatement compiled, Connection 
connection, Statement statement,
+       protected void processSelectResult(TranslatedSQL compiled, Connection 
connection, Statement statement,
                                                                           
ResultSet resultSet, OperationObserver callback, final long startTime) throws 
Exception {
 
                boolean iteratedResult = callback.isIteratedResult();
@@ -300,7 +301,7 @@ public class SQLTemplateAction implements SQLAction {
        /**
         * Creates column descriptors based on compiled statement and query 
metadata
         */
-       private ColumnDescriptor[] createColumnDescriptors(SQLStatement 
compiled) {
+       private ColumnDescriptor[] createColumnDescriptors(TranslatedSQL 
compiled) {
                // SQLTemplate #result columns take precedence over other ways 
to determine the type
                if (compiled.resultColumns().length > 0) {
                        if(query.getResultColumnsTypes() != null) {
@@ -328,7 +329,7 @@ public class SQLTemplateAction implements SQLAction {
        /**
         * @since 3.0
         */
-       protected RowDescriptorBuilder 
configureRowDescriptorBuilder(SQLStatement compiled, ResultSet resultSet)
+       protected RowDescriptorBuilder 
configureRowDescriptorBuilder(TranslatedSQL compiled, ResultSet resultSet)
                        throws SQLException {
                RowDescriptorBuilder builder = new RowDescriptorBuilder()
                                .setResultSet(resultSet)
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/CayenneSQLTemplateTranslator.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/CayenneSQLTemplateTranslator.java
index f2136e351..1710a0550 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/CayenneSQLTemplateTranslator.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/CayenneSQLTemplateTranslator.java
@@ -20,7 +20,6 @@
 package org.apache.cayenne.access.translator.sqltemplate;
 
 import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.access.jdbc.SQLStatement;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.access.translator.sqltemplate.parser.Node;
 import org.apache.cayenne.access.translator.sqltemplate.parser.ParseException;
@@ -51,13 +50,13 @@ public class CayenneSQLTemplateTranslator implements 
SQLTemplateTranslator {
     }
 
     @Override
-    public SQLStatement translate(String template, Map<String, ?> parameters) {
+    public TranslatedSQL translate(String template, Map<String, ?> parameters) 
{
         Context context = contextFactory.createContext(parameters);
         return process(template, context);
     }
 
     @Override
-    public SQLStatement translate(String template, List<Object> 
positionalParameters) {
+    public TranslatedSQL translate(String template, List<Object> 
positionalParameters) {
         Map<String, Object> parameters = new HashMap<>();
         int i=0;
         for(Object param : positionalParameters) {
@@ -67,7 +66,7 @@ public class CayenneSQLTemplateTranslator implements 
SQLTemplateTranslator {
         return process(template, context);
     }
 
-    protected SQLStatement process(String template, Context context) {
+    protected TranslatedSQL process(String template, Context context) {
         Node node = templateCache.get(template);
         if(node == null) {
             SQLTemplateParser parser = parserPool.get();
@@ -85,6 +84,6 @@ public class CayenneSQLTemplateTranslator implements 
SQLTemplateTranslator {
 
         node.evaluate(context);
 
-        return new SQLStatement(context.buildTemplate(), 
context.getColumnDescriptors(), context.getParameterBindings());
+        return new TranslatedSQL(context.buildTemplate(), 
context.getColumnDescriptors(), context.getParameterBindings());
     }
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/SQLTemplateTranslator.java
 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/SQLTemplateTranslator.java
index 41eda201f..70a7df95f 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/SQLTemplateTranslator.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/SQLTemplateTranslator.java
@@ -18,8 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.access.translator.sqltemplate;
 
-import org.apache.cayenne.access.jdbc.SQLStatement;
-
 import java.util.List;
 import java.util.Map;
 
@@ -34,7 +32,7 @@ public interface SQLTemplateTranslator {
         *
         * @since 5.0
         */
-       SQLStatement translate(String template, Map<String, ?> parameters);
+       TranslatedSQL translate(String template, Map<String, ?> parameters);
 
        /**
         * Builds and returns a SQLStatement based on SQL template String and a 
list
@@ -42,5 +40,5 @@ public interface SQLTemplateTranslator {
         *
         * @since 5.0
         */
-       SQLStatement translate(String template, List<Object> 
positionalParameters);
+       TranslatedSQL translate(String template, List<Object> 
positionalParameters);
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLStatement.java 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/TranslatedSQL.java
similarity index 82%
rename from 
cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLStatement.java
rename to 
cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/TranslatedSQL.java
index 1cf46f90b..94e0b6e85 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLStatement.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/access/translator/sqltemplate/TranslatedSQL.java
@@ -17,8 +17,9 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.access.jdbc;
+package org.apache.cayenne.access.translator.sqltemplate;
 
+import org.apache.cayenne.access.jdbc.ColumnDescriptor;
 import org.apache.cayenne.access.translator.ParameterBinding;
 
 /**
@@ -26,5 +27,8 @@ import org.apache.cayenne.access.translator.ParameterBinding;
  *
  * @since 1.1
  */
-public record SQLStatement(String sql, ColumnDescriptor[] resultColumns, 
ParameterBinding[] bindings) {
+public record TranslatedSQL(
+        String sql,
+        ColumnDescriptor[] resultColumns,
+        ParameterBinding[] bindings) {
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseTemplateAction.java
 
b/cayenne/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseTemplateAction.java
index 6c484aab3..99d1f41b8 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseTemplateAction.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseTemplateAction.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.dba.frontbase;
 
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
-import org.apache.cayenne.access.jdbc.SQLStatement;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.apache.cayenne.access.jdbc.SQLTemplateAction;
 import org.apache.cayenne.query.SQLTemplate;
 
@@ -42,7 +42,7 @@ public class FrontBaseTemplateAction extends 
SQLTemplateAction {
     }
 
     @Override
-    protected void execute(Connection connection, OperationObserver callback, 
SQLStatement compiled,
+    protected void execute(Connection connection, OperationObserver callback, 
TranslatedSQL compiled,
                  Collection<Number> updateCounts) throws SQLException, 
Exception {
 
         long t1 = System.currentTimeMillis();
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java
 
b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java
index 5413906de..4999bfc9b 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.dba.oracle;
 
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
-import org.apache.cayenne.access.jdbc.SQLStatement;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.apache.cayenne.access.jdbc.SQLTemplateAction;
 import org.apache.cayenne.query.SQLTemplate;
 
@@ -48,7 +48,7 @@ class Oracle8SQLTemplateAction extends SQLTemplateAction {
      * not work in Oracle 8.* drivers.
      */
     @Override
-    protected void execute(Connection connection, OperationObserver callback, 
SQLStatement compiled,
+    protected void execute(Connection connection, OperationObserver callback, 
TranslatedSQL compiled,
                            Collection<Number> updateCounts) throws Exception {
 
         String sql = compiled.sql().trim();
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OracleSQLTemplateAction.java
 
b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OracleSQLTemplateAction.java
index 79d8053e0..cb8c39c46 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OracleSQLTemplateAction.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/dba/oracle/OracleSQLTemplateAction.java
@@ -26,7 +26,7 @@ import java.sql.Statement;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.access.jdbc.RowDescriptorBuilder;
-import org.apache.cayenne.access.jdbc.SQLStatement;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.apache.cayenne.access.jdbc.SQLTemplateAction;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.SQLTemplate;
@@ -44,8 +44,8 @@ class OracleSQLTemplateAction extends SQLTemplateAction {
        }
 
        @Override
-       protected void processSelectResult(SQLStatement compiled, Connection 
connection, Statement statement,
-                       ResultSet resultSet, OperationObserver callback, long 
startTime) throws Exception {
+       protected void processSelectResult(TranslatedSQL compiled, Connection 
connection, Statement statement,
+                                                                          
ResultSet resultSet, OperationObserver callback, long startTime) throws 
Exception {
 
                // wrap ResultSet to distinguish between Integer and BigDecimal 
for
                // Oracle NUMBER
@@ -62,7 +62,7 @@ class OracleSQLTemplateAction extends SQLTemplateAction {
         * @since 3.0
         */
        @Override
-       protected RowDescriptorBuilder 
configureRowDescriptorBuilder(SQLStatement compiled, ResultSet resultSet)
+       protected RowDescriptorBuilder 
configureRowDescriptorBuilder(TranslatedSQL compiled, ResultSet resultSet)
                        throws SQLException {
 
                RowDescriptorBuilder builder = 
super.configureRowDescriptorBuilder(compiled, resultSet);
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java
 
b/cayenne/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java
index 21b1997ed..e9024a442 100644
--- 
a/cayenne/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java
+++ 
b/cayenne/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java
@@ -20,7 +20,7 @@ package org.apache.cayenne.dba.sqlite;
 
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.OperationObserver;
-import org.apache.cayenne.access.jdbc.SQLStatement;
+import org.apache.cayenne.access.translator.sqltemplate.TranslatedSQL;
 import org.apache.cayenne.access.jdbc.SQLTemplateAction;
 import org.apache.cayenne.query.SQLTemplate;
 
@@ -47,7 +47,7 @@ class SQLiteSQLTemplateAction extends SQLTemplateAction {
     protected void execute(
             Connection connection,
             OperationObserver callback,
-            SQLStatement compiled,
+            TranslatedSQL compiled,
             Collection<Number> updateCounts) throws Exception {
 
         String sql = compiled.sql().trim();
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLStatementTest.java 
b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLStatementTest.java
deleted file mode 100644
index 17b45bcd9..000000000
--- a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLStatementTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*****************************************************************
- *   Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    https://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- ****************************************************************/
-
-package org.apache.cayenne.access.jdbc;
-
-import org.apache.cayenne.access.translator.ParameterBinding;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-
-/**
- */
-public class SQLStatementTest {
-
-    @Test
-    public void constructor() throws Exception {
-        ParameterBinding[] bindings = new ParameterBinding[0];
-        SQLStatement statement = new SQLStatement("abc", null, bindings);
-        assertEquals("abc", statement.sql());
-        assertSame(bindings, statement.bindings());
-        assertNull(statement.resultColumns());
-    }
-}
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/sqltemplate/CayenneSQLTemplateTranslatorTest.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/sqltemplate/CayenneSQLTemplateTranslatorTest.java
index 2fd952c0d..0097bb7f8 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/sqltemplate/CayenneSQLTemplateTranslatorTest.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/sqltemplate/CayenneSQLTemplateTranslatorTest.java
@@ -28,10 +28,7 @@ import java.util.Map;
 import org.apache.cayenne.GenericPersistentObject;
 import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.Persistent;
-import org.apache.cayenne.access.jdbc.SQLStatement;
 import org.apache.cayenne.access.translator.ParameterBinding;
-import 
org.apache.cayenne.access.translator.sqltemplate.CayenneSQLTemplateTranslator;
-import 
org.apache.cayenne.access.translator.sqltemplate.DefaultTemplateContextFactory;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -50,7 +47,7 @@ public class CayenneSQLTemplateTranslatorTest {
     public void processTemplateUnchanged1() throws Exception {
         String sqlTemplate = "SELECT * FROM ME";
 
-        SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
+        TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
 
         assertEquals(sqlTemplate, compiled.sql());
         assertEquals(0, compiled.bindings().length);
@@ -60,7 +57,7 @@ public class CayenneSQLTemplateTranslatorTest {
     public void processTemplateUnchanged2() throws Exception {
         String sqlTemplate = "SELECT a.b as XYZ FROM $SYSTEM_TABLE";
 
-        SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
+        TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
 
         assertEquals(sqlTemplate, compiled.sql());
         assertEquals(0, compiled.bindings().length);
@@ -71,7 +68,7 @@ public class CayenneSQLTemplateTranslatorTest {
         String sqlTemplate = "SELECT * FROM ME WHERE $a";
 
         Map<String, Object> map = Collections.singletonMap("a", "VALUE_OF_A");
-        SQLStatement compiled = processor.translate(sqlTemplate, map);
+        TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
         assertEquals("SELECT * FROM ME WHERE VALUE_OF_A", compiled.sql());
 
@@ -84,7 +81,7 @@ public class CayenneSQLTemplateTranslatorTest {
         String sqlTemplate = "SELECT * FROM ME WHERE "
                 + "COLUMN1 = #bind($a 'VARCHAR') AND COLUMN2 = #bind($b 
'INTEGER')";
         Map<String, Object> map = Collections.singletonMap("a", "VALUE_OF_A");
-        SQLStatement compiled = processor.translate(sqlTemplate, map);
+        TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
         assertEquals("SELECT * FROM ME WHERE COLUMN1 = ? AND COLUMN2 = ?", 
compiled.sql());
         assertEquals(2, compiled.bindings().length);
@@ -97,7 +94,7 @@ public class CayenneSQLTemplateTranslatorTest {
         String sqlTemplate = "SELECT * FROM ME WHERE COLUMN1 = #bind($a)";
         Map<String, Object> map = Collections.singletonMap("a", "VALUE_OF_A");
 
-        SQLStatement compiled = processor.translate(sqlTemplate, map);
+        TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
         assertEquals(1, compiled.bindings().length);
         assertBindingType(Types.VARCHAR, compiled.bindings()[0]);
@@ -108,7 +105,7 @@ public class CayenneSQLTemplateTranslatorTest {
         String sqlTemplate = "SELECT * FROM ME WHERE COLUMN1 = #bind($a)";
         Map<String, Object> map = Collections.singletonMap("a", 4);
 
-        SQLStatement compiled = processor.translate(sqlTemplate, map);
+        TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
         assertEquals(1, compiled.bindings().length);
         assertBindingType(Types.INTEGER, compiled.bindings()[0]);
@@ -118,7 +115,7 @@ public class CayenneSQLTemplateTranslatorTest {
     public void processTemplateBindEqual() throws Exception {
         String sqlTemplate = "SELECT * FROM ME WHERE COLUMN #bindEqual($a 
'VARCHAR')";
 
-        SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
+        TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
 
         assertEquals("SELECT * FROM ME WHERE COLUMN IS NULL", compiled.sql());
         assertEquals(0, compiled.bindings().length);
@@ -136,7 +133,7 @@ public class CayenneSQLTemplateTranslatorTest {
     public void processTemplateBindNotEqual() throws Exception {
         String sqlTemplate = "SELECT * FROM ME WHERE COLUMN #bindNotEqual($a 
'VARCHAR')";
 
-        SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
+        TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
 
         assertEquals("SELECT * FROM ME WHERE COLUMN IS NOT NULL", 
compiled.sql());
         assertEquals(0, compiled.bindings().length);
@@ -159,7 +156,7 @@ public class CayenneSQLTemplateTranslatorTest {
 
         Map<String, Object> map = Collections.singletonMap("a", persistent);
 
-        SQLStatement compiled = processor.translate(sqlTemplate, map);
+        TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
         assertEquals("SELECT * FROM ME WHERE COLUMN1 = ?", compiled.sql());
         assertEquals(1, compiled.bindings().length);
@@ -181,7 +178,7 @@ public class CayenneSQLTemplateTranslatorTest {
 
         Map<String, Object> map = Collections.singletonMap("a", persistent);
 
-        SQLStatement compiled = processor.translate(sqlTemplate, map);
+        TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
         assertEquals("SELECT * FROM ME WHERE COLUMN1 <> ? AND COLUMN2 <> ?", 
compiled.sql());
         assertEquals(2, compiled.bindings().length);
@@ -195,7 +192,7 @@ public class CayenneSQLTemplateTranslatorTest {
 
         Map<String, Object> map = Collections.singletonMap("a", "VALUE_OF_A");
 
-        SQLStatement compiled = processor.translate(sqlTemplate, map);
+        TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
         assertEquals("SELECT * FROM ME  WHERE COLUMN1 > ?", compiled.sql());
         assertEquals(1, compiled.bindings().length);
@@ -212,7 +209,7 @@ public class CayenneSQLTemplateTranslatorTest {
         String sqlTemplate = "SELECT * FROM ME WHERE COLUMN IN (#bind($list 
'VARCHAR'))";
 
         Map<String, Object> map = Collections.singletonMap("list", 
Arrays.asList("a", "b", "c"));
-        SQLStatement compiled = processor.translate(sqlTemplate, map);
+        TranslatedSQL compiled = processor.translate(sqlTemplate, map);
 
         assertEquals("SELECT * FROM ME WHERE COLUMN IN (?,?,?)", 
compiled.sql());
         assertEquals(3, compiled.bindings().length);
@@ -224,7 +221,7 @@ public class CayenneSQLTemplateTranslatorTest {
     @Test
     public void unknownDirective() throws Exception {
         String sqlTemplate = "SELECT #from(1) FROM a";
-        SQLStatement compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
+        TranslatedSQL compiled = processor.translate(sqlTemplate, 
Collections.emptyMap());
         assertEquals("SELECT  FROM a", compiled.sql());
     }
 


Reply via email to