From 95836987d6cef1a80035a685057567a4285c9f1a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 16 Feb 2016 22:30:30 +0000 Subject: Wire up relationships and note reading --- src/main/java/org/zwobble/mammoth/results/Result.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/main/java/org/zwobble/mammoth/results/Result.java') diff --git a/src/main/java/org/zwobble/mammoth/results/Result.java b/src/main/java/org/zwobble/mammoth/results/Result.java index be0819a..7e607f0 100644 --- a/src/main/java/org/zwobble/mammoth/results/Result.java +++ b/src/main/java/org/zwobble/mammoth/results/Result.java @@ -2,9 +2,11 @@ package org.zwobble.mammoth.results; import com.google.common.collect.ImmutableList; import org.zwobble.mammoth.documents.Style; +import org.zwobble.mammoth.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.util.MammothLists.list; @@ -20,6 +22,16 @@ public class Result { return new Result<>(elements.build(), warnings.build()); } + public static Result map( + Result first, + Result second, + BiFunction function) + { + return new Result<>( + function.apply(first.value, second.value), + MammothLists.concat(first.warnings, second.warnings)); + } + public static Result> empty() { return new Result<>(Optional.empty(), list()); } @@ -47,4 +59,11 @@ public class Result { public Result map(Function function) { return new Result<>(function.apply(value), warnings); } + + public Result flatMap(Function> function) { + Result intermediateResult = function.apply(value); + return new Result<>( + intermediateResult.getValue(), + MammothLists.concat(warnings, intermediateResult.warnings)); + } } -- cgit v1.2.3