package codeine.utils; import java.util.Map; import org.apache.log4j.Logger; import com.google.common.base.Function; import com.google.common.collect.Maps; public class MapUtils { private static final Logger log = Logger.getLogger(MapUtils.class); public static Map<String,String> noNullsMap(Map<String,String> map) { if (!map.containsKey(null) && !map.containsValue(null)) { return map; } Function<String, String> function = new Function<String, String>() { @Override public String apply(String input) { return StringUtils.safeToString(input); } }; Map<String, String> $ = Maps.newHashMap(Maps.transformValues(map, function)); if ($.containsKey(null)) { if ($.containsKey("")) { throw new IllegalArgumentException("map contains both null and empty string keys " + map); } else { log.debug("map contains null key with value " + $.get(null)); $.put("", $.remove(null)); } } return $; } }