@Override public String[] getStringArray(String key) { boolean multiValue = settings.getDefinition(key) .map(PropertyDefinition::multiValues) .orElse(false); return get(key) .map(v -> parseAsCsv(key, v, multiValue ? REPLACE_ENCODED_COMMAS : identity())) .orElse(ArrayUtils.EMPTY_STRING_ARRAY); }
public Settings setProperty(String key, @Nullable String[] values) { requireNonNull(key, "key can't be null"); String effectiveKey = key.trim(); Optional<PropertyDefinition> def = getDefinition(effectiveKey); if (!def.isPresent() || (!def.get().multiValues())) { throw new IllegalStateException("Fail to set multiple values on a single value property " + key); } String text = null; if (values != null) { List<String> escaped = new ArrayList<>(); for (String value : values) { if (null != value) { escaped.add(value.replace(",", "%2C")); } else { escaped.add(""); } } String escapedValue = escaped.stream().collect(Collectors.joining(",")); text = trim(escapedValue); } return setProperty(key, text); }
/** * Value is split by comma and trimmed. Never returns null. * <br> * Examples : * <ul> * <li>"one,two,three " -> ["one", "two", "three"]</li> * <li>" one, two, three " -> ["one", "two", "three"]</li> * <li>"one, , three" -> ["one", "", "three"]</li> * </ul> */ public String[] getStringArray(String key) { String effectiveKey = definitions.validKey(key); Optional<PropertyDefinition> def = getDefinition(effectiveKey); if ((def.isPresent()) && (def.get().multiValues())) { String value = getString(key); if (value == null) { return ArrayUtils.EMPTY_STRING_ARRAY; } List<String> values = new ArrayList<>(); for (String v : Splitter.on(",").trimResults().split(value)) { values.add(v.replace("%2C", ",")); } return values.toArray(new String[values.size()]); } return getStringArrayBySeparator(key, ","); }
@Override public String[] getStringArray(String key) { boolean multiValue = settings.getDefinition(key) .map(PropertyDefinition::multiValues) .orElse(false); return get(key) .map(v -> parseAsCsv(key, v, multiValue ? REPLACE_ENCODED_COMMAS : identity())) .orElse(ArrayUtils.EMPTY_STRING_ARRAY); }
public Settings setProperty(String key, @Nullable String[] values) { requireNonNull(key, "key can't be null"); String effectiveKey = key.trim(); Optional<PropertyDefinition> def = getDefinition(effectiveKey); if (!def.isPresent() || (!def.get().multiValues())) { throw new IllegalStateException("Fail to set multiple values on a single value property " + key); } String text = null; if (values != null) { List<String> escaped = new ArrayList<>(); for (String value : values) { if (null != value) { escaped.add(value.replace(",", "%2C")); } else { escaped.add(""); } } String escapedValue = escaped.stream().collect(Collectors.joining(",")); text = trim(escapedValue); } return setProperty(key, text); }
/** * Value is split by comma and trimmed. Never returns null. * <br> * Examples : * <ul> * <li>"one,two,three " -> ["one", "two", "three"]</li> * <li>" one, two, three " -> ["one", "two", "three"]</li> * <li>"one, , three" -> ["one", "", "three"]</li> * </ul> */ public String[] getStringArray(String key) { String effectiveKey = definitions.validKey(key); Optional<PropertyDefinition> def = getDefinition(effectiveKey); if ((def.isPresent()) && (def.get().multiValues())) { String value = getString(key); if (value == null) { return ArrayUtils.EMPTY_STRING_ARRAY; } List<String> values = new ArrayList<>(); for (String v : Splitter.on(",").trimResults().split(value)) { values.add(v.replace("%2C", ",")); } return values.toArray(new String[values.size()]); } return getStringArrayBySeparator(key, ","); }