X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=inline;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2FLangUtils.java;h=16229453776e04ed968457183aa225fd578d6c0a;hb=8e7c19c1facf69e17bc57694f1143da05d166a26;hp=1a7a8815e262dd94e5d53becd48370665a36662a;hpb=b5644c1dac96afe8b9bdcd68068c054a9f780926;p=lgpl%2Fargeo-commons.git
diff --git a/org.argeo.util/src/org/argeo/util/LangUtils.java b/org.argeo.util/src/org/argeo/util/LangUtils.java
index 1a7a8815e..162294537 100644
--- a/org.argeo.util/src/org/argeo/util/LangUtils.java
+++ b/org.argeo.util/src/org/argeo/util/LangUtils.java
@@ -10,16 +10,19 @@ 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;
import javax.naming.InvalidNameException;
import javax.naming.ldap.LdapName;
+/** Utilities around Java basic features. */
public class LangUtils {
/*
* NON-API OSGi
@@ -200,6 +203,35 @@ public class LangUtils {
return res;
}
+ /*
+ * COLLECTIONS
+ */
+ /**
+ * Convert a comma-separated separated {@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(",");
+ } 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
*/