From: Mathieu Baudier Date: Fri, 27 Nov 2020 10:58:38 +0000 (+0100) Subject: Add string list util. X-Git-Tag: argeo-commons-2.1.89~15 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=9bb539884580853f3cc5e9fb9f923baf00c7db6e Add string list util. --- diff --git a/org.argeo.enterprise/src/org/argeo/util/LangUtils.java b/org.argeo.enterprise/src/org/argeo/util/LangUtils.java index 7824d12de..5a5b4b7d8 100644 --- a/org.argeo.enterprise/src/org/argeo/util/LangUtils.java +++ b/org.argeo.enterprise/src/org/argeo/util/LangUtils.java @@ -10,10 +10,12 @@ import java.nio.file.StandardOpenOption; import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; import java.time.temporal.Temporal; +import java.util.ArrayList; import java.util.Dictionary; import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; +import java.util.List; import java.util.Map; import java.util.Properties; @@ -201,6 +203,35 @@ public class LangUtils { return res; } + /* + * COLLECTIONS + */ + /** + * Convert a comma-separated or carrirer-return sperated {@link String} or a + * {@link String} array to a {@link List} of {@link String}, trimming them. + * Useful to quickly interpret OSGi services properties. + * + * @return a {@link List} containing the trimmed {@link String}s, or an empty + * {@link List} if the argument was null. + */ + public static List toStringList(Object value) { + List values = new ArrayList<>(); + if (value == null) + return values; + String[] arr; + if (value instanceof String) { + arr = ((String) value).split(",\n"); + } else if (value instanceof String[]) { + arr = (String[]) value; + } else { + throw new IllegalArgumentException("Unsupported value type " + value.getClass()); + } + for (String str : arr) { + values.add(str.trim()); + } + return values; + } + /* * EXCEPTIONS */