code: public String transform(Map<?, ?> map) {
  		StringBuilder sb = new StringBuilder();
  		for (Object key : map.keySet()) {
  			sb.append(getSeparatorSequence());
  			String keyString = key != null ? key.toString() : getNullValue();
  			sb.append(keyString);
  			sb.append(getMappingSequence());
  			String valueString = map.get(key) != null ? map.get(key).toString() : getNullValue();
  			sb.append(valueString);
  		}
  		return sb.substring(1);
  	}
docs: Transforms {@code Map} to {@code String}, representing every entry as
  {@code key} {@code mappingSequence} {@code value} , joined by
  {@code separatorSequence}
  <p>
  Calls {@code toString()} for keys and values, replacing {@code null} with
  the value of {@code nullValue} property
  <p>
  For example, if we have a map with two entries: {@code ("key1", "1")} and
  {@code ("key2", "2")} this method would return {@code "key1=1&key2=2"} if
  {@code mappingSequence} is "=" and separator sequence is "&";
  
  @param map map of arguments
  @return String resulting string