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 f70e68e3 EMPIREDB-420 StringUtils again
f70e68e3 is described below

commit f70e68e3a4d2519d79bbfd862992227473a386b0
Author: Rainer Döbele <[email protected]>
AuthorDate: Mon Apr 22 22:16:40 2024 +0200

    EMPIREDB-420
    StringUtils again
---
 .../empire/jsf2/utils/TagEncodingHelper.java       |  7 ++-
 .../org/apache/empire/commons/StringUtils.java     | 50 ++++++++++++++--------
 .../org/apache/empire/commons/StringUtilsTest.java | 18 +++++---
 3 files changed, 49 insertions(+), 26 deletions(-)

diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
index 1901974c..89b338b3 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
@@ -1554,10 +1554,15 @@ public class TagEncodingHelper implements 
NamingContainer
             writeComponentId(writer, false);
         // style class
         String wrapCtxClass = (renderValue ? "eWrapVal" : "eWrapInp");
-        writeStyleClass(writer, wrapCtxClass, StringUtils.nullIf(wrapperClass, 
'-'));
+        writeStyleClass(writer, wrapCtxClass, nullIf(wrapperClass, '-'));
         // return tagName
         return tagName;
     }
+
+    protected String nullIf(String value, char nullChar)
+    {
+        return (value==null || value.length()==0 || (value.length()==1 && 
value.charAt(0)==nullChar) ? null : value);   
+    }
     
     /* ********************** FormGridTag ********************** */
 
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 c540ba49..d2f1caf7 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
@@ -125,18 +125,6 @@ public class StringUtils
         return ((strval.length()==0) ? null : strval);   
     }
 
-    /**
-     * Returns null if the string supplied is null, an empty String or a 
specific character 
-     * 
-     * @param value the value to check 
-     * @param nullChar the char that indicates null
-     * @return null if the value supplied is null, an empty String or the 
nullChar 
-     */
-    public static String nullIf(String value, char nullChar)
-    {
-        return (value==null || value.length()==0 || (value.length()==1 && 
value.charAt(0)==nullChar) ? null : value);   
-    }
-
     /**
      * Returns true if the given substring is part of the string provided by 
value 
      * 
@@ -170,9 +158,10 @@ public class StringUtils
      * 
      * @param array array of objects
      * @param separator the separator to put between the object strings
+     * @param defValue the default item value
      * @return returns a String
      */
-    public static String arrayToString(Object[] array, String separator)
+    public static String arrayToString(Object[] array, String separator, 
String defValue)
     {
         if (array == null || array.length < 1)
             return null;
@@ -183,12 +172,24 @@ public class StringUtils
             {
                 if (i>0 && separator!=null)
                     buf.append(separator);
-                buf.append(toString(array[i], EMPTY));
+                buf.append(toString(array[i], defValue));
             }
             return buf.toString();
         }
         // Only one member
-        return toString(array[0], EMPTY);
+        return toString(array[0], defValue);
+    }
+
+    /**
+     * Converts an array of objects to a string.
+     * 
+     * @param array array of objects
+     * @param separator the separator to put between the object strings
+     * @return returns a String
+     */
+    public static String arrayToString(Object[] array, String separator)
+    {
+        return arrayToString(array, separator, NULL);
     }
     
     /**
@@ -196,9 +197,10 @@ public class StringUtils
      * 
      * @param list the collection of objects
      * @param separator the separator to put between the object strings
+     * @param defValue the default item value
      * @return returns a String
      */
-    public static String listToString(Collection<?> list, String separator)
+    public static String listToString(Collection<?> list, String separator, 
String defValue)
     {
         if (list == null || list.isEmpty())
             return null;
@@ -210,12 +212,24 @@ public class StringUtils
             {
                 if (count++>0 && separator!=null)
                     buf.append(separator);
-                buf.append(toString(item, EMPTY));
+                buf.append(toString(item, defValue));
             }
             return buf.toString();
         }
         // Only one member
