[utilities COMMIT] in /java-support/trunk/src: main/java/net/shibboleth/utilities/java/support/primitive/StringSuppor...
noreply at shibboleth.net
noreply at shibboleth.net
Tue May 6 21:41:11 EDT 2014
Author: putmanb
Date: Tue May 6 21:41:11 2014
New Revision: 563
URL: http://svn.shibboleth.net/view/utilities?rev=563&view=rev
Log:
Add a StringSupport method which normalizes a Collection<String> by trimming/nulling each member, and removing any remaining nulls.
Modified:
java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java
Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java?rev=563&r1=562&r2=563&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java Tue May 6 21:41:11 2014
@@ -24,6 +24,8 @@
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
@@ -31,7 +33,13 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import com.google.common.base.Predicates;
+import com.google.common.collect.Collections2;
+
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.logic.TrimOrNullStringFunction;
/** String utility methods. */
public final class StringSupport {
@@ -157,4 +165,25 @@
return temp;
}
+
+ /**
+ * Normalize a string collection by:
+ * <ol>
+ * <li>Safely trimming each member.</li>
+ * <li>Converting all empty members to null.</li>
+ * <li>Removing any null members.</li>
+ * </ol>
+ *
+ * @param values the collection of string values
+ * @return the normalized collection of string values
+ */
+ @Nonnull @NonnullElements public static Collection<String> normalizeStringCollection(
+ @Nullable @NullableElements Collection<String> values) {
+ if (values == null) {
+ return Collections.emptySet();
+ }
+
+ return Collections2.filter(Collections2.transform(values, TrimOrNullStringFunction.INSTANCE),
+ Predicates.notNull());
+ }
}
Modified: java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java?rev=563&r1=562&r2=563&view=diff
==============================================================================
--- java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java (original)
+++ java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java Tue May 6 21:41:11 2014
@@ -18,12 +18,16 @@
package net.shibboleth.utilities.java.support.primitive;
import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
import org.testng.Assert;
import org.testng.annotations.Test;
+
+import com.google.common.collect.Sets;
/**
* test for the various methods inside {@link StringSupport}
@@ -100,5 +104,31 @@
Assert.assertEquals(StringSupport.trim(TRIM_TEST1), TRIM_TEST1.trim(), "Trimming a string");
}
+
+ @Test public void testNormalizeStringCollection() {
+ Collection<String> output;
+
+ output = StringSupport.normalizeStringCollection(Sets.newHashSet("foo", "bar", "baz"));
+ Assert.assertEquals(output.size(), 3);
+ Assert.assertTrue(output.contains("foo"));
+ Assert.assertTrue(output.contains("bar"));
+ Assert.assertTrue(output.contains("baz"));
+
+ output = StringSupport.normalizeStringCollection(Sets.newHashSet(" \t\t foo ", " ", " baz \r\n"));
+ Assert.assertEquals(output.size(), 2);
+ Assert.assertTrue(output.contains("foo"));
+ Assert.assertTrue(output.contains("baz"));
+
+ output = StringSupport.normalizeStringCollection(Sets.newHashSet(" foo ", null, "baz"));
+ Assert.assertEquals(output.size(), 2);
+ Assert.assertTrue(output.contains("foo"));
+ Assert.assertTrue(output.contains("baz"));
+
+ output = StringSupport.normalizeStringCollection(new HashSet<String>());
+ Assert.assertEquals(output.size(), 0);
+
[... 6 lines stripped ...]
More information about the commits
mailing list