Skip to content

Commit c82183a

Browse files
committed
Use throwing body handler
1 parent b9cad4a commit c82183a

File tree

1 file changed

+10
-46
lines changed

1 file changed

+10
-46
lines changed

rdf4j/src/main/java/com/inrupt/client/rdf4j/RDF4JBodyHandlers.java

Lines changed: 10 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -45,24 +45,8 @@
4545
*/
4646
public final class RDF4JBodyHandlers {
4747

48-
private static JsonService jsonService;
49-
private static boolean isJsonServiceInitialized = false;
50-
51-
private static JsonService getJsonService() {
52-
if (RDF4JBodyHandlers.isJsonServiceInitialized) {
53-
return RDF4JBodyHandlers.jsonService;
54-
}
55-
// It is acceptable for a JenaBodyHandlers instance to be in a classpath without any implementation for
56-
// JsonService, in which case the ProblemDetails exceptions will fallback to default and not be parsed.
57-
JsonService js;
58-
try {
59-
js = ServiceProvider.getJsonService();
60-
} catch (IllegalStateException e) {
61-
js = null;
62-
}
63-
RDF4JBodyHandlers.jsonService = js;
64-
RDF4JBodyHandlers.isJsonServiceInitialized = true;
65-
return RDF4JBodyHandlers.jsonService;
48+
private static Boolean isSuccess(final Response.ResponseInfo responseInfo) {
49+
return responseInfo.statusCode() < 300;
6650
}
6751

6852
private static Model responseToModel(final Response.ResponseInfo responseInfo) {
@@ -94,20 +78,10 @@ public static Response.BodyHandler<Model> ofModel() {
9478
* @return an HTTP body handler
9579
*/
9680
public static Response.BodyHandler<Model> ofRDF4JModel() {
97-
return responseInfo -> {
98-
if (responseInfo.statusCode() >= 300) {
99-
throw new ClientHttpException(
100-
ProblemDetails.fromErrorResponse(
101-
responseInfo.statusCode(),
102-
responseInfo.headers(),
103-
responseInfo.body().array(),
104-
getJsonService()
105-
),
106-
"Deserializing the RDF from " + responseInfo.uri() + " failed"
107-
);
108-
}
109-
return responseToModel(responseInfo);
110-
};
81+
return Response.BodyHandlers.throwOnError(
82+
RDF4JBodyHandlers::responseToModel,
83+
RDF4JBodyHandlers::isSuccess
84+
);
11185
}
11286

11387
private static Repository responseToRepository(final Response.ResponseInfo responseInfo) {
@@ -142,20 +116,10 @@ public static Response.BodyHandler<Repository> ofRepository() {
142116
* @return an HTTP body handler
143117
*/
144118
public static Response.BodyHandler<Repository> ofRDF4JRepository() {
145-
return responseInfo -> {
146-
if (responseInfo.statusCode() >= 300) {
147-
throw new ClientHttpException(
148-
ProblemDetails.fromErrorResponse(
149-
responseInfo.statusCode(),
150-
responseInfo.headers(),
151-
responseInfo.body().array(),
152-
getJsonService()
153-
),
154-
"Deserializing the RDF from " + responseInfo.uri() + " failed"
155-
);
156-
}
157-
return responseToRepository(responseInfo);
158-
};
119+
return Response.BodyHandlers.throwOnError(
120+
RDF4JBodyHandlers::responseToRepository,
121+
RDF4JBodyHandlers::isSuccess
122+
);
159123
}
160124

161125
static RDFFormat toRDF4JFormat(final String mediaType) {

0 commit comments

Comments
 (0)