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

doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/master by this push:
     new 8fe80338 EMPIREDB-386 StringUtils.concat(...)
8fe80338 is described below

commit 8fe8033838a9ea984eba386fa7ab651cab7b7487
Author: Rainer Döbele <[email protected]>
AuthorDate: Thu Apr 6 12:23:46 2023 +0200

    EMPIREDB-386
    StringUtils.concat(...)
---
 .../org/apache/empire/commons/StringUtils.java     | 24 ++++++++++++++++++++--
 .../main/java/org/apache/empire/db/DBColumn.java   | 14 ++++++-------
 .../main/java/org/apache/empire/db/DBRowSet.java   |  2 +-
 .../src/main/java/org/apache/empire/db/DBView.java |  3 ++-
 4 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java 
b/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
index cc0aa687..74c1e547 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
@@ -206,16 +206,36 @@ public class StringUtils
     }
 
     /**
-     * Converts an array of objects to a string.
+     * Assembles a string from parts with a separator
      * 
-     * @param array array of objects
      * @param separator the separator to put between the object strings
+     * @param params array of objects
      * @return returns a String
      */
     public static String concat(String separator, Object... params)
     {
         return arrayToString(params, separator);
     }
+
+    /**
+     * Assembles a string from several parts
+     * 
+     * @param parts the parts to concatenate
+     * @return returns a String
+     */
+    public static String concat(String... parts)
+    {
+        int totalLength=0;
+        for (int i=0; i<parts.length; i++)
+            if (parts[i]!=null)
+                totalLength+=parts[i].length();
+        // concat now
+        StringBuilder b = new StringBuilder(totalLength);
+        for (int i=0; i<parts.length; i++)
+            if (parts[i]!=null)
+                b.append(parts[i]);
+        return b.toString();
+    }
     
     /**
      * Checks if a string is empty
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBColumn.java 
b/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
index 36df07c0..b5bc4e0b 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
@@ -319,7 +319,8 @@ public abstract class DBColumn extends DBColumnExpr
     {
         if (rowset==null)
             throw new ObjectNotValidException(this);
-        return rowset.getFullName()+"."+name;
+        // concat
+        return StringUtils.concat(rowset.getFullName(), ".", name);
     }
 
     /**
@@ -332,7 +333,8 @@ public abstract class DBColumn extends DBColumnExpr
         String rsName = rowset.getEntityName();
         if (StringUtils.isEmpty(rsName))
             return name;
-        return rsName + "_" + name;
+        // concat
+        return StringUtils.concat(rsName, "_", name);
     }
 
     /**
@@ -453,12 +455,8 @@ public abstract class DBColumn extends DBColumnExpr
     {
         if (rowset==null)
             return name;
-        String rowsetName = rowset.getName();
-        StringBuilder b = new 
StringBuilder(rowsetName.length()+name.length()+1);
-        b.append(rowsetName);
-        b.append(".");
-        b.append(name);
-        return b.toString();
+        // concat
+        return StringUtils.concat(rowset.getName(), ".", name);
     }
 
     /**
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java 
b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
index 6f586081..76d06bce 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
@@ -315,7 +315,7 @@ public abstract class DBRowSet extends DBExpr implements 
EntityType
     {
         String  name   = getName();
         String  schema = db.getSchema();
-        return (schema!=null) ? schema+"."+name : name;
+        return (schema!=null) ? StringUtils.concat(schema, ".", name) : name;
     }
 
     /**
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBView.java 
b/empire-db/src/main/java/org/apache/empire/db/DBView.java
index 8e199a06..f94e35b9 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBView.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBView.java
@@ -21,6 +21,7 @@ package org.apache.empire.db;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.empire.commons.Options;
+import org.apache.empire.commons.StringUtils;
 import org.apache.empire.data.Column;
 import org.apache.empire.data.DataType;
 import org.apache.empire.db.expr.column.DBValueExpr;
@@ -292,7 +293,7 @@ public abstract class DBView extends DBRowSet
     public String getFullName()
     {
         String schema = db.getSchema();
-        return (schema != null) ? schema + "." + name : name;
+        return (schema != null) ? StringUtils.concat(schema, ".", name) : name;
     }
 
     /**

Reply via email to