dnet-docker/dnet-app/libs/dnet-oai-common/src/main/java/eu/dnetlib/common/oai/OaiRequest.java

121 lines
3.3 KiB
Java

package eu.dnetlib.common.oai;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
public class OaiRequest {
public static final String GETRECORD = "GetRecord";
public static final String LISTIDENTIFIERS = "ListIdentifiers";
public static final String LISTRECORDS = "ListRecords";
public static final String LISTSETS = "ListSets";
public static final String LISTMETADATAFORMATS = "ListMetadataFormats";
public static final String IDENTIFY = "Identify";
private final String baseUrl;
private final String verb;
private final String mdf;
private final String set;
private final String id;
private final String token;
public static OaiRequest newIdentify(final String baseUrl) {
return new OaiRequest(baseUrl, IDENTIFY, null, null, null, null);
}
public static OaiRequest newListMetadataFormats(final String baseUrl) {
return new OaiRequest(baseUrl, LISTMETADATAFORMATS, null, null, null, null);
}
public static OaiRequest newListSets(final String baseUrl) {
return new OaiRequest(baseUrl, LISTSETS, null, null, null, null);
}
public static OaiRequest newListSetsWithToken(final String baseUrl, final String reusumptionToken) {
return new OaiRequest(baseUrl, LISTSETS, null, null, null, reusumptionToken);
}
public static OaiRequest newListRecords(final String baseUrl, final String mdPrefix, final String set) {
return new OaiRequest(baseUrl, LISTRECORDS, mdPrefix, set, null, null);
}
public static OaiRequest newListRecordsWithToken(final String baseUrl, final String reusumptionToken) {
return new OaiRequest(baseUrl, LISTRECORDS, null, null, null, reusumptionToken);
}
public static OaiRequest newListIdentifiers(final String baseUrl, final String mdPrefix, final String set) {
return new OaiRequest(baseUrl, LISTIDENTIFIERS, mdPrefix, set, null, null);
}
public static OaiRequest newListIdentifiersWithToken(final String baseUrl, final String reusumptionToken) {
return new OaiRequest(baseUrl, LISTIDENTIFIERS, null, null, null, reusumptionToken);
}
public static OaiRequest newGetRecord(final String baseUrl, final String mdPrefix, final String id) {
return new OaiRequest(baseUrl, GETRECORD, mdPrefix, null, id, null);
}
private OaiRequest(final String baseUrl, final String verb, final String mdf, final String set, final String id, final String token) {
this.baseUrl = baseUrl;
this.verb = verb;
this.mdf = mdf;
this.set = set;
this.id = id;
this.token = token;
}
public String getBaseUrl() {
return this.baseUrl;
}
public String getVerb() {
return this.verb;
}
public String getMdf() {
return this.mdf;
}
public String getSet() {
return this.set;
}
public String getId() {
return this.id;
}
public String getToken() {
return this.token;
}
public Map<String, Object> toQueryParams() {
final Map<String, Object> params = new HashMap<>();
if (StringUtils.isNotBlank(this.verb)) {
params.put("verb", this.verb);
}
if (StringUtils.isNotBlank(this.mdf)) {
params.put("metadataPrefix", this.mdf);
}
if (StringUtils.isNotBlank(this.set)) {
params.put("set", this.set);
}
if (StringUtils.isNotBlank(this.id)) {
params.put("identifier", this.id);
}
if (StringUtils.isNotBlank(this.token)) {
params.put("resumptionToken", this.token);
}
return params;
}
}