diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-24 21:03:42 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-24 21:03:42 +0000 |
| commit | 86207d30715fe000b95b2f8e8b55b59a21aba34b (patch) | |
| tree | cb61c8c131c6201a23995706d1124d79812e1d5f /src/main/java/org/zwobble/mammoth/results/Result.java | |
| parent | d4ac19bac1d0e1315d129c39de56121def95007b (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.java | 69 |
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)); - } -} |
