You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2024/04/22 20:16:44 UTC

(empire-db) branch master updated: EMPIREDB-420 StringUtils again

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 <rd...@users.noreply.github.com>
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