[java-support] branch master updated: IDP-1434 Add null-preserving converter from String to Boolean

Rod Widdowson rdw at steadingsoftware.com
Tue May 7 10:33:20 EDT 2019


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch master
in repository java-support.

View the commit online:
http://git.shibboleth.net/view/?p=java-support.git;a=commit;h=f675c7804ae4aa7fe772b3211f8fb2ea2dde97bf

The following commit(s) were added to refs/heads/master by this push:
       new  f675c78   IDP-1434 Add null-preserving converter from String to Boolean
f675c78 is described below

commit f675c7804ae4aa7fe772b3211f8fb2ea2dde97bf
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue May 7 15:10:36 2019 +0100

    IDP-1434 Add null-preserving converter from String to Boolean
    
    https://issues.shibboleth.net/jira/browse/IDP-1434
---
 .../java/support/primitive/StringSupport.java          | 14 +++++++++++++-
 .../java/support/primitive/StringSupportTest.java      | 18 +++++++++++++++---
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java b/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
index 7cca331..800ea61 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
@@ -181,4 +181,16 @@ public final class StringSupport {
         return Collections2.filter(Collections2.transform(values, TrimOrNullStringFunction.INSTANCE::apply),
                 Predicates.notNull());
     }
-}
\ No newline at end of file
+
+    /** Null/empty preserving conversion from string to {@link Boolean}.
+     * @param what the string: potentially empty or null
+     * @return null or the boolean equivalent.
+     */
+    @Nullable public static Boolean booleanOf(final String what) {
+        final String trimmed = trimOrNull(what);
+        if (trimmed == null) {
+            return null;
+        }
+        return Boolean.valueOf(trimmed);
+    }
+}
diff --git a/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java b/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java
index 59a1e6f..3a33d58 100644
--- a/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java
+++ b/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java
@@ -26,14 +26,14 @@ import java.util.List;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
-
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
+
 /**
  * test for the various methods inside {@link StringSupport}
  */
@@ -153,4 +153,16 @@ public class StringSupportTest {
         return null;
     }
 
+    @Test public void testToBoolean() {
+        Assert.assertNull(StringSupport.booleanOf(""));
+        Assert.assertFalse(Boolean.valueOf(""));
+        Assert.assertNull(StringSupport.booleanOf(null));
+        Assert.assertFalse(Boolean.valueOf(null));
+        Assert.assertTrue(StringSupport.booleanOf("true"));
+        Assert.assertTrue(Boolean.valueOf("true"));
+        Assert.assertFalse(StringSupport.booleanOf("false"));
+        Assert.assertFalse(Boolean.valueOf("false"));
+        Assert.assertFalse(StringSupport.booleanOf("elephant"));
+        Assert.assertFalse(Boolean.valueOf("elephant"));
+    }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list