aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-13 18:18:33 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-13 18:18:33 +0000
commita431972f98d98114dc9a5a65a3fbaf68967a8161 (patch)
tree5a4e6f29a884ca1091b5a8f4d5c5a4f1558b2233 /src/main/java/org/zwobble/mammoth/docx/ReadResult.java
parentcfff129846046a2549f8c78f6de458b9f4183f43 (diff)
Add result objects
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/docx/ReadResult.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/ReadResult.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/docx/ReadResult.java b/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
new file mode 100644
index 0000000..f3eb7ce
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
@@ -0,0 +1,44 @@
+package org.zwobble.mammoth.docx;
+
+import com.google.common.collect.ImmutableList;
+import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.documents.DocumentElement;
+
+import java.util.List;
+import java.util.function.Function;
+
+import static org.zwobble.mammoth.util.MammothLists.list;
+
+public class ReadResult {
+ public static final ReadResult EMPTY_SUCCESS = success(list());
+
+ public static ReadResult concat(Iterable<ReadResult> results) {
+ ImmutableList.Builder<DocumentElement> elements = ImmutableList.builder();
+ for (ReadResult result : results) {
+ elements.addAll(result.elements);
+ }
+ return new ReadResult(elements.build());
+ }
+
+ public static ReadResult success(DocumentElement element) {
+ return success(list(element));
+ }
+
+ public static ReadResult success(List<DocumentElement> elements) {
+ return new ReadResult(elements);
+ }
+
+ private final List<DocumentElement> elements;
+
+ public ReadResult(List<DocumentElement> elements) {
+ this.elements = elements;
+ }
+
+ public ReadResult map(Function<List<DocumentElement>, DocumentElement> function) {
+ return new ReadResult(list(function.apply(elements)));
+ }
+
+ public Result<List<DocumentElement>> toResult() {
+ return new Result<>(elements);
+ }
+}