
com.woorea.openstack.base.client.OpenStackRequest Maven / Gradle / Ivy
package com.woorea.openstack.base.client;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
public class OpenStackRequest {
private OpenStackClient client;
public OpenStackRequest() {
}
public OpenStackRequest(OpenStackClient client, HttpMethod method, String path, Entity> entity, Class returnType) {
this(client, method, (CharSequence)path, entity, returnType);
}
public OpenStackRequest(OpenStackClient client, HttpMethod method, CharSequence path, Entity> entity, Class returnType) {
this.client = client;
this.method = method;
this.path = new StringBuilder(path);
this.entity = entity;
this.returnType = returnType;
header("Accept", "application/json");
}
private String endpoint;
private HttpMethod method;
private StringBuilder path = new StringBuilder();
private Map> headers = new HashMap>();
private Entity> entity;
private Class returnType;
public OpenStackRequest endpoint(String endpoint) {
this.endpoint = endpoint;
return this;
}
public String endpoint() {
return endpoint;
}
public OpenStackRequest method(HttpMethod method) {
this.method = method;
return this;
}
public HttpMethod method() {
return method;
}
public OpenStackRequest path(String path) {
this.path.append(path);
return this;
}
public String path() {
return path.toString();
}
public OpenStackRequest header(String name, Object value) {
if(value != null) {
headers.put(name, Arrays.asList(value));
}
return this;
}
public Map> headers() {
return headers;
}
public Entity entity(T entity, String contentType) {
return new Entity(entity, contentType);
}
public Entity> entity() {
return entity;
}
public Entity json(T entity) {
return entity(entity, "application/json");
}
public void returnType(Class returnType) {
this.returnType = returnType;
}
public Class returnType() {
return returnType;
}
public R execute() {
return client.execute(this);
}
public OpenStackResponse request() {
return client.request(this);
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "OpenStackRequest [endpoint=" + endpoint + ", method=" + method
+ ", path=" + path + ", headers=" + headers + ", entity="
+ entity + ", returnType=" + returnType + "]";
}
private Map > queryParams = new LinkedHashMap >();
public Map > queryParams() {
return queryParams;
}
public OpenStackRequest queryParam(String key, Object value) {
if (queryParams.containsKey(key)) {
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy