summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2019-03-17 18:41:35 +0000
committerMichael Williamson <mike@zwobble.org>2019-03-17 18:41:35 +0000
commita9efb5601c128b83f5f759a837fd989e108dc61f (patch)
tree0f780b689a29a9f6f981a82e238b33f270711716 /src/main/java
parent65bcf3a7c50b1ec7b57d4974ad377ed66d6c98c8 (diff)
Create object for abstract nums
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java14
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java8
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) {