docs: private String createValueFromMap(Map<String, String> valueMap) {
  
          if (valueMap == null) {
              return null;
          }
          StringBuffer result = new StringBuffer(valueMap.size() * 32);
          Iterator<Map.Entry<String, String>> i = valueMap.entrySet().iterator();
          while (i.hasNext()) {
              Map.Entry<String, String> entry = i.next();
              String key = entry.getKey();
              String value = entry.getValue();
              key = replaceDelimiter(key, VALUE_LIST_DELIMITER, VALUE_LIST_DELIMITER_REPLACEMENT);
              key = replaceDelimiter(key, VALUE_MAP_DELIMITER, VALUE_MAP_DELIMITER_REPLACEMENT);
              value = replaceDelimiter(value, VALUE_LIST_DELIMITER, VALUE_LIST_DELIMITER_REPLACEMENT);
              value = replaceDelimiter(value, VALUE_MAP_DELIMITER, VALUE_MAP_DELIMITER_REPLACEMENT);
              result.append(key);
              result.append(VALUE_MAP_DELIMITER);
              result.append(value);
              if (i.hasNext()) {
                  result.append(VALUE_LIST_DELIMITER);
              }
          }
          return result.toString();
      }