
com.github.davidmoten.odata.client.NonEntityRequestOptionsBuilder Maven / Gradle / Ivy
package com.github.davidmoten.odata.client;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import com.github.davidmoten.guavamini.Preconditions;
public final class NonEntityRequestOptionsBuilder {
private final NonEntityRequest request;
private final List requestHeaders = new ArrayList<>();
private Optional select = Optional.empty();
private Optional expand = Optional.empty();
private boolean useCaches = false;
private String metadata = "minimal";
NonEntityRequestOptionsBuilder(NonEntityRequest request) {
this.request = request;
}
public NonEntityRequestOptionsBuilder requestHeader(String key, String value) {
requestHeaders.add(new RequestHeader(key, value));
return this;
}
public NonEntityRequestOptionsBuilder select(String clause) {
Preconditions.checkNotNull(clause);
this.select = Optional.of(clause);
return this;
}
public NonEntityRequestOptionsBuilder expand(String clause) {
Preconditions.checkNotNull(clause);
this.expand = Optional.of(clause);
return this;
}
public NonEntityRequestOptionsBuilder useCaches(boolean value) {
// TODO implement useCaches
this.useCaches = value;
return this;
}
public NonEntityRequestOptionsBuilder ifMatch(String eTag) {
return requestHeader("If-Match", eTag);
}
public NonEntityRequestOptionsBuilder useCaches() {
return useCaches(true);
}
public NonEntityRequestOptionsBuilder metadataNone() {
this.metadata = "none";
return this;
}
public NonEntityRequestOptionsBuilder metadataMinimal() {
this.metadata = "minimal";
return this;
}
public NonEntityRequestOptionsBuilder metadataFull() {
this.metadata = "full";
return this;
}
public T get() {
return request.get(build());
}
private NonEntityRequestOptions build() {
requestHeaders.add(RequestHeader.acceptJsonWithMetadata(metadata));
return new NonEntityRequestOptions(requestHeaders, select, expand, useCaches);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy