diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/CollectionUtils.java b/common/source/java/ch/systemsx/cisd/common/utilities/CollectionUtils.java index 376d96d599e9cea3d1c5a0b20d05d7f5b1420446..e3efc49e5e50848e7fd1880358ecd39502fdb731 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/CollectionUtils.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/CollectionUtils.java @@ -20,6 +20,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.Iterator; +import org.apache.commons.lang.StringUtils; + /** * Some convenience methods/utilities around {@link Collection}. * @@ -144,4 +146,20 @@ public final class CollectionUtils return builder.toString(); } + /** + * Gets each item composing given <var>iterable</var> and checks whether it is not empty using {@link StringUtils}. + */ + public final static boolean isEmpty(final Iterable<String> iterable) + { + assert iterable != null : "Given iterable can not be null"; + for (final String element : iterable) + { + if (StringUtils.isNotEmpty(element)) + { + return false; + } + } + return true; + } + } \ No newline at end of file diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/CollectionUtilsTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/CollectionUtilsTest.java index ace9187342617d0613c08c9f872385adf43e7b69..90f43f8610d0d4b8e3ec62ccfba62c8c6b51c865 100644 --- a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/CollectionUtilsTest.java +++ b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/CollectionUtilsTest.java @@ -18,7 +18,9 @@ package ch.systemsx.cisd.common.utilities; import static org.testng.AssertJUnit.*; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.apache.commons.lang.StringUtils; import org.testng.annotations.Test; @@ -45,8 +47,7 @@ public final class CollectionUtilsTest String[] s = StringUtilities.getStrings(5); CollectionStyle collectionStyle = CollectionStyle.DEFAULT_COLLECTION_STYLE; String string = - collectionStyle.getCollectionStart() - + StringUtils.join(s, collectionStyle.getCollectionSeparator()) + collectionStyle.getCollectionStart() + StringUtils.join(s, collectionStyle.getCollectionSeparator()) + collectionStyle.getCollectionEnd(); assertEquals(string, CollectionUtils.abbreviate(s, -1, false)); assertEquals(string, CollectionUtils.abbreviate(s, -10, false)); @@ -64,4 +65,26 @@ public final class CollectionUtilsTest assertEquals("[1, 2, ... (3 left)]", CollectionUtils.abbreviate(s, 2)); assertEquals(CollectionUtils.abbreviate(s, 10, false), CollectionUtils.abbreviate(s, 10)); } + + @Test + public final void testIsEmpty() + { + try + { + CollectionUtils.isEmpty(null); + fail("Given iterable can not be null."); + } catch (AssertionError e) + { + // Nothing to do here. + } + final List<String> list = new ArrayList<String>(); + assertEquals(true, CollectionUtils.isEmpty(list)); + list.add(""); + assertEquals(true, CollectionUtils.isEmpty(list)); + list.add(" "); + assertEquals(false, CollectionUtils.isEmpty(list)); + list.clear(); + list.add("x"); + assertEquals(false, CollectionUtils.isEmpty(list)); + } }