aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-13 18:22:02 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-13 18:22:02 +0000
commitcf6808f01f8aff295548f2de62b86498e4996141 (patch)
treeb7e8e507ea837ffb56fc0e530387f0300f13b317 /src
parenta431972f98d98114dc9a5a65a3fbaf68967a8161 (diff)
Add warnings to results
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/Mammoth.java1
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/DocumentXmlReader.java2
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/NotesXmlReader.java2
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/ReadResult.java17
-rw-r--r--src/main/java/org/zwobble/mammoth/results/Result.java (renamed from src/main/java/org/zwobble/mammoth/Result.java)20
-rw-r--r--src/main/java/org/zwobble/mammoth/results/Warning.java4
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/MammothTests.java4
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java7
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java4
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/NotesXmlReaderTests.java4
10 files changed, 43 insertions, 22 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java
index 7282082..7780b77 100644
--- a/src/main/java/org/zwobble/mammoth/Mammoth.java
+++ b/src/main/java/org/zwobble/mammoth/Mammoth.java
@@ -3,6 +3,7 @@ package org.zwobble.mammoth;
import com.google.common.base.Joiner;
import org.zwobble.mammoth.documents.*;
import org.zwobble.mammoth.docx.*;
+import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.xml.XmlElement;
import java.io.File;
diff --git a/src/main/java/org/zwobble/mammoth/docx/DocumentXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/DocumentXmlReader.java
index 98570f2..2d7bec0 100644
--- a/src/main/java/org/zwobble/mammoth/docx/DocumentXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/DocumentXmlReader.java
@@ -1,6 +1,6 @@
package org.zwobble.mammoth.docx;
-import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.documents.Document;
import org.zwobble.mammoth.xml.XmlElement;
diff --git a/src/main/java/org/zwobble/mammoth/docx/NotesXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/NotesXmlReader.java
index 7cd0419..0838076 100644
--- a/src/main/java/org/zwobble/mammoth/docx/NotesXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/NotesXmlReader.java
@@ -1,6 +1,6 @@
package org.zwobble.mammoth.docx;
-import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.documents.Note;
import org.zwobble.mammoth.xml.XmlElement;
diff --git a/src/main/java/org/zwobble/mammoth/docx/ReadResult.java b/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
index f3eb7ce..9fd2e6c 100644
--- a/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
+++ b/src/main/java/org/zwobble/mammoth/docx/ReadResult.java
@@ -1,8 +1,9 @@
package org.zwobble.mammoth.docx;
import com.google.common.collect.ImmutableList;
-import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.documents.DocumentElement;
+import org.zwobble.mammoth.results.Warning;
import java.util.List;
import java.util.function.Function;
@@ -14,10 +15,12 @@ public class ReadResult {
public static ReadResult concat(Iterable<ReadResult> results) {
ImmutableList.Builder<DocumentElement> elements = ImmutableList.builder();
+ ImmutableList.Builder<Warning> warnings = ImmutableList.builder();
for (ReadResult result : results) {
elements.addAll(result.elements);
+ warnings.addAll(result.warnings);
}
- return new ReadResult(elements.build());
+ return new ReadResult(elements.build(), warnings.build());
}
public static ReadResult success(DocumentElement element) {
@@ -25,20 +28,22 @@ public class ReadResult {
}
public static ReadResult success(List<DocumentElement> elements) {
- return new ReadResult(elements);
+ return new ReadResult(elements, list());
}
private final List<DocumentElement> elements;
+ private final List<Warning> warnings;
- public ReadResult(List<DocumentElement> elements) {
+ public ReadResult(List<DocumentElement> elements, List<Warning> warnings) {
this.elements = elements;
+ this.warnings = warnings;
}
public ReadResult map(Function<List<DocumentElement>, DocumentElement> function) {
- return new ReadResult(list(function.apply(elements)));
+ return new ReadResult(list(function.apply(elements)), warnings);
}
public Result<List<DocumentElement>> toResult() {
- return new Result<>(elements);
+ return new Result<>(elements, warnings);
}
}
diff --git a/src/main/java/org/zwobble/mammoth/Result.java b/src/main/java/org/zwobble/mammoth/results/Result.java
index 0665364..846841e 100644
--- a/src/main/java/org/zwobble/mammoth/Result.java
+++ b/src/main/java/org/zwobble/mammoth/results/Result.java
@@ -1,34 +1,44 @@
-package org.zwobble.mammoth;
+package org.zwobble.mammoth.results;
import com.google.common.collect.ImmutableList;
import java.util.List;
import java.util.function.Function;
+import static org.zwobble.mammoth.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());
+ return new Result<>(elements.build(), warnings.build());
}
public static <T> Result<T> success(T value) {
- return new Result<>(value);
+ return new Result<>(value, list());
}
private final T value;
+ private final List<Warning> warnings;
- public Result(T value) {
+ 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));
+ return new Result<>(function.apply(value), warnings);
}
}
diff --git a/src/main/java/org/zwobble/mammoth/results/Warning.java b/src/main/java/org/zwobble/mammoth/results/Warning.java
new file mode 100644
index 0000000..c1b4e4b
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/results/Warning.java
@@ -0,0 +1,4 @@
+package org.zwobble.mammoth.results;
+
+public class Warning {
+}
diff --git a/src/test/java/org/zwobble/mammoth/tests/MammothTests.java b/src/test/java/org/zwobble/mammoth/tests/MammothTests.java
index 7966cee..2096cbd 100644
--- a/src/test/java/org/zwobble/mammoth/tests/MammothTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/MammothTests.java
@@ -2,12 +2,12 @@ package org.zwobble.mammoth.tests;
import org.junit.Test;
import org.zwobble.mammoth.Mammoth;
-import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.results.Result;
import java.io.File;
import static org.junit.Assert.assertThat;
-import static org.zwobble.mammoth.Result.success;
+import static org.zwobble.mammoth.results.Result.success;
import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
public class MammothTests {
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
index 3506e57..8eebec5 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -3,7 +3,7 @@ package org.zwobble.mammoth.tests.docx;
import com.natpryce.makeiteasy.Maker;
import org.hamcrest.Matcher;
import org.junit.Test;
-import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.documents.*;
import org.zwobble.mammoth.docx.BodyXmlReader;
import org.zwobble.mammoth.docx.Numbering;
@@ -140,8 +140,9 @@ public class BodyXmlTests {
}
private static DocumentElement readSuccess(Maker<BodyXmlReader> reader, XmlElement element) {
- // TODO: assert no warnings when they get added
- return read(reader, element).getValue();
+ Result<DocumentElement> result = read(reader, element);
+ assertThat(result.getWarnings(), deepEquals(list()));
+ return result.getValue();
}
private static Result<DocumentElement> read(Maker<BodyXmlReader> reader, XmlElement element) {
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java
index c98061e..77a33ce 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java
@@ -1,7 +1,7 @@
package org.zwobble.mammoth.tests.docx;
import org.junit.Test;
-import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.documents.Document;
import org.zwobble.mammoth.documents.Run;
import org.zwobble.mammoth.documents.Text;
@@ -12,7 +12,7 @@ import org.zwobble.mammoth.xml.XmlNodes;
import static com.natpryce.makeiteasy.MakeItEasy.*;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.zwobble.mammoth.Result.success;
+import static org.zwobble.mammoth.results.Result.success;
import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
import static org.zwobble.mammoth.tests.documents.DocumentElementMakers.CHILDREN;
import static org.zwobble.mammoth.tests.documents.DocumentElementMakers.PARAGRAPH;
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/NotesXmlReaderTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/NotesXmlReaderTests.java
index d18cbe3..ef8489a 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/NotesXmlReaderTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/NotesXmlReaderTests.java
@@ -1,7 +1,7 @@
package org.zwobble.mammoth.tests.docx;
import org.junit.Test;
-import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.documents.Note;
import org.zwobble.mammoth.docx.BodyXmlReader;
import org.zwobble.mammoth.docx.NotesXmlReader;
@@ -12,7 +12,7 @@ import java.util.List;
import static com.natpryce.makeiteasy.MakeItEasy.a;
import static com.natpryce.makeiteasy.MakeItEasy.make;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.zwobble.mammoth.Result.success;
+import static org.zwobble.mammoth.results.Result.success;
import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
import static org.zwobble.mammoth.tests.documents.DocumentElementMakers.PARAGRAPH;
import static org.zwobble.mammoth.util.MammothLists.list;