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;
}
/**