docs: private static String getMapPropertyValue(
        String varName,
        Map<String, Object> map,
        boolean containsExplodeModifier,
        CompositeOutput compositeOutput) {
      if (map.isEmpty()) {
        return "";
      }
      StringBuilder retBuf = new StringBuilder();
      String joiner;
      String mapElementsJoiner;
      if (containsExplodeModifier) {
        joiner = compositeOutput.getExplodeJoiner();
        mapElementsJoiner = "=";
      } else {
        joiner = COMPOSITE_NON_EXPLODE_JOINER;
        mapElementsJoiner = COMPOSITE_NON_EXPLODE_JOINER;
        if (compositeOutput.requiresVarAssignment()) {
          retBuf.append(CharEscapers.escapeUriPath(varName));
          retBuf.append("=");
        }
      }
      for (Iterator<Map.Entry<String, Object>> mapIterator = map.entrySet().iterator();
          mapIterator.hasNext(); ) {
        Map.Entry<String, Object> entry = mapIterator.next();
        String encodedKey = compositeOutput.getEncodedValue(entry.getKey());
        String encodedValue = compositeOutput.getEncodedValue(entry.getValue().toString());
        retBuf.append(encodedKey);
        retBuf.append(mapElementsJoiner);
        retBuf.append(encodedValue);
        if (mapIterator.hasNext()) {
          retBuf.append(joiner);
        }
      }
      return retBuf.toString();
    }