
com.github.davidmoten.odata.client.ActionFunctionRequestBase Maven / Gradle / Ivy
package com.github.davidmoten.odata.client;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.github.davidmoten.guavamini.Preconditions;
import com.github.davidmoten.odata.client.internal.TypedObject;
public abstract class ActionFunctionRequestBase>
implements RequestOptions {
protected final ContextPath contextPath;
protected final Map parameters;
protected final List requestHeaders = new ArrayList<>();
protected final Map queries = new HashMap<>();
public ActionFunctionRequestBase(Map parameters, ContextPath contextPath) {
this.parameters = parameters;
this.contextPath = contextPath;
}
public T requestHeader(String key, String value) {
return requestHeader(new RequestHeader(key, value));
}
@SuppressWarnings("unchecked")
public T requestHeader(RequestHeader requestHeader) {
requestHeaders.add(requestHeader);
return (T) this;
}
@SuppressWarnings("unchecked")
public T query(String key, String value) {
Preconditions.checkNotNull(key);
Preconditions.checkNotNull(value);
queries.put(key, value);
return (T) this;
}
public T select(String clause) {
return query("$select", clause);
}
public T expand(String clause) {
return query("$expand", clause);
}
public T filter(String clause) {
return query("$filter", clause);
}
public T search(String clause) {
return query("$search", clause);
}
public T orderBy(String clause) {
return query("$orderBy", clause);
}
public T skip(long skip) {
return query("$skip", String.valueOf(skip));
}
public T top(long top) {
return query("$top", String.valueOf(top));
}
public T useCaches() {
// TODO support useCaches
throw new UnsupportedOperationException();
}
public T metadataNone() {
return requestHeader(RequestHeader.acceptJsonWithMetadata("none"));
}
public T metadataMinimal() {
return requestHeader(RequestHeader.acceptJsonWithMetadata("minimal"));
}
public T metadataFull() {
return requestHeader(RequestHeader.acceptJsonWithMetadata("full"));
}
@Override
public List getRequestHeaders() {
return requestHeaders;
}
@Override
public Map getQueries() {
return queries;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy