Skip to content

Commit cfc0b4f

Browse files
chore: cleanup Result and AbstractResult (#1656)
1 parent 9085e5e commit cfc0b4f

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

spi/core-spi/src/main/java/org/eclipse/dataspaceconnector/spi/result/AbstractResult.java

+7-8
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,17 @@
1515
package org.eclipse.dataspaceconnector.spi.result;
1616

1717
import com.fasterxml.jackson.annotation.JsonIgnore;
18-
import org.jetbrains.annotations.NotNull;
1918

2019
import java.util.List;
21-
import java.util.Objects;
2220

2321
/**
2422
* Base result type used by services to indicate success or failure.
23+
* <p>
24+
* Service operations should generally never throw checked exceptions. Instead, they should return concrete result types
25+
* and raise unchecked exceptions only when an unexpected event happens, such as a programming error.
2526
*
26-
* Service operations should generally never throw checked exceptions. Instead, they should return concrete result types and raise unchecked exceptions only when an
27-
* unexpected event happens, such as a programming error.
27+
* @param <F> The type of {@link Failure}.
28+
* @param <T> The type of the content
2829
*/
2930
public abstract class AbstractResult<T, F extends Failure> {
3031

@@ -36,7 +37,6 @@ protected AbstractResult(T content, F failure) {
3637
this.failure = failure;
3738
}
3839

39-
@NotNull
4040
public T getContent() {
4141
return content;
4242
}
@@ -48,8 +48,7 @@ public F getFailure() {
4848
//will cause problems during JSON serialization if failure is null
4949
@JsonIgnore
5050
public List<String> getFailureMessages() {
51-
Objects.requireNonNull(failure);
52-
return failure.getMessages();
51+
return failure == null ? List.of() : failure.getMessages();
5352
}
5453

5554
public boolean succeeded() {
@@ -67,6 +66,6 @@ public boolean failed() {
6766
*/
6867
@JsonIgnore // will cause problems during JSON serialization if failure is null
6968
public String getFailureDetail() {
70-
return String.join(", ", getFailureMessages());
69+
return failure == null ? null : String.join(", ", getFailureMessages());
7170
}
7271
}

spi/core-spi/src/test/java/org/eclipse/dataspaceconnector/spi/result/ResultTest.java

+14
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@
2020

2121
class ResultTest {
2222

23+
24+
@Test
25+
void verifyFailureMessages_whenSucceeded() {
26+
var r = Result.success("Foobar");
27+
assertThat(r.getFailureDetail()).isNull();
28+
assertThat(r.getFailureMessages()).isEmpty();
29+
}
30+
2331
@Test
2432
void map_appliesFunctionToContent() {
2533
var result = Result.success("successful").map(it -> it + " and mapped");
@@ -28,6 +36,12 @@ void map_appliesFunctionToContent() {
2836
assertThat(result.getContent()).isEqualTo("successful and mapped");
2937
}
3038

39+
@Test
40+
void verifyContent_whenFailed() {
41+
var r = Result.failure("random failure");
42+
assertThat(r.getContent()).isNull();
43+
}
44+
3145
@Test
3246
void map_doesNothingOnFailedResult() {
3347
var result = Result.failure("error").map(it -> it + " and mapped");

0 commit comments

Comments
 (0)