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 a0be19ae4e3e390cf18ba1afce3afc4f6a573584
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sat May 30 18:56:31 2026 -0400

    Turning SQLStatement into an immutable record
---
 .../velocity/VelocitySQLTemplateProcessorTest.java | 84 +++++++++++-----------
 .../VelocitySQLTemplateProcessor_ChainTest.java    | 28 ++++----
 .../VelocitySQLTemplateProcessor_SelectTest.java   | 46 ++++++------
 .../apache/cayenne/access/jdbc/SQLStatement.java   | 59 +--------------
 .../cayenne/access/jdbc/SQLTemplateAction.java     | 16 ++---
 .../dba/frontbase/FrontBaseTemplateAction.java     |  4 +-
 .../dba/oracle/Oracle8SQLTemplateAction.java       |  6 +-
 .../dba/oracle/OracleSQLTemplateAction.java        |  2 +-
 .../dba/sqlite/SQLiteSQLTemplateAction.java        |  6 +-
 .../cayenne/access/jdbc/SQLStatementTest.java      | 18 ++---
 .../template/CayenneSQLTemplateProcessorTest.java  | 84 +++++++++++-----------
 11 files changed, 145 insertions(+), 208 deletions(-)

diff --git 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessorTest.java
 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessorTest.java
index 5695d207d..38b892900 100644
--- 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessorTest.java
+++ 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessorTest.java
@@ -51,8 +51,8 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals(sqlTemplate, compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals(sqlTemplate, compiled.sql());
+               assertEquals(0, compiled.bindings().length);
        }
 
        @Test
@@ -61,8 +61,8 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals(sqlTemplate, compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals(sqlTemplate, compiled.sql());
+               assertEquals(0, compiled.bindings().length);
        }
 
        @Test
@@ -72,10 +72,10 @@ public class VelocitySQLTemplateProcessorTest {
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", "VALUE_OF_A");
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
map);
 
-               assertEquals("SELECT * FROM ME WHERE VALUE_OF_A", 
compiled.getSql());
+               assertEquals("SELECT * FROM ME WHERE VALUE_OF_A", 
compiled.sql());
 
                // bindings are not populated, since no "bind" macro is used.
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals(0, compiled.bindings().length);
        }
 
        @Test
@@ -85,10 +85,10 @@ public class VelocitySQLTemplateProcessorTest {
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", "VALUE_OF_A");
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
map);
 
-               assertEquals("SELECT * FROM ME WHERE COLUMN1 = ? AND COLUMN2 = 
?", compiled.getSql());
-               assertEquals(2, compiled.getBindings().length);
-               assertBindingValue("VALUE_OF_A", compiled.getBindings()[0]);
-               assertBindingValue(null, compiled.getBindings()[1]);
+               assertEquals("SELECT * FROM ME WHERE COLUMN1 = ? AND COLUMN2 = 
?", compiled.sql());
+               assertEquals(2, compiled.bindings().length);
+               assertBindingValue("VALUE_OF_A", compiled.bindings()[0]);
+               assertBindingValue(null, compiled.bindings()[1]);
        }
 
        @Test
@@ -98,8 +98,8 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
map);
 
-               assertEquals(1, compiled.getBindings().length);
-               assertBindingType(Types.VARCHAR, compiled.getBindings()[0]);
+               assertEquals(1, compiled.bindings().length);
+               assertBindingType(Types.VARCHAR, compiled.bindings()[0]);
        }
 
        @Test
@@ -109,8 +109,8 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
map);
 
-               assertEquals(1, compiled.getBindings().length);
-               assertBindingType(Types.INTEGER, compiled.getBindings()[0]);
+               assertEquals(1, compiled.bindings().length);
+               assertBindingType(Types.INTEGER, compiled.bindings()[0]);
        }
 
        @Test
@@ -119,16 +119,16 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals("SELECT * FROM ME WHERE COLUMN IS NULL", 
compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals("SELECT * FROM ME WHERE COLUMN IS NULL", 
compiled.sql());
+               assertEquals(0, compiled.bindings().length);
 
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", "VALUE_OF_A");
 
                compiled = processor.processTemplate(sqlTemplate, map);
 
-               assertEquals("SELECT * FROM ME WHERE COLUMN = ?", 
compiled.getSql());
-               assertEquals(1, compiled.getBindings().length);
-               assertBindingValue("VALUE_OF_A", compiled.getBindings()[0]);
+               assertEquals("SELECT * FROM ME WHERE COLUMN = ?", 
compiled.sql());
+               assertEquals(1, compiled.bindings().length);
+               assertBindingValue("VALUE_OF_A", compiled.bindings()[0]);
        }
 
        @Test
