summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java17
1 files changed, 12 insertions, 5 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 8d29393..764bb87 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java
@@ -1,10 +1,11 @@
package org.zwobble.mammoth.internal.docx;
import org.zwobble.mammoth.internal.documents.NumberingLevel;
+import org.zwobble.mammoth.internal.util.Iterables;
+import org.zwobble.mammoth.internal.util.Maps;
import java.util.Map;
import java.util.Optional;
-import java.util.stream.Collectors;
import static org.zwobble.mammoth.internal.util.Maps.lookup;
import static org.zwobble.mammoth.internal.util.Maps.map;
@@ -66,10 +67,16 @@ public class Numbering {
Styles styles
) {
this.abstractNums = abstractNums;
- this.levelsByParagraphStyleId = abstractNums.values().stream()
- .flatMap(abstractNum -> abstractNum.levels.values().stream())
- .filter(level -> level.paragraphStyleId.isPresent())
- .collect(Collectors.toMap(level -> level.paragraphStyleId.get(), level -> level));
+ this.levelsByParagraphStyleId = Maps.toMapWithKey(
+ Iterables.lazyFilter(
+ Iterables.lazyFlatMap(
+ abstractNums.values(),
+ abstractNum -> abstractNum.levels.values()
+ ),
+ level -> level.paragraphStyleId.isPresent()
+ ),
+ level -> level.paragraphStyleId.get()
+ );
this.nums = nums;
this.styles = styles;
}