From 4565e8834f059e4bc9644e6590f2a931bc8cc7f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Prante?= Date: Wed, 25 Jan 2023 19:13:39 +0100 Subject: [PATCH] version and recordSchema moved to SRU client init --- .../org/xbib/sru/client/jdk/SRUClient.java | 24 ++++++++++++++----- .../org/xbib/sru/client/jdk/test/LVITest.java | 2 +- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/sru-client-jdk/src/main/java/org/xbib/sru/client/jdk/SRUClient.java b/sru-client-jdk/src/main/java/org/xbib/sru/client/jdk/SRUClient.java index c1c504a..f0aba53 100644 --- a/sru-client-jdk/src/main/java/org/xbib/sru/client/jdk/SRUClient.java +++ b/sru-client-jdk/src/main/java/org/xbib/sru/client/jdk/SRUClient.java @@ -6,13 +6,10 @@ import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; -import java.nio.charset.StandardCharsets; import java.util.function.Consumer; import java.util.logging.Level; import java.util.logging.Logger; -import org.xbib.marc.Marc; -import org.xbib.marc.MarcRecord; import org.xbib.sru.client.jdk.util.UrlBuilder; public class SRUClient { @@ -35,14 +32,13 @@ public class SRUClient { } public void searchRetrieve(String query, - String recordSchema, Integer startRecord, Integer maximumRecords, Consumer consumer) throws IOException, InterruptedException { UrlBuilder url = UrlBuilder.fromUrl(builder.baseURL); url.queryParam(SRUConstants.OPERATION_PARAMETER, "searchRetrieve"); - url.queryParam(SRUConstants.VERSION_PARAMETER, "1.1"); - url.queryParam(SRUConstants.RECORD_SCHEMA_PARAMETER, recordSchema); + url.queryParam(SRUConstants.VERSION_PARAMETER, builder.version); + url.queryParam(SRUConstants.RECORD_SCHEMA_PARAMETER, builder.recordSchema); url.queryParam(SRUConstants.START_RECORD_PARAMETER, Integer.toString(startRecord)); url.queryParam(SRUConstants.MAXIMUM_RECORDS_PARAMETER, Integer.toString(maximumRecords)); url.queryParam(SRUConstants.QUERY_PARAMETER, query); @@ -67,9 +63,15 @@ public class SRUClient { private String baseURL; + private String version; + + private String recordSchema; + private String userAgent; private Builder() { + this.version = "1.1"; + this.recordSchema = "marcxml"; } public Builder setBaseURL(String baseURL) { @@ -77,6 +79,16 @@ public class SRUClient { return this; } + public Builder setVersion(String version) { + this.version = version; + return this; + } + + public Builder setRecordSchema(String recordSchema) { + this.recordSchema = recordSchema; + return this; + } + public Builder setUserAgent(String userAgent) { this.userAgent = userAgent; return this; diff --git a/sru-client-jdk/src/test/java/org/xbib/sru/client/jdk/test/LVITest.java b/sru-client-jdk/src/test/java/org/xbib/sru/client/jdk/test/LVITest.java index a85b48b..9e9b1e9 100644 --- a/sru-client-jdk/src/test/java/org/xbib/sru/client/jdk/test/LVITest.java +++ b/sru-client-jdk/src/test/java/org/xbib/sru/client/jdk/test/LVITest.java @@ -20,9 +20,9 @@ public class LVITest { public void testLVI() throws IOException, InterruptedException { SRUClient client = SRUClient.builder() .setBaseURL("https://sru.hbz-nrw.de/lvi") + .setRecordSchema("marcxml") .build(); client.searchRetrieve("bib.personalName = \"Smith\"", - "marcxml", 1, 10, this::dumpRecords);