aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/results/Result.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-24 21:03:42 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-24 21:03:42 +0000
commit86207d30715fe000b95b2f8e8b55b59a21aba34b (patch)
treecb61c8c131c6201a23995706d1124d79812e1d5f /src/main/java/org/zwobble/mammoth/results/Result.java
parentd4ac19bac1d0e1315d129c39de56121def95007b (diff)
Turn Result into a minimal interface
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/results/Result.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/results/Result.java69
1 files changed, 0 insertions, 69 deletions
diff --git a/src/main/java/org/zwobble/mammoth/results/Result.java b/src/main/java/org/zwobble/mammoth/results/Result.java
deleted file mode 100644
index 063aba4..0000000
--- a/src/main/java/org/zwobble/mammoth/results/Result.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.zwobble.mammoth.results;
-
-import com.google.common.collect.ImmutableList;
-import org.zwobble.mammoth.internal.documents.Style;
-import org.zwobble.mammoth.internal.util.MammothLists;
-
-import java.util.List;
-import java.util.Optional;
-import java.util.function.BiFunction;
-import java.util.function.Function;
-
-import static org.zwobble.mammoth.internal.util.MammothLists.list;
-
-public class Result<T> {
- public static <T> Result<List<T>> concat(Iterable<Result<T>> results) {
- ImmutableList.Builder<T> elements = ImmutableList.builder();
- ImmutableList.Builder<Warning> warnings = ImmutableList.builder();
- for (Result<T> result : results) {
- elements.add(result.value);
- warnings.addAll(result.warnings);
- }
- return new Result<>(elements.build(), warnings.build());
- }
-
- public static <T1, T2, R> Result<R> map(
- Result<T1> first,
- Result<T2> second,
- BiFunction<T1, T2, R> function)
- {
- return new Result<>(
- function.apply(first.value, second.value),
- MammothLists.concat(first.warnings, second.warnings));
- }
-
- public static Result<Optional<Style>> empty() {
- return new Result<>(Optional.empty(), list());
- }
-
- public static <T> Result<T> success(T value) {
- return new Result<>(value, list());
- }
-
- private final T value;
- private final List<Warning> warnings;
-
- public Result(T value, List<Warning> warnings) {
- this.value = value;
- this.warnings = warnings;
- }
-
- public T getValue() {
- return value;
- }
-
- public List<Warning> getWarnings() {
- return warnings;
- }
-
- public <R> Result<R> map(Function<T, R> function) {
- return new Result<>(function.apply(value), warnings);
- }
-
- public <R> Result<R> flatMap(Function<T, Result<R>> function) {
- Result<R> intermediateResult = function.apply(value);
- return new Result<>(
- intermediateResult.value,
- MammothLists.concat(warnings, intermediateResult.warnings));
- }
-}