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

vorburger pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 93d1716  Added: SQL builder toString function
93d1716 is described below

commit 93d171663078ad883d1e1242a8c35c02b8230741
Author: thesmallstar <[email protected]>
AuthorDate: Tue Mar 10 16:45:25 2020 +0530

    Added: SQL builder toString function
---
 .../infrastructure/security/utils/SQLBuilder.java  | 36 ++++++++++++++++++++--
 .../security/utils/SQLBuilderTest.java             |  6 ++--
 2 files changed, 37 insertions(+), 5 deletions(-)

diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/SQLBuilder.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/SQLBuilder.java
index 63052fb..0a22bd2 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/SQLBuilder.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/SQLBuilder.java
@@ -43,6 +43,8 @@ public class SQLBuilder {
     // This holds the arguments, in the order of the '?' placeholders in sb
     private final List<Object> args = new ArrayList<>();
 
+    // This holds the criterias, where nth element corresponds to nth element 
in args
+    private final ArrayList<String> crts = new ArrayList<String>();
     /**
      * Adds a criteria for a SQL WHERE clause.
      * All criteria are appended by AND (support for OR, or nesting, can be 
added when needed).
@@ -84,6 +86,7 @@ public class SQLBuilder {
         }
         sb.append(trimmedCriteria);
         sb.append(" ?");
+        crts.add(trimmedCriteria);
         args.add(argument);
     }
 
@@ -118,9 +121,38 @@ public class SQLBuilder {
     /*
      * Returns a String representation suitable for debugging and log output.
      * This is ONLY intended for debugging in logs, and NEVER for passing to a 
JDBC database.
+     */
     @Override
     public String toString() {
-        return "SQLBuilder{..."; // TODO implement this...
+       StringBuilder whereClause  = new StringBuilder("SQLBuilder{");
+       for (int i=0;i<args.size();i++)
+        {
+            if (i!=0)
+            {
+                whereClause.append("  AND  ");
+            }
+            else
+            {
+                whereClause.append("WHERE  ");
+            }
+            Object currentArg = args.get(i);
+            whereClause.append(crts.get(i));
+            whereClause.append(" ");
+            whereClause.append("[");
+            if(currentArg instanceof String)
+            {
+                whereClause.append("'");
+                whereClause.append(currentArg);
+                whereClause.append("'");
+            }else if(currentArg == null)
+            {
+                whereClause.append("null");
+            }else{
+                whereClause.append(String.valueOf(currentArg));
+            }
+            whereClause.append("]");
+        }
+         whereClause.append("}");
+         return whereClause.toString();
     }
-     */
 }
diff --git 
a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/security/utils/SQLBuilderTest.java
 
b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/security/utils/SQLBuilderTest.java
index 34358a6..6ea5f25 100644
--- 
a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/security/utils/SQLBuilderTest.java
+++ 
b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/security/utils/SQLBuilderTest.java
@@ -36,7 +36,7 @@ public class SQLBuilderTest {
         SQLBuilder sqlBuilder = new SQLBuilder();
         assertEquals("", sqlBuilder.getSQLTemplate());
         assertArrayEquals(new Object[] {}, sqlBuilder.getArguments());
-        // TODO assertEquals("SQLBuilder{}", sqlBuilder.toString());
+        assertEquals("SQLBuilder{}", sqlBuilder.toString());
     }
 
     @Test
@@ -47,7 +47,7 @@ public class SQLBuilderTest {
         sqlBuilder.addCriteria("age <  ", 123);
         assertEquals(" WHERE  name = ?  AND  hobby LIKE ?  AND  age < ?", 
sqlBuilder.getSQLTemplate());
         assertArrayEquals(new Object[] { "Michael", "Mifos/Apache Fineract", 
123}, sqlBuilder.getArguments());
-        // TODO assertEquals("SQLBuilder{ WHERE  name = ['Michael']  AND  
hobby = ['Mifos/Apache Fineract']  AND  age < [123]}", sqlBuilder.toString());
+        assertEquals("SQLBuilder{WHERE  name = ['Michael']  AND  hobby LIKE 
['Mifos/Apache Fineract']  AND  age < [123]}", sqlBuilder.toString());
     }
 
     @Test
@@ -56,7 +56,7 @@ public class SQLBuilderTest {
         sqlBuilder.addCriteria("ref =", null);
         assertEquals(" WHERE  ref = ?", sqlBuilder.getSQLTemplate());
         assertArrayEquals(new Object[] { null }, sqlBuilder.getArguments());
-        // TODO assertEquals("SQLBuilder{ WHERE  ref = [null] }", 
sqlBuilder.toString());
+        assertEquals("SQLBuilder{WHERE  ref = [null]}", sqlBuilder.toString());
     }
 
     @Test

Reply via email to