@@ -137,16 +137,16 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals("SELECT * FROM ME WHERE COLUMN IS NOT NULL", 
compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals("SELECT * FROM ME WHERE COLUMN IS NOT NULL", 
compiled.sql());
+               assertEquals(0, compiled.bindings().length);
 
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("a", "VALUE_OF_A");
 
                compiled = processor.processTemplate(sqlTemplate, map);
 
-               assertEquals("SELECT * FROM ME WHERE COLUMN <> ?", 
compiled.getSql());
-               assertEquals(1, compiled.getBindings().length);
-               assertBindingValue("VALUE_OF_A", compiled.getBindings()[0]);
+               assertEquals("SELECT * FROM ME WHERE COLUMN <> ?", 
compiled.sql());
+               assertEquals(1, compiled.bindings().length);
+               assertBindingValue("VALUE_OF_A", compiled.bindings()[0]);
        }
 
        @Test
@@ -160,9 +160,9 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
map);
 
-               assertEquals("SELECT * FROM ME WHERE COLUMN1 = ?", 
compiled.getSql());
-               assertEquals(1, compiled.getBindings().length);
-               assertBindingValue(5, compiled.getBindings()[0]);
+               assertEquals("SELECT * FROM ME WHERE COLUMN1 = ?", 
compiled.sql());
+               assertEquals(1, compiled.bindings().length);
+               assertBindingValue(5, compiled.bindings()[0]);
        }
 
        @Test
@@ -182,10 +182,10 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
map);
 
-               assertEquals("SELECT * FROM ME WHERE COLUMN1 <> ? AND COLUMN2 
<> ?", compiled.getSql());
-               assertEquals(2, compiled.getBindings().length);
-               assertBindingValue(3, compiled.getBindings()[0]);
-               assertBindingValue("aaa", compiled.getBindings()[1]);
+               assertEquals("SELECT * FROM ME WHERE COLUMN1 <> ? AND COLUMN2 
<> ?", compiled.sql());
+               assertEquals(2, compiled.bindings().length);
+               assertBindingValue(3, compiled.bindings()[0]);
+               assertBindingValue("aaa", compiled.bindings()[1]);
        }
 
        @Test
@@ -196,14 +196,14 @@ public class VelocitySQLTemplateProcessorTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
map);
 
-               assertEquals("SELECT * FROM ME  WHERE COLUMN1 > ?", 
compiled.getSql());
-               assertEquals(1, compiled.getBindings().length);
-               assertBindingValue("VALUE_OF_A", compiled.getBindings()[0]);
+               assertEquals("SELECT * FROM ME  WHERE COLUMN1 > ?", 
compiled.sql());
+               assertEquals(1, compiled.bindings().length);
+               assertBindingValue("VALUE_OF_A", compiled.bindings()[0]);
 
                compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals("SELECT * FROM ME ", compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals("SELECT * FROM ME ", compiled.sql());
+               assertEquals(0, compiled.bindings().length);
        }
 
        @Test
