All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.prediction.SimilarRequestBuilder Maven / Gradle / Ivy

package io.prediction;

import com.ning.http.client.Request;
import com.ning.http.client.RequestBuilder;

/**
 * Class to build Similar Requests
 *
 * @author The PredictionIO Team (http://prediction.io)
 * @version 0.2
 * @since 0.2
 */

public class SimilarRequestBuilder {
    private String apiUrl;
    private String apiFormat;
    private String appkey;
    private String iid;
    private int n;
    private Double latitude;
    private Double longitude;
    private Double within;
    private String unit;

    public SimilarRequestBuilder(String apiUrl, String apiFormat, String appkey, String iid, int n) {
        this.apiUrl = apiUrl;
        this.apiFormat = apiFormat;
        this.appkey = appkey;
        this.iid = iid;
        this.n = n;
    }

    public SimilarRequestBuilder latitude(Double latitude) {
        this.latitude = latitude;
        return this;
    }

    public SimilarRequestBuilder longitude(Double longitude) {
        this.longitude = longitude;
        return this;
    }

    public SimilarRequestBuilder within(Double within) {
        this.within = within;
        return this;
    }

    public SimilarRequestBuilder unit(String unit) {
        this.unit = unit;
        return this;
    }

    public Request build() {
        RequestBuilder builder = new RequestBuilder("GET");
        builder.setUrl(this.apiUrl + "/items/" + this.iid + "/similar." + this.apiFormat);
        builder.addQueryParameter("appkey", this.appkey);
        builder.addQueryParameter("n", Integer.toString(this.n));
        if (this.latitude != null && this.longitude != null) {
            builder.addQueryParameter("latlng", this.latitude.toString() + "," + this.longitude.toString());
        }
        if (this.within != null) {
            builder.addQueryParameter("within", this.within.toString());
        }
        if (this.unit != null) {
            builder.addQueryParameter("unit", this.unit.toString());
        }
        return builder.build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy