String serializeFormDataEntry()

in sdk/core/azure-core-rest/src/main/java/com/azure/android/core/rest/HttpRequestMapper.java [334:378]


    String serializeFormDataEntry(String entryKey, Object entryValue, boolean shouldEncode) {
        if (entryValue == null) {
            return null;
        }

        final String encodedEntryKey = UrlEscapers.FORM_ESCAPER.escape(entryKey);
        if (entryValue instanceof List<?>) {
            StringBuilder formDataEntryBuilder = new StringBuilder();
            final List<?> listElements = (List<?>) entryValue;
            for (Object element : listElements) {
                if (element != null) {
                    String serializedElement = this.jacksonSerder.serializeRaw(element);
                    if (serializedElement != null) {
                        if (shouldEncode) {
                            formDataEntryBuilder.append(encodedEntryKey).append("=")
                                .append(UrlEscapers.FORM_ESCAPER.escape(serializedElement));
                        } else {
                            formDataEntryBuilder.append(encodedEntryKey).append("=").append(serializedElement);
                        }
                        formDataEntryBuilder.append("&");
                    }
                }
            }
            if (formDataEntryBuilder.length() > 0) {
                formDataEntryBuilder.deleteCharAt(formDataEntryBuilder.length() - 1);
            }
            final String formData = formDataEntryBuilder.toString();
            if (!formData.isEmpty()) {
                return formData;
            } else {
                return null;
            }
        } else {
            final String serializedValue = this.jacksonSerder.serializeRaw(entryValue);
            if (serializedValue != null) {
                if (shouldEncode) {
                    return encodedEntryKey + "=" + UrlEscapers.FORM_ESCAPER.escape(serializedValue);
                } else {
                    return encodedEntryKey + "=" + serializedValue;
                }
            } else {
                return null;
            }
        }
    }