diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-13 18:46:49 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-13 18:46:58 +0000 |
| commit | 31072b124b9a922ea829ddc6987e2d4f680d85ae (patch) | |
| tree | 14b0c61fe1839dfa8db47402a3a74af61628a826 | |
| parent | 1425e365a53b4a2ff3ecd12c754da453b7aa026f (diff) | |
Add style property to Run
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!")))))))))))); } } |
