package org.radargun.utils; import java.lang.reflect.Type; import java.util.Iterator; import java.util.Map; import org.radargun.config.Converter; /** * Parses string containing key-value pairs into Map and vice versa. Individual pairs are separated by ';'. * Keys and values are separated by ':'. * * @author Matej Cimbora <mcimbora@redhat.com> */ public class KeyValueListConverter implements Converter<Map<String, String>> { @Override public Map<String, String> convert(String string, Type type) { return Utils.parseParams(string); } @Override public String convertToString(Map<String, String> value) { StringBuilder kvBuilder = new StringBuilder(); Iterator<Map.Entry<String, String>> it = value.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> pair = it.next(); kvBuilder.append(pair.getKey()) .append(":") .append(pair.getValue()); if (it.hasNext()) { kvBuilder.append(";"); } } return kvBuilder.toString(); } @Override public String allowedPattern(Type type) { return "[.+:.+;]*.+:.+"; } }