From 15127cb39b2014dd7b2218fafcba970045ddadef Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 13 Feb 2016 17:45:31 +0000 Subject: Read numbering from parapgraph properties --- src/main/java/org/zwobble/mammoth/Mammoth.java | 8 +++--- .../zwobble/mammoth/documents/NumberingLevel.java | 4 +++ .../org/zwobble/mammoth/docx/BodyXmlReader.java | 30 ++++++++++++++++------ .../java/org/zwobble/mammoth/docx/Numbering.java | 4 +++ .../mammoth/tests/DeepReflectionMatcher.java | 10 +++++--- .../mammoth/tests/docx/BodyXmlReaderMakers.java | 6 ++++- .../zwobble/mammoth/tests/docx/BodyXmlTests.java | 21 +++++++++++++++ 7 files changed, 66 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java index e834b3b..05080cf 100644 --- a/src/main/java/org/zwobble/mammoth/Mammoth.java +++ b/src/main/java/org/zwobble/mammoth/Mammoth.java @@ -2,10 +2,7 @@ package org.zwobble.mammoth; import com.google.common.base.Joiner; import org.zwobble.mammoth.documents.*; -import org.zwobble.mammoth.docx.BodyXmlReader; -import org.zwobble.mammoth.docx.DocumentXmlReader; -import org.zwobble.mammoth.docx.OfficeXml; -import org.zwobble.mammoth.docx.Styles; +import org.zwobble.mammoth.docx.*; import org.zwobble.mammoth.xml.XmlElement; import java.io.File; @@ -22,7 +19,8 @@ public class Mammoth { XmlElement documentXml = OfficeXml.parseXml(zipFile.getInputStream(entry)); Styles styles = Styles.EMPTY; - Document document = new DocumentXmlReader(new BodyXmlReader(styles)).readElement(documentXml); + Numbering numbering = Numbering.EMPTY; + Document document = new DocumentXmlReader(new BodyXmlReader(styles, numbering)).readElement(documentXml); return convertToHtml(document); } catch (IOException e) { throw new UnsupportedOperationException("Should return a result of failure"); diff --git a/src/main/java/org/zwobble/mammoth/documents/NumberingLevel.java b/src/main/java/org/zwobble/mammoth/documents/NumberingLevel.java index ca134b9..cdbb0c4 100644 --- a/src/main/java/org/zwobble/mammoth/documents/NumberingLevel.java +++ b/src/main/java/org/zwobble/mammoth/documents/NumberingLevel.java @@ -1,6 +1,10 @@ package org.zwobble.mammoth.documents; public class NumberingLevel { + public static NumberingLevel ordered(String levelIndex) { + return new NumberingLevel(levelIndex, true); + } + private final String levelIndex; private final boolean isOrdered; diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java index 73bab7e..42cee65 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -14,9 +14,11 @@ import static org.zwobble.mammoth.util.MammothLists.list; public class BodyXmlReader { private final Styles styles; + private final Numbering numbering; - public BodyXmlReader(Styles styles) { + public BodyXmlReader(Styles styles, Numbering numbering) { this.styles = styles; + this.numbering = numbering; } public List readElement(XmlElement element) { @@ -46,16 +48,28 @@ public class BodyXmlReader { } private Paragraph readParagraph(XmlElement element) { - return new Paragraph(readParagraphStyle(element), readNumbering(element), readElements(element.children())); + XmlElementLike properties = element.findChildOrEmpty("w:pPr"); + return new Paragraph( + readParagraphStyle(properties), + readNumbering(properties), + readElements(element.children())); } - private Optional