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

org.odata4j.consumer.ODataClientRequest Maven / Gradle / Ivy

The newest version!
package org.odata4j.consumer;

import java.util.HashMap;
import java.util.Map;

import org.odata4j.consumer.behaviors.OClientBehavior;
import org.odata4j.format.Entry;
import org.odata4j.format.SingleLink;

/**
 * Generic OData http request builder used by the low-level {@link ODataClient} api.
 *
 * 

Also interesting for developers of custom {@link OClientBehavior} implementations.

* * @see ODataClient */ public class ODataClientRequest { private final String method; private final String url; private final Map headers; private final Map queryParams; private final Object payload; public ODataClientRequest(String method, String url, Map headers, Map queryParams, Object payload) { this.method = method; this.url = url; this.headers = headers == null ? new HashMap() : headers; this.queryParams = queryParams == null ? new HashMap() : queryParams; this.payload = payload; } /** * Gets the request http method. * * @return the http method */ public String getMethod() { return method; } /** * Gets the request url. * * @return the url */ public String getUrl() { return url; } /** * Gets the request http headers. * * @return the headers */ public Map getHeaders() { return headers; } /** * Gets the request query parameters. * * @return the query parameters */ public Map getQueryParams() { return queryParams; } /** * Gets the normalized OData payload. * * @return the normalized OData payload */ public Object getPayload() { return payload; } /** * Creates a new GET request. * * @param url the request url * @return a new request builder */ public static ODataClientRequest get(String url) { return new ODataClientRequest("GET", url, null, null, null); } /** * Creates a new POST request. * * @param url the request url * @param entry the normalized OData payload * @return a new request builder */ public static ODataClientRequest post(String url, Entry entry) { return new ODataClientRequest("POST", url, null, null, entry); } /** * Creates a new POST request. * * @param url the request url * @param link the link * @return a new request builder */ public static ODataClientRequest post(String url, SingleLink link) { return new ODataClientRequest("POST", url, null, null, link); } /** * Creates a new PUT request. * * @param url the request url * @param entry the normalized OData payload * @return a new request builder */ public static ODataClientRequest put(String url, Entry entry) { return new ODataClientRequest("PUT", url, null, null, entry); } /** * Creates a new PUT request. * * @param url the request url * @param link the link * @return a new request builder */ public static ODataClientRequest put(String url, SingleLink link) { return new ODataClientRequest("PUT", url, null, null, link); } /** * Creates a new MERGE request. * * @param url the request url * @param entry the normalized OData payload * @return a new request builder */ public static ODataClientRequest merge(String url, Entry entry) { return new ODataClientRequest("MERGE", url, null, null, entry); } /** * Creates a new MERGE request. * * @param url the request url * @param link the link * @return a new request builder */ public static ODataClientRequest merge(String url, SingleLink link) { return new ODataClientRequest("MERGE", url, null, null, link); } /** * Creates a new DELETE request. * * @param url the request url * @return a new request builder */ public static ODataClientRequest delete(String url) { return new ODataClientRequest("DELETE", url, null, null, null); } /** * Sets a request query parameter. * * @param name the query parameter name * @param value the query parameter value * @return the request builder */ public ODataClientRequest queryParam(String name, String value) { this.getQueryParams().put(name, value); return new ODataClientRequest(this.getMethod(), this.getUrl(), this.getHeaders(), this.getQueryParams(), this.getPayload()); } /** * Sets an http request header. * * @param name the header name * @param value the header value * @return the request builder */ public ODataClientRequest header(String name, String value) { headers.put(name, value); return new ODataClientRequest(method, url, headers, queryParams, payload); } /** * Sets the http request method. * * @param method the method * @return the request builder */ public ODataClientRequest method(String method) { return new ODataClientRequest(method, url, headers, queryParams, payload); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy