From 9bb539884580853f3cc5e9fb9f923baf00c7db6e Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 27 Nov 2020 11:58:38 +0100 Subject: [PATCH] Add string list util. --- .../src/org/argeo/util/LangUtils.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) 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 */ -- 2.30.2