diff options
4 files changed, 25 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/documents/Paragraph.java b/src/main/java/org/zwobble/mammoth/documents/Paragraph.java index 901eb81..8490d33 100644 --- a/src/main/java/org/zwobble/mammoth/documents/Paragraph.java +++ b/src/main/java/org/zwobble/mammoth/documents/Paragraph.java @@ -5,10 +5,12 @@ import java.util.Optional; public class Paragraph implements DocumentElement, HasChildren { private final Optional<Style> style; + private final Optional<NumberingLevel> numbering; private final List<DocumentElement> children; - public Paragraph(Optional<Style> style, List<DocumentElement> children) { + public Paragraph(Optional<Style> style, Optional<NumberingLevel> numbering, List<DocumentElement> children) { this.style = style; + this.numbering = numbering; this.children = children; } @@ -16,6 +18,10 @@ public class Paragraph implements DocumentElement, HasChildren { return style; } + public Optional<NumberingLevel> getNumbering() { + return numbering; + } + public List<DocumentElement> getChildren() { return children; } diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java index 33fc5b0..73bab7e 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -46,7 +46,7 @@ public class BodyXmlReader { } private Paragraph readParagraph(XmlElement element) { - return new Paragraph(readParagraphStyle(element), readElements(element.children())); + return new Paragraph(readParagraphStyle(element), readNumbering(element), readElements(element.children())); } private Optional<Style> readParagraphStyle(XmlElement paragraph) { @@ -54,4 +54,8 @@ public class BodyXmlReader { return properties.findChildOrEmpty("w:pStyle").getAttributeOrNone("w:val") .map(styleId -> styles.findParagraphStyleById(styleId).orElse(new Style(styleId, Optional.empty()))); } + + private Optional<NumberingLevel> readNumbering(XmlElement element) { + return Optional.empty(); + } } diff --git a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java index deb2500..d5a23fb 100644 --- a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java +++ b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java @@ -18,5 +18,6 @@ public class DocumentElementMakers { public static final Instantiator<Paragraph> PARAGRAPH = propertyLookup -> new Paragraph( Optional.empty(), + Optional.empty(), propertyLookup.valueOf(CHILDREN, list())); } 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 e6e38f8..d1dac9d 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -85,6 +85,14 @@ public class BodyXmlTests { hasStyle(Optional.of(new Style("Heading1", Optional.empty())))); } + @Test + public void paragraphHasNoNumberingIfItHasNoNumberingProperties() { + XmlElement element = paragraphXml(); + assertThat( + read(a(bodyReader), element), + hasNumbering(Optional.empty())); + } + private static DocumentElement read(Maker<BodyXmlReader> reader, XmlElement element) { return reader.make().readElement(element).get(0); } @@ -121,6 +129,10 @@ public class BodyXmlTests { return hasProperty("style", deepEquals(expected)); } + private Matcher<? super DocumentElement> hasNumbering(Optional<NumberingLevel> expected) { + return hasProperty("numbering", deepEquals(expected)); + } + private Run run(DocumentElement... children) { return new Run(asList(children)); } |
