diff options
| author | Michael Williamson <mike@zwobble.org> | 2019-03-17 18:41:35 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2019-03-17 18:41:35 +0000 |
| commit | a9efb5601c128b83f5f759a837fd989e108dc61f (patch) | |
| tree | 0f780b689a29a9f6f981a82e238b33f270711716 /src/main/java/org | |
| parent | 65bcf3a7c50b1ec7b57d4974ad377ed66d6c98c8 (diff) | |
Create object for abstract nums
Diffstat (limited to 'src/main/java/org')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java | 14 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java | 8 |
2 files changed, 15 insertions, 7 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java b/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java index 2680cfa..0191763 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java @@ -9,6 +9,14 @@ import static org.zwobble.mammoth.internal.util.Maps.lookup; import static org.zwobble.mammoth.internal.util.Maps.map; public class Numbering { + public static class AbstractNum { + private final Map<String, NumberingLevel> levels; + + public AbstractNum(Map<String, NumberingLevel> levels) { + this.levels = levels; + } + } + public static class Num { private final Optional<String> abstractNumId; @@ -19,11 +27,11 @@ public class Numbering { public static final Numbering EMPTY = new Numbering(map(), map()); - private final Map<String, Map<String, NumberingLevel>> abstractNums; + private final Map<String, AbstractNum> abstractNums; private final Map<String, Num> nums; public Numbering( - Map<String, Map<String, NumberingLevel>> abstractNums, + Map<String, AbstractNum> abstractNums, Map<String, Num> nums ) { this.abstractNums = abstractNums; @@ -34,6 +42,6 @@ public class Numbering { return lookup(nums, numId) .flatMap(num -> num.abstractNumId) .flatMap(abstractNumId -> lookup(this.abstractNums, abstractNumId)) - .flatMap(levels -> lookup(levels, level)); + .flatMap(abstractNum -> lookup(abstractNum.levels, level)); } } diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java b/src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java index 33e5e27..0ab12b4 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java @@ -12,19 +12,19 @@ import static org.zwobble.mammoth.internal.util.Maps.toMap; public class NumberingXml { public static Numbering readNumberingXmlElement(XmlElement element) { - Map<String, Map<String, NumberingLevel>> abstractNums = readAbstractNums(element.findChildren("w:abstractNum")); + Map<String, Numbering.AbstractNum> abstractNums = readAbstractNums(element.findChildren("w:abstractNum")); Map<String, Numbering.Num> nums = readNums(element.findChildren("w:num")); return new Numbering(abstractNums, nums); } - private static Map<String, Map<String, NumberingLevel>> readAbstractNums(XmlElementList children) { + private static Map<String, Numbering.AbstractNum> readAbstractNums(XmlElementList children) { return toMap(children, NumberingXml::readAbstractNum); } - private static Map.Entry<String, Map<String, NumberingLevel>> readAbstractNum(XmlElement element) { + private static Map.Entry<String, Numbering.AbstractNum> readAbstractNum(XmlElement element) { // TODO: in python-mammoth, we allow None here. Check whether that's actually possible or not String abstractNumId = element.getAttribute("w:abstractNumId"); - return entry(abstractNumId, readAbstractNumLevels(element)); + return entry(abstractNumId, new Numbering.AbstractNum(readAbstractNumLevels(element))); } private static Map<String, NumberingLevel> readAbstractNumLevels(XmlElement element) { |
