String applyUrlMapping()

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


    String applyUrlMapping(String urlTemplate,
                           Iterable<MethodParameterMapping> urlParameterMappings,
                           Object[] swaggerMethodArgs) {
        String mappedUrl = urlTemplate;
        if (swaggerMethodArgs != null) {
            for (MethodParameterMapping urlParameterMapping : urlParameterMappings) {
                if (urlParameterMapping.argIndex < swaggerMethodArgs.length) {
                    final Object methodArg = swaggerMethodArgs[urlParameterMapping.argIndex];

                    String value = this.serialize(methodArg);
                    if (value != null && !value.isEmpty() && urlParameterMapping.shouldEncode) {
                        value = UrlEscapers.PATH_ESCAPER.escape(value);
                    }
                    // if a parameter is null, we treat it as empty string. This is assuming
                    // no {...} will be allowed otherwise in a path template
                    if (value == null) {
                        value = "";
                    }
                    mappedUrl = mappedUrl.replace("{" + urlParameterMapping.mapToName + "}", value);
                }
            }
        }
        return mappedUrl;
    }