package org.ovirt.engine.core.utils;
import java.util.HashMap;
import java.util.Map;
public class StringMapUtils {
private static final String KEY_VALUE_SEPARATOR = "=";
private static final String PAIRS_SEPARATOR = ",";
/**
* Converting a comma delimited key=value format string to a key,value map
* values should not contain the equal sign (=)
* @return a Map of the key/value pairs
*/
public static Map<String, String> string2Map(String str) {
Map<String, String> map = new HashMap<>();
if (str != null) {
// remove map markers
str = str.trim();
if (str.startsWith("{")) {
str = str.substring(1, str.length() - 1);
}
if (str.endsWith("}")) {
str = str.substring(0, str.length() - 1);
}
str = str.trim();
if (str.length() > 0) {
String[] keyValPairs = str.split(PAIRS_SEPARATOR);
for (String pair : keyValPairs) {
String[] keyval = pair.split(KEY_VALUE_SEPARATOR);
if (keyval.length == 2) {
map.put(keyval[0].trim(), keyval[1].trim());
} else if (keyval.length == 1) {
map.put(keyval[0].trim(), "");
}
}
}
}
return map;
}
}