-        return toString(list.iterator().next(), EMPTY);
+        return toString(list.iterator().next(), defValue);
+    }
+    
+    /**
+     * Converts a list (Collection) of objects to a string.
+     * 
+     * @param list the collection of objects
+     * @param separator the separator to put between the object strings
+     * @return returns a String
+     */
+    public static String listToString(Collection<?> list, String separator)
+    {
+        return listToString(list, separator, NULL);
     }
 
     /**
diff --git 
a/empire-db/src/test/java/org/apache/empire/commons/StringUtilsTest.java 
b/empire-db/src/test/java/org/apache/empire/commons/StringUtilsTest.java
index ea4cb043..3cdeffe3 100644
--- a/empire-db/src/test/java/org/apache/empire/commons/StringUtilsTest.java
+++ b/empire-db/src/test/java/org/apache/empire/commons/StringUtilsTest.java
@@ -51,7 +51,7 @@ public class StringUtilsTest
                assertEquals(null,StringUtils.toString((Object[])null, null));
                assertEquals("default",StringUtils.toString((Object[])null, 
"default"));
                assertEquals("default",StringUtils.toString(new Number[]{}, 
"default"));
-        assertEquals("",StringUtils.toString(new Number[]{null}, "default"));
+        assertEquals("null",StringUtils.toString(new Number[]{null}, 
"default"));
         assertEquals("123",StringUtils.toString(new 
Number[]{Integer.valueOf("123")}, "default"));
                assertEquals("123|12.3",StringUtils.toString(new 
Number[]{Integer.valueOf("123"), Double.valueOf("12.3")}, "default"));
        }
@@ -62,13 +62,17 @@ public class StringUtilsTest
         ArrayList<String> array = new ArrayList<String>();
         assertEquals(null, StringUtils.toString(array, null));
         array.add(null);
-        assertEquals("", StringUtils.toString(array, null));
+        assertEquals("null", StringUtils.toString(array, null));
         assertEquals("{null=empty}|{1=one}|{2=two}", StringUtils.toString(new 
Options().add(null, "empty").add("1", "one").add("2", "two")));
         array.add("end");
-        assertEquals("|end",StringUtils.toString(array, "default"));
+        assertEquals("null|end",StringUtils.toString(array, "default"));
         array.clear();
         array.add("one");
         assertEquals("one",StringUtils.toString(array, "default"));
+        array.add(null);
+        array.add("end");
+        assertEquals("one|null|end",StringUtils.toString(array, "default"));
+        assertEquals("one||end",StringUtils.listToString(array, "|", 
StringUtils.EMPTY));
     }
 
        @Test
@@ -83,7 +87,7 @@ public class StringUtilsTest
        public void testValueOfObject()
        {
                assertEquals("",StringUtils.valueOf((Object)null));
-        assertEquals("[one|two]",StringUtils.valueOf(new String[] { "one", 
"two" }));
+        assertEquals("one|two",StringUtils.valueOf(new String[] { "one", "two" 
}));
                assertEquals("",StringUtils.valueOf(""));
                assertEquals("123",StringUtils.valueOf(Long.valueOf("123")));
        }
@@ -93,7 +97,7 @@ public class StringUtilsTest
        {
                assertEquals("",StringUtils.valueOf((Object[])null));
         assertEquals("",StringUtils.valueOf(new Object[]{}));
-               assertEquals("",StringUtils.valueOf(new Object[]{null}));
+               assertEquals("null",StringUtils.valueOf(new Object[]{null}));
                assertEquals("123|12.3",StringUtils.valueOf(new 
Number[]{Integer.valueOf("123"), Double.valueOf("12.3")}));
        }
 
@@ -126,8 +130,8 @@ public class StringUtilsTest
                assertEquals("12312.3", StringUtils.arrayToString(new 
Number[]{Integer.valueOf("123"), Double.valueOf("12.3")} , ""));
                assertEquals("firstsecondthird", StringUtils.arrayToString(new 
String[]{"first", "second", "third"} , null));
                assertEquals(" first \t second \t third ", 
StringUtils.arrayToString(new String[]{" first ", " second ", " third "} , 
"\t"));
-               assertEquals("/", StringUtils.arrayToString(new String[]{null, 
null} , "/"));
-               assertEquals("", StringUtils.arrayToString(new String[]{null} , 
"/"));
+               assertEquals("null/null", StringUtils.arrayToString(new 
String[]{null, null} , "/"));
+               assertEquals("null", StringUtils.arrayToString(new 
String[]{null} , "/"));
        }
 
        @Test

Reply via email to