@@ -213,20 +213,20 @@ public class VelocitySQLTemplateProcessorTest {
                Map<String, Object> map = Collections.<String, Object> 
singletonMap("list", Arrays.asList("a", "b", "c"));
                SQLStatement compiled = new 
VelocitySQLTemplateProcessor().processTemplate(sqlTemplate, map);
 
-               assertEquals("SELECT * FROM ME WHERE COLUMN IN (?,?,?)", 
compiled.getSql());
-               assertEquals(3, compiled.getBindings().length);
+               assertEquals("SELECT * FROM ME WHERE COLUMN IN (?,?,?)", 
compiled.sql());
+               assertEquals(3, compiled.bindings().length);
 
                compiled = processor.processTemplate(sqlTemplate, map);
-               assertBindingValue("a", compiled.getBindings()[0]);
-               assertBindingValue("b", compiled.getBindings()[1]);
-               assertBindingValue("c", compiled.getBindings()[2]);
+               assertBindingValue("a", compiled.bindings()[0]);
+               assertBindingValue("b", compiled.bindings()[1]);
+               assertBindingValue("c", compiled.bindings()[2]);
        }
 
        @Test
        public void unknownDirective() throws Exception {
                String sqlTemplate = "SELECT #from(1) FROM a";
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.emptyMap());
-        assertEquals("SELECT #from(1) FROM a", compiled.getSql());
+        assertEquals("SELECT #from(1) FROM a", compiled.sql());
        }
 
        private void assertBindingValue(Object expectedValue, Object binding) {
diff --git 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessor_ChainTest.java
 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessor_ChainTest.java
index 3e5894437..74debae27 100644
--- 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessor_ChainTest.java
+++ 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessor_ChainTest.java
@@ -45,18 +45,18 @@ public class VelocitySQLTemplateProcessor_ChainTest {
 
                SQLStatement compiled = processor.processTemplate("#chain(' AND 
') #end",
                                Collections.<String, Object> emptyMap());
-               assertEquals("", compiled.getSql());
+               assertEquals("", compiled.sql());
 
                compiled = processor.processTemplate("#chain(' AND ') garbage 
#end", Collections.<String, Object> emptyMap());
-               assertEquals("", compiled.getSql());
+               assertEquals("", compiled.sql());
 
                compiled = processor.processTemplate("#chain(' AND ' 'PREFIX') 
#end", Collections.<String, Object> emptyMap());
 
-               assertEquals("", compiled.getSql());
+               assertEquals("", compiled.sql());
                compiled = processor.processTemplate("#chain(' AND ' 'PREFIX') 
garbage #end",
                                Collections.<String, Object> emptyMap());
 
-               assertEquals("", compiled.getSql());
+               assertEquals("", compiled.sql());
        }
 
        @Test
@@ -69,7 +69,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                map.put("c", "[C]");
 
                SQLStatement compiled = processor.processTemplate(template, 
map);
-               assertEquals("[A] OR [B] OR [C]", compiled.getSql());
+               assertEquals("[A] OR [B] OR [C]", compiled.sql());
        }
 
        @Test
@@ -83,7 +83,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                map.put("c", "[C]");
 
                SQLStatement compiled = processor.processTemplate(template, 
map);
-               assertEquals("WHERE [A] OR [B] OR [C]", compiled.getSql());
+               assertEquals("WHERE [A] OR [B] OR [C]", compiled.sql());
        }
 
        @Test
@@ -96,7 +96,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                map.put("c", "[C]");
 
                SQLStatement compiled = processor.processTemplate(template, 
map);
-               assertEquals("WHERE [A] OR [C]", compiled.getSql());
+               assertEquals("WHERE [A] OR [C]", compiled.sql());
        }
 
        @Test
@@ -109,7 +109,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                map.put("c", "[C]");
 
                SQLStatement compiled = processor.processTemplate(template, 
map);
-               assertEquals("WHERE [B] OR [C]", compiled.getSql());
+               assertEquals("WHERE [B] OR [C]", compiled.sql());
        }
 
        @Test
@@ -122,7 +122,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                map.put("b", "[B]");
 
                SQLStatement compiled = processor.processTemplate(template, 
map);
-               assertEquals("WHERE [A] OR [B]", compiled.getSql());
+               assertEquals("WHERE [A] OR [B]", compiled.sql());
        }
 
        @Test
@@ -135,7 +135,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                map.put("c", "[C]");
 
                SQLStatement compiled = processor.processTemplate(template, 
map);
-               assertEquals("WHERE [A] some other stuff OR [C]", 
compiled.getSql());
+               assertEquals("WHERE [A] some other stuff OR [C]", 
compiled.sql());
        }
 
        @Test
@@ -143,7 +143,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                String template = "#chain(' OR ' 'WHERE ')" + "#chunk()C1#end" 
+ "#chunk()C2#end" + "#chunk()C3#end" + "#end";
 
                SQLStatement compiled = processor.processTemplate(template, 
Collections.<String, Object> emptyMap());
-               assertEquals("WHERE C1 OR C2 OR C3", compiled.getSql());
+               assertEquals("WHERE C1 OR C2 OR C3", compiled.sql());
        }
 
        @Test
