diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-28 17:02:41 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-28 17:02:41 +0000 |
| commit | 709cadaa82093ff8cde6239ccdeebee6894d55ea (patch) | |
| tree | de848aaa2da0f18de3ab34d1f15154a3dcdbf156 /src | |
| parent | 4eb50a3705cdc3be0ea31acd1a78830fefcba124 (diff) | |
Parse column break type
Diffstat (limited to 'src')
3 files changed, 24 insertions, 9 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Break.java b/src/main/java/org/zwobble/mammoth/internal/documents/Break.java index 9076d21..0764221 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/Break.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/Break.java @@ -3,11 +3,13 @@ package org.zwobble.mammoth.internal.documents; public class Break implements DocumentElement { public enum Type { LINE, - PAGE + PAGE, + COLUMN } public static final Break LINE_BREAK = new Break(Type.LINE); public static final Break PAGE_BREAK = new Break(Type.PAGE); + public static final Break COLUMN_BREAK = new Break(Type.COLUMN); private final Type type; diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java index 89d739a..ec82930 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java @@ -242,12 +242,15 @@ public class BodyXmlReader { private ReadResult readBreak(XmlElement element) { String breakType = element.getAttributeOrNone("w:type").orElse("textWrapping"); - if (breakType.equals("textWrapping")) { - return success(Break.LINE_BREAK); - } else if (breakType.equals("page")) { - return success(Break.PAGE_BREAK); - } else { - return ReadResult.emptyWithWarning("Unsupported break type: " + breakType); + switch (breakType) { + case "textWrapping": + return success(Break.LINE_BREAK); + case "page": + return success(Break.PAGE_BREAK); + case "column": + return success(Break.COLUMN_BREAK); + default: + return ReadResult.emptyWithWarning("Unsupported break type: " + breakType); } } 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 4c6f46a..3f3dca8 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -377,12 +377,22 @@ public class BodyXmlTests { } @Test - public void warningOnBreaksThatArentLineBreaks() { + public void brWithColumnTypeIsReadAsColumnBreak() { XmlElement element = element("w:br", map("w:type", "column")); assertThat( + readSuccess(bodyReader(), element), + equalTo(Break.COLUMN_BREAK) + ); + } + + @Test + public void warningOnBreaksThatArentRecognised() { + XmlElement element = element("w:br", map("w:type", "unknownBreakType")); + + assertThat( readAll(bodyReader(), element), - isInternalResult(equalTo(list()), list("Unsupported break type: column"))); + isInternalResult(equalTo(list()), list("Unsupported break type: unknownBreakType"))); } @Test |
