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 21:59:28 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-13 21:59:28 +0000
commit487bf06d9247b4e2369826af9118c2d4b7dcf0a0 (patch)
tree21810351aab4c0d130c88b2bfdc9be7269c4d297 /src/main/java/org/zwobble/mammoth/docx/ReadResult.java
parent4a6dd0bddad42cfec4f4ae88893eefde2721b7ba (diff)
Read text boxes
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/docx/ReadResult.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/ReadResult.java41
1 files changed, 32 insertions, 9 deletions
diff --git a/src/main/java/org/zwobble/mammoth/docx/ReadResult.java b/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
index 7c672b2..31bbf2a 100644
--- a/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
+++ b/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
@@ -16,12 +16,14 @@ public class ReadResult {
public static ReadResult concat(Iterable<ReadResult> results) {
ImmutableList.Builder<DocumentElement> elements = ImmutableList.builder();
+ ImmutableList.Builder<DocumentElement> extra = ImmutableList.builder();
ImmutableList.Builder<Warning> warnings = ImmutableList.builder();
for (ReadResult result : results) {
elements.addAll(result.elements);
+ extra.addAll(result.extra);
warnings.addAll(result.warnings);
}
- return new ReadResult(elements.build(), warnings.build());
+ return new ReadResult(elements.build(), extra.build(), warnings.build());
}
public static <T> ReadResult map(
@@ -29,13 +31,10 @@ public class ReadResult {
ReadResult second,
BiFunction<T, List<DocumentElement>, DocumentElement> function)
{
- ImmutableList.Builder<Warning> warnings = ImmutableList.builder();
- warnings.addAll(first.getWarnings());
- warnings.addAll(second.warnings);
-
return new ReadResult(
list(function.apply(first.getValue(), second.elements)),
- warnings.build());
+ second.extra,
+ concat(first.getWarnings(), second.warnings));
}
public static ReadResult success(DocumentElement element) {
@@ -43,22 +42,46 @@ public class ReadResult {
}
public static ReadResult success(List<DocumentElement> elements) {
- return new ReadResult(elements, list());
+ return new ReadResult(elements, list(), list());
+ }
+
+ public static ReadResult emptyWithWarning(Warning warning) {
+ return new ReadResult(list(), list(), list(warning));
}
private final List<DocumentElement> elements;
+ private final List<DocumentElement> extra;
private final List<Warning> warnings;
- public ReadResult(List<DocumentElement> elements, List<Warning> warnings) {
+ public ReadResult(List<DocumentElement> elements, List<DocumentElement> extra, List<Warning> warnings) {
this.elements = elements;
+ this.extra = extra;
this.warnings = warnings;
}
public ReadResult map(Function<List<DocumentElement>, DocumentElement> function) {
- return new ReadResult(list(function.apply(elements)), warnings);
+ return new ReadResult(
+ list(function.apply(elements)),
+ extra,
+ warnings);
+ }
+
+ public ReadResult toExtra() {
+ return new ReadResult(list(), concat(extra, elements), warnings);
+ }
+
+ public ReadResult appendExtra() {
+ return new ReadResult(concat(elements, extra), list(), warnings);
}
public Result<List<DocumentElement>> toResult() {
return new Result<>(elements, warnings);
}
+
+ private static <T> List<T> concat(List<T> first, List<T> second) {
+ ImmutableList.Builder<T> builder = ImmutableList.builder();
+ builder.addAll(first);
+ builder.addAll(second);
+ return builder.build();
+ }
}