@@ -152,7 +152,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                                + "#end";
 
                SQLStatement compiled = processor.processTemplate(template, 
Collections.<String, Object> emptyMap());
-               assertEquals("", compiled.getSql());
+               assertEquals("", compiled.sql());
        }
 
        @Test
@@ -165,7 +165,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                map.put("b", 0);
 
                SQLStatement compiled = processor.processTemplate(template, 
map);
-               assertEquals("WHERE [A] OR [B]", compiled.getSql());
+               assertEquals("WHERE [A] OR [B]", compiled.sql());
        }
 
        @Test
@@ -178,7 +178,7 @@ public class VelocitySQLTemplateProcessor_ChainTest {
                map.put("b", 0);
 
                SQLStatement compiled = processor.processTemplate(template, 
map);
-               assertEquals("WHERE false OR 0", compiled.getSql());
+               assertEquals("WHERE false OR 0", compiled.sql());
        }
 
 }
diff --git 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessor_SelectTest.java
 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessor_SelectTest.java
index 5c88a1f14..c90149924 100644
--- 
a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessor_SelectTest.java
+++ 
b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessor_SelectTest.java
@@ -44,9 +44,9 @@ public class VelocitySQLTemplateProcessor_SelectTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals(sqlTemplate, compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
-               assertEquals(0, compiled.getResultColumns().length);
+               assertEquals(sqlTemplate, compiled.sql());
+               assertEquals(0, compiled.bindings().length);
+               assertEquals(0, compiled.resultColumns().length);
        }
 
        @Test
@@ -55,11 +55,11 @@ public class VelocitySQLTemplateProcessor_SelectTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals("SELECT A FROM ME", compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
-               assertEquals(1, compiled.getResultColumns().length);
-               assertEquals("A", compiled.getResultColumns()[0].getName());
-               assertNull(compiled.getResultColumns()[0].getJavaClass());
+               assertEquals("SELECT A FROM ME", compiled.sql());
+               assertEquals(0, compiled.bindings().length);
+               assertEquals(1, compiled.resultColumns().length);
+               assertEquals("A", compiled.resultColumns()[0].getName());
+               assertNull(compiled.resultColumns()[0].getJavaClass());
        }
 
        @Test
@@ -68,12 +68,12 @@ public class VelocitySQLTemplateProcessor_SelectTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals("SELECT A FROM ME", compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals("SELECT A FROM ME", compiled.sql());
+               assertEquals(0, compiled.bindings().length);
 
-               assertEquals(1, compiled.getResultColumns().length);
-               assertEquals("A", compiled.getResultColumns()[0].getName());
-               assertEquals("java.lang.String", 
compiled.getResultColumns()[0].getJavaClass());
+               assertEquals(1, compiled.resultColumns().length);
+               assertEquals("A", compiled.resultColumns()[0].getName());
+               assertEquals("java.lang.String", 
compiled.resultColumns()[0].getJavaClass());
        }
 
        @Test
@@ -82,11 +82,11 @@ public class VelocitySQLTemplateProcessor_SelectTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals("SELECT A AS B FROM ME", compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals("SELECT A AS B FROM ME", compiled.sql());
+               assertEquals(0, compiled.bindings().length);
 
-               assertEquals(1, compiled.getResultColumns().length);
-               ColumnDescriptor column = compiled.getResultColumns()[0];
+               assertEquals(1, compiled.resultColumns().length);
+               ColumnDescriptor column = compiled.resultColumns()[0];
                assertEquals("A", column.getName());
                assertEquals("B", column.getDataRowKey());
                assertEquals("java.lang.String", column.getJavaClass());
@@ -98,12 +98,12 @@ public class VelocitySQLTemplateProcessor_SelectTest {
 
                SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.<String, Object> emptyMap());
 
-               assertEquals("SELECT A, B, C FROM ME", compiled.getSql());
-               assertEquals(0, compiled.getBindings().length);
+               assertEquals("SELECT A, B, C FROM ME", compiled.sql());
+               assertEquals(0, compiled.bindings().length);
 
-               assertEquals(3, compiled.getResultColumns().length);
-               assertEquals("A", compiled.getResultColumns()[0].getName());
-               assertEquals("B", compiled.getResultColumns()[1].getName());
-               assertEquals("C", compiled.getResultColumns()[2].getName());
+               assertEquals(3, compiled.resultColumns().length);
+               assertEquals("A", compiled.resultColumns()[0].getName());
+               assertEquals("B", compiled.resultColumns()[1].getName());
+               assertEquals("C", compiled.resultColumns()[2].getName());
        }
 }
