com.miserablemind.api.consumer.tradeking.api.impl.BaseTemplate.java Source code

Java tutorial

Introduction

Here is the source code for com.miserablemind.api.consumer.tradeking.api.impl.BaseTemplate.java

Source

/*
 * Miserable Mind
 * http://www.miserablemind.com | Twitter: @lrimkus
 * The MIT License (MIT)
 */

package com.miserablemind.api.consumer.tradeking.api.impl;

import org.springframework.social.support.URIBuilder;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

class BaseTemplate {

    private final RestTemplate restTemplate;

    BaseTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    public static final String URL_BASE = "https://api.tradeking.com/v1/";

    RestTemplate getRestTemplate() {
        return this.restTemplate;
    }

    String buildCommaSeparatedParameterValue(String[] parameterValueList) {

        if (null == parameterValueList)
            return "";

        StringBuilder builder = new StringBuilder();
        List<String> parameters = new ArrayList<>(Arrays.asList(parameterValueList));
        builder.append(parameters.remove(0));
        for (String parameter : parameters) {
            builder.append(",");
            builder.append(parameter);
        }
        return builder.toString();
    }

    URI buildUri(String path) {
        return this.buildUri(path, EMPTY_PARAMETERS);
    }

    URI buildUri(String path, String parameterName, String parameterValue) {
        MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
        parameters.set(parameterName, parameterValue);
        return this.buildUri(path, parameters);
    }

    URI buildUri(String path, MultiValueMap<String, String> parameters) {
        return URIBuilder.fromUri(URL_BASE + path).queryParams(parameters).build();
    }

    private static final LinkedMultiValueMap<String, String> EMPTY_PARAMETERS = new LinkedMultiValueMap<>();

}