From a9efb5601c128b83f5f759a837fd989e108dc61f Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 17 Mar 2019 18:41:35 +0000 Subject: Create object for abstract nums --- .../java/org/zwobble/mammoth/internal/docx/Numbering.java | 14 +++++++++++--- .../org/zwobble/mammoth/internal/docx/NumberingXml.java | 8 ++++---- 2 files changed, 15 insertions(+), 7 deletions(-) (limited to 'src/main') 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 levels; + + public AbstractNum(Map levels) { + this.levels = levels; + } + } + public static class Num { private final Optional abstractNumId; @@ -19,11 +27,11 @@ public class Numbering { public static final Numbering EMPTY = new Numbering(map(), map()); - private final Map> abstractNums; + private final Map abstractNums; private final Map nums; public Numbering( - Map> abstractNums, + Map abstractNums, Map 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> abstractNums = readAbstractNums(element.findChildren("w:abstractNum")); + Map abstractNums = readAbstractNums(element.findChildren("w:abstractNum")); Map nums = readNums(element.findChildren("w:num")); return new Numbering(abstractNums, nums); } - private static Map> readAbstractNums(XmlElementList children) { + private static Map readAbstractNums(XmlElementList children) { return toMap(children, NumberingXml::readAbstractNum); } - private static Map.Entry> readAbstractNum(XmlElement element) { + private static Map.Entry 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 readAbstractNumLevels(XmlElement element) { -- cgit v1.2.3