diff --git 
a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLStatement.java 
b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLStatement.java
index 5c0ed6e5c..1cf46f90b 100644
--- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLStatement.java
+++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SQLStatement.java
@@ -22,62 +22,9 @@ package org.apache.cayenne.access.jdbc;
 import org.apache.cayenne.access.translator.ParameterBinding;
 
 /**
- * A PreparedStatement descriptor containing a String of SQL and an array of 
parameters.
- * SQLStatement is essentially a "compiled" version of any single query.
- * 
+ * A translated form of a Query used to generated PreparedStatements.
+ *
  * @since 1.1
  */
-public class SQLStatement {
-
-    protected String sql;
-    protected ParameterBinding[] bindings;
-    protected ColumnDescriptor[] resultColumns;
-
-    public SQLStatement() {
-    }
-
-    public SQLStatement(String sql, ParameterBinding[] bindings) {
-        this(sql, null, bindings);
-    }
-
-    /**
-     * @since 1.2
-     */
-    public SQLStatement(String sql, ColumnDescriptor[] resultColumns,
-                        ParameterBinding[] bindings) {
-
-        setSql(sql);
-        setBindings(bindings);
-        setResultColumns(resultColumns);
-    }
-
-    /**
-     * @since 1.2
-     */
-    public ColumnDescriptor[] getResultColumns() {
-        return resultColumns;
-    }
-
-    /**
-     * @since 1.2
-     */
-    public void setResultColumns(ColumnDescriptor[] descriptors) {
-        resultColumns = descriptors;
-    }
-
-    public ParameterBinding[] getBindings() {
-        return bindings;
-    }
-
-    public String getSql() {
-        return sql;
-    }
-
-    public void setBindings(ParameterBinding[] bindings) {
-        this.bindings = bindings;
-    }
-
-    public void setSql(String string) {
-        sql = string;
-    }
+public record SQLStatement(String sql, ColumnDescriptor[] resultColumns, 
ParameterBinding[] bindings) {
 }
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 acfcfdd12..40cc7cba3 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
@@ -142,9 +142,9 @@ public class SQLTemplateAction implements SQLAction {
                SQLStatement compiled = 
dataNode.getSqlTemplateProcessor().processTemplate(template,
                                query.getPositionalParams());
 
-               bindExtendedTypes(compiled.getBindings());
+               bindExtendedTypes(compiled.bindings());
                if (loggable) {
-                       
dataNode.getJdbcEventLogger().logQuery(compiled.getSql(), 
compiled.getBindings());
+                       dataNode.getJdbcEventLogger().logQuery(compiled.sql(), 
compiled.bindings());
                }
 
                execute(connection, callback, compiled, counts);
@@ -172,9 +172,9 @@ public class SQLTemplateAction implements SQLAction {
                for (int i = 0; i < batchSize; i++) {
                        Map<String, ?> nextParameters = it.next();
                        SQLStatement compiled = 
dataNode.getSqlTemplateProcessor().processTemplate(template, nextParameters);
-                       bindExtendedTypes(compiled.getBindings());
+                       bindExtendedTypes(compiled.bindings());
                        if (loggable) {
-                               
dataNode.getJdbcEventLogger().logQuery(compiled.getSql(), 
compiled.getBindings());
+                               
dataNode.getJdbcEventLogger().logQuery(compiled.sql(), compiled.bindings());
                        }
 
                        execute(connection, callback, compiled, counts);
@@ -188,10 +188,10 @@ public class SQLTemplateAction implements SQLAction {
                long t1 = System.currentTimeMillis();
                boolean iteratedResult = callback.isIteratedResult();
                int generatedKeys = query.isReturnGeneratedKeys() ? 
Statement.RETURN_GENERATED_KEYS : Statement.NO_GENERATED_KEYS;
-               PreparedStatement statement = 
connection.prepareStatement(compiled.getSql(), generatedKeys);
+               PreparedStatement statement = 
connection.prepareStatement(compiled.sql(), generatedKeys);
 
                try {
-                       bind(statement, compiled.getBindings());
+                       bind(statement, compiled.bindings());
 
                        // process a mix of results
                        boolean isResultSet = statement.execute();
@@ -302,11 +302,11 @@ public class SQLTemplateAction implements SQLAction {
         */
        private ColumnDescriptor[] createColumnDescriptors(SQLStatement 
compiled) {
                // SQLTemplate #result columns take precedence over other ways 
to determine the type
-               if (compiled.getResultColumns().length > 0) {
+               if (compiled.resultColumns().length > 0) {
                        if(query.getResultColumnsTypes() != null) {
                                throw new CayenneRuntimeException("Caused by 
setting return types by directives and by parameters in query.");
                        } else {
-                               return compiled.getResultColumns();
+                               return compiled.resultColumns();
                        }
                }
 
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 5e3b7ebba..6c484aab3 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
@@ -47,10 +47,10 @@ public class FrontBaseTemplateAction extends 
SQLTemplateAction {
 
         long t1 = System.currentTimeMillis();
         boolean iteratedResult = callback.isIteratedResult();
-        PreparedStatement statement = 
connection.prepareStatement(compiled.getSql());
+        PreparedStatement statement = 
connection.prepareStatement(compiled.sql());
 
         try {
-            bind(statement, compiled.getBindings());
+            bind(statement, compiled.bindings());
 
             // process a mix of results
             boolean isResultSet = statement.execute();
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 1c01dabd7..178125fca 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
@@ -52,15 +52,15 @@ class Oracle8SQLTemplateAction extends SQLTemplateAction {
     protected void execute(Connection connection, OperationObserver callback, 
SQLStatement compiled,
             Collection updateCounts) throws SQLException, Exception {
 
-        String sql = compiled.getSql().trim();
+        String sql = compiled.sql().trim();
         boolean select = sql.length() > "SELECT".length()
                 && sql.substring(0, 
"SELECT".length()).equalsIgnoreCase("SELECT");
 
         long t1 = System.currentTimeMillis();
         boolean iteratedResult = callback.isIteratedResult();
-        PreparedStatement statement = 
connection.prepareStatement(compiled.getSql());
+        PreparedStatement statement = 
connection.prepareStatement(compiled.sql());
         try {
-            bind(statement, compiled.getBindings());
+            bind(statement, compiled.bindings());
 
             // start - code different from super
             if (select) {
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 31db00278..79d8053e0 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
@@ -51,7 +51,7 @@ class OracleSQLTemplateAction extends SQLTemplateAction {
                // Oracle NUMBER
                // columns...
 
-               if (compiled.getResultColumns().length == 0) {
+               if (compiled.resultColumns().length == 0) {
                        resultSet = new OracleResultSetWrapper(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 e02fd8184..505a8ff2e 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
@@ -51,15 +51,15 @@ class SQLiteSQLTemplateAction extends SQLTemplateAction {
             SQLStatement compiled,
             Collection<Number> updateCounts) throws SQLException, Exception {
 
-        String sql = compiled.getSql().trim();
+        String sql = compiled.sql().trim();
         boolean select = sql.length() > "SELECT".length()
                 && sql.substring(0, 
"SELECT".length()).equalsIgnoreCase("SELECT");
 
         long t1 = System.currentTimeMillis();
         boolean iteratedResult = callback.isIteratedResult();
-        PreparedStatement statement = 
connection.prepareStatement(compiled.getSql());
+        PreparedStatement statement = 
connection.prepareStatement(compiled.sql());
         try {
-            bind(statement, compiled.getBindings());
+            bind(statement, compiled.bindings());
 
             // start - code different from super
             if (select) {
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
index 60b704444..17b45bcd9 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLStatementTest.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLStatementTest.java
@@ -33,19 +33,9 @@ public class SQLStatementTest {
     @Test
     public void constructor() throws Exception {
         ParameterBinding[] bindings = new ParameterBinding[0];
-        SQLStatement statement = new SQLStatement("abc", bindings);
-        assertEquals("abc", statement.getSql());
-        assertSame(bindings, statement.getBindings());
-    }
-
-    @Test
-    public void sql() throws Exception {
-        SQLStatement statement = new SQLStatement();
-        statement.setSql("abc");
-        assertEquals("abc", statement.getSql());
-        statement.setSql("xyz");
-        assertEquals("xyz", statement.getSql());
-        statement.setSql(null);
-        assertNull(statement.getSql());
+        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/template/CayenneSQLTemplateProcessorTest.java
 
b/cayenne/src/test/java/org/apache/cayenne/template/CayenneSQLTemplateProcessorTest.java
index 97aa7b505..9c20d5879 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/template/CayenneSQLTemplateProcessorTest.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/template/CayenneSQLTemplateProcessorTest.java
@@ -50,8 +50,8 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.emptyMap());
 
-        assertEquals(sqlTemplate, compiled.getSql());
-        assertEquals(0, compiled.getBindings().length);
+        assertEquals(sqlTemplate, compiled.sql());
+        assertEquals(0, compiled.bindings().length);
     }
 
     @Test
@@ -60,8 +60,8 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.emptyMap());
 
-        assertEquals(sqlTemplate, compiled.getSql());
-        assertEquals(0, compiled.getBindings().length);
+        assertEquals(sqlTemplate, compiled.sql());
+        assertEquals(0, compiled.bindings().length);
     }
 
     @Test
@@ -71,10 +71,10 @@ public class CayenneSQLTemplateProcessorTest {
         Map<String, Object> map = Collections.singletonMap("a", "VALUE_OF_A");
         SQLStatement compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals("SELECT * FROM ME WHERE VALUE_OF_A", compiled.getSql());
+        assertEquals("SELECT * FROM ME WHERE VALUE_OF_A", compiled.sql());
 
         // bindings are not populated, since no "bind" macro is used.
-        assertEquals(0, compiled.getBindings().length);
+        assertEquals(0, compiled.bindings().length);
     }
 
     @Test
@@ -84,10 +84,10 @@ public class CayenneSQLTemplateProcessorTest {
         Map<String, Object> map = Collections.singletonMap("a", "VALUE_OF_A");
         SQLStatement compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals("SELECT * FROM ME WHERE COLUMN1 = ? AND COLUMN2 = ?", 
compiled.getSql());
-        assertEquals(2, compiled.getBindings().length);
-        assertBindingValue("VALUE_OF_A", compiled.getBindings()[0]);
-        assertBindingValue(null, compiled.getBindings()[1]);
+        assertEquals("SELECT * FROM ME WHERE COLUMN1 = ? AND COLUMN2 = ?", 
compiled.sql());
+        assertEquals(2, compiled.bindings().length);
+        assertBindingValue("VALUE_OF_A", compiled.bindings()[0]);
+        assertBindingValue(null, compiled.bindings()[1]);
     }
 
     @Test
@@ -97,8 +97,8 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals(1, compiled.getBindings().length);
-        assertBindingType(Types.VARCHAR, compiled.getBindings()[0]);
+        assertEquals(1, compiled.bindings().length);
+        assertBindingType(Types.VARCHAR, compiled.bindings()[0]);
     }
 
     @Test
@@ -108,8 +108,8 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals(1, compiled.getBindings().length);
-        assertBindingType(Types.INTEGER, compiled.getBindings()[0]);
+        assertEquals(1, compiled.bindings().length);
+        assertBindingType(Types.INTEGER, compiled.bindings()[0]);
     }
 
     @Test
@@ -118,16 +118,16 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.emptyMap());
 
-        assertEquals("SELECT * FROM ME WHERE COLUMN IS NULL", 
compiled.getSql());
-        assertEquals(0, compiled.getBindings().length);
+        assertEquals("SELECT * FROM ME WHERE COLUMN IS NULL", compiled.sql());
+        assertEquals(0, compiled.bindings().length);
 
         Map<String, Object> map = Collections.singletonMap("a", "VALUE_OF_A");
 
         compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals("SELECT * FROM ME WHERE COLUMN = ?", compiled.getSql());
-        assertEquals(1, compiled.getBindings().length);
-        assertBindingValue("VALUE_OF_A", compiled.getBindings()[0]);
+        assertEquals("SELECT * FROM ME WHERE COLUMN = ?", compiled.sql());
+        assertEquals(1, compiled.bindings().length);
+        assertBindingValue("VALUE_OF_A", compiled.bindings()[0]);
     }
 
     @Test
@@ -136,16 +136,16 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.emptyMap());
 
-        assertEquals("SELECT * FROM ME WHERE COLUMN IS NOT NULL", 
compiled.getSql());
-        assertEquals(0, compiled.getBindings().length);
+        assertEquals("SELECT * FROM ME WHERE COLUMN IS NOT NULL", 
compiled.sql());
+        assertEquals(0, compiled.bindings().length);
 
         Map<String, Object> map = Collections.singletonMap("a", "VALUE_OF_A");
 
         compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals("SELECT * FROM ME WHERE COLUMN <> ?", compiled.getSql());
-        assertEquals(1, compiled.getBindings().length);
-        assertBindingValue("VALUE_OF_A", compiled.getBindings()[0]);
+        assertEquals("SELECT * FROM ME WHERE COLUMN <> ?", compiled.sql());
+        assertEquals(1, compiled.bindings().length);
+        assertBindingValue("VALUE_OF_A", compiled.bindings()[0]);
     }
 
     @Test
@@ -159,9 +159,9 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals("SELECT * FROM ME WHERE COLUMN1 = ?", compiled.getSql());
-        assertEquals(1, compiled.getBindings().length);
-        assertBindingValue(5, compiled.getBindings()[0]);
+        assertEquals("SELECT * FROM ME WHERE COLUMN1 = ?", compiled.sql());
+        assertEquals(1, compiled.bindings().length);
+        assertBindingValue(5, compiled.bindings()[0]);
     }
 
     @Test
@@ -181,10 +181,10 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals("SELECT * FROM ME WHERE COLUMN1 <> ? AND COLUMN2 <> ?", 
compiled.getSql());
-        assertEquals(2, compiled.getBindings().length);
-        assertBindingValue(3, compiled.getBindings()[0]);
-        assertBindingValue("aaa", compiled.getBindings()[1]);
+        assertEquals("SELECT * FROM ME WHERE COLUMN1 <> ? AND COLUMN2 <> ?", 
compiled.sql());
+        assertEquals(2, compiled.bindings().length);
+        assertBindingValue(3, compiled.bindings()[0]);
+        assertBindingValue("aaa", compiled.bindings()[1]);
     }
 
     @Test
@@ -195,14 +195,14 @@ public class CayenneSQLTemplateProcessorTest {
 
         SQLStatement compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals("SELECT * FROM ME  WHERE COLUMN1 > ?", compiled.getSql());
-        assertEquals(1, compiled.getBindings().length);
-        assertBindingValue("VALUE_OF_A", compiled.getBindings()[0]);
+        assertEquals("SELECT * FROM ME  WHERE COLUMN1 > ?", compiled.sql());
+        assertEquals(1, compiled.bindings().length);
+        assertBindingValue("VALUE_OF_A", compiled.bindings()[0]);
 
         compiled = processor.processTemplate(sqlTemplate, 
Collections.emptyMap());
 
-        assertEquals("SELECT * FROM ME ", compiled.getSql());
-        assertEquals(0, compiled.getBindings().length);
+        assertEquals("SELECT * FROM ME ", compiled.sql());
+        assertEquals(0, compiled.bindings().length);
     }
 
     @Test
@@ -212,18 +212,18 @@ public class CayenneSQLTemplateProcessorTest {
         Map<String, Object> map = Collections.singletonMap("list", 
Arrays.asList("a", "b", "c"));
         SQLStatement compiled = processor.processTemplate(sqlTemplate, map);
 
-        assertEquals("SELECT * FROM ME WHERE COLUMN IN (?,?,?)", 
compiled.getSql());
-        assertEquals(3, compiled.getBindings().length);
-        assertBindingValue("a", compiled.getBindings()[0]);
-        assertBindingValue("b", compiled.getBindings()[1]);
-        assertBindingValue("c", compiled.getBindings()[2]);
+        assertEquals("SELECT * FROM ME WHERE COLUMN IN (?,?,?)", 
compiled.sql());
+        assertEquals(3, compiled.bindings().length);
+        assertBindingValue("a", compiled.bindings()[0]);
+        assertBindingValue("b", compiled.bindings()[1]);
+        assertBindingValue("c", compiled.bindings()[2]);
     }
 
     @Test
     public void unknownDirective() throws Exception {
         String sqlTemplate = "SELECT #from(1) FROM a";
         SQLStatement compiled = processor.processTemplate(sqlTemplate, 
Collections.emptyMap());
-        assertEquals("SELECT  FROM a", compiled.getSql());
+        assertEquals("SELECT  FROM a", compiled.sql());
     }
 
     private void assertBindingValue(Object expectedValue, Object binding) {


Reply via email to