aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-13 18:46:49 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-13 18:46:58 +0000
commit31072b124b9a922ea829ddc6987e2d4f680d85ae (patch)
tree14b0c61fe1839dfa8db47402a3a74af61628a826
parent1425e365a53b4a2ff3ecd12c754da453b7aa026f (diff)
Add style property to Run
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/Run.java9
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java7
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java10
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java4
4 files changed, 26 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/mammoth/documents/Run.java b/src/main/java/org/zwobble/mammoth/documents/Run.java
index 9a41730..45ab77c 100644
--- a/src/main/java/org/zwobble/mammoth/documents/Run.java
+++ b/src/main/java/org/zwobble/mammoth/documents/Run.java
@@ -1,18 +1,25 @@
package org.zwobble.mammoth.documents;
import java.util.List;
+import java.util.Optional;
public class Run implements DocumentElement, HasChildren {
private final List<DocumentElement> children;
+ private final Optional<Style> style;
- public Run(List<DocumentElement> children) {
+ public Run(Optional<Style> style, List<DocumentElement> children) {
this.children = children;
+ this.style = style;
}
public List<DocumentElement> getChildren() {
return children;
}
+ public Optional<Style> getStyle() {
+ return style;
+ }
+
@Override
public <T> T accept(DocumentElementVisitor<T> visitor) {
return visitor.visit(this);
diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
index a9e99f1..4c826de 100644
--- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
@@ -30,7 +30,7 @@ public class BodyXmlReader {
case "w:t":
return success(new Text(element.innerText()));
case "w:r":
- return readElements(element.children()).map(Run::new);
+ return readRun(element);
case "w:p":
return readParagraph(element);
@@ -43,6 +43,11 @@ public class BodyXmlReader {
}
}
+ private ReadResult readRun(XmlElement element) {
+ return readElements(element.children())
+ .map(children -> new Run(Optional.empty(), children));
+ }
+
public ReadResult readElements(Iterable<XmlNode> nodes) {
return ReadResult.concat(
transform(
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 6a0a392..4803d9d 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -143,6 +143,14 @@ public class BodyXmlTests {
hasNumbering(Optional.empty()));
}
+ @Test
+ public void runHasNoStyleIfItHasNoProperties() {
+ XmlElement element = runXml(list());
+ assertThat(
+ readSuccess(a(bodyReader), element),
+ hasStyle(Optional.empty()));
+ }
+
private static DocumentElement readSuccess(Maker<BodyXmlReader> reader, XmlElement element) {
Result<DocumentElement> result = read(reader, element);
assertThat(result.getWarnings(), deepEquals(list()));
@@ -201,7 +209,7 @@ public class BodyXmlTests {
}
private Run run(DocumentElement... children) {
- return new Run(asList(children));
+ return new Run(Optional.empty(), asList(children));
}
private Text text(String value) {
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 77a33ce..9d7703b 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java
@@ -10,6 +10,8 @@ import org.zwobble.mammoth.docx.DocumentXmlReader;
import org.zwobble.mammoth.xml.XmlElement;
import org.zwobble.mammoth.xml.XmlNodes;
+import java.util.Optional;
+
import static com.natpryce.makeiteasy.MakeItEasy.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.zwobble.mammoth.results.Result.success;
@@ -37,7 +39,7 @@ public class DocumentXmlTests {
document,
deepEquals(success(new Document(list(
make(a(PARAGRAPH, with(CHILDREN, list(
- new Run(list(
+ new Run(Optional.empty(), list(
new Text("Hello!"))))))))))));
}
}