diff options
Diffstat (limited to 'src/main/java/org')
4 files changed, 9 insertions, 17 deletions
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 bf7321e..2770984 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java @@ -17,7 +17,6 @@ import java.util.function.Function; import static com.google.common.collect.Iterables.filter; import static org.zwobble.mammoth.internal.docx.ReadResult.EMPTY_SUCCESS; import static org.zwobble.mammoth.internal.docx.ReadResult.success; -import static org.zwobble.mammoth.internal.util.MammothIterables.lazyMap; import static org.zwobble.mammoth.internal.util.MammothLists.list; import static org.zwobble.mammoth.internal.util.MammothStrings.trimLeft; @@ -172,10 +171,7 @@ public class BodyXmlReader { } public ReadResult readElements(Iterable<XmlNode> nodes) { - return ReadResult.flatten( - lazyMap( - filter(nodes, XmlElement.class), - this::readElement)); + return ReadResult.flatMap(filter(nodes, XmlElement.class), this::readElement); } private ReadResult readParagraph(XmlElement element) { @@ -286,7 +282,7 @@ public class BodyXmlReader { } private ReadResult readBlips(XmlElementList blips, Optional<String> altText) { - return ReadResult.flatten(lazyMap(blips, blip -> readBlip(blip, altText))); + return ReadResult.flatMap(blips, blip -> readBlip(blip, altText)); } private ReadResult readBlip(XmlElement blip, Optional<String> altText) { diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/NotesXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/NotesXmlReader.java index 9772563..235535e 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/NotesXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/NotesXmlReader.java @@ -1,14 +1,13 @@ package org.zwobble.mammoth.internal.docx; +import org.zwobble.mammoth.internal.documents.Note; import org.zwobble.mammoth.internal.documents.NoteType; import org.zwobble.mammoth.internal.results.InternalResult; -import org.zwobble.mammoth.internal.documents.Note; import org.zwobble.mammoth.internal.xml.XmlElement; import java.util.List; import static com.google.common.collect.Iterables.filter; -import static org.zwobble.mammoth.internal.util.MammothIterables.lazyMap; public class NotesXmlReader { public static NotesXmlReader footnote(BodyXmlReader bodyReader) { @@ -31,7 +30,7 @@ public class NotesXmlReader { public InternalResult<List<Note>> readElement(XmlElement element) { Iterable<XmlElement> elements = filter(element.findChildren("w:" + tagName), this::isNoteElement); - return InternalResult.flatten(lazyMap(elements, this::readNoteElement)); + return InternalResult.flatMap(elements, this::readNoteElement); } private boolean isNoteElement(XmlElement element) { diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java b/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java index 1045054..d61f323 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java @@ -10,15 +10,13 @@ import java.util.function.Function; import static org.zwobble.mammoth.internal.util.MammothIterables.lazyConcat; import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFlatMap; -import static org.zwobble.mammoth.internal.util.MammothLists.eagerFlatMap; -import static org.zwobble.mammoth.internal.util.MammothLists.list; -import static org.zwobble.mammoth.internal.util.MammothLists.toList; +import static org.zwobble.mammoth.internal.util.MammothLists.*; public class ReadResult { public static final ReadResult EMPTY_SUCCESS = success(list()); - public static ReadResult flatten(Iterable<ReadResult> results) { - results = toList(results); + public static <T> ReadResult flatMap(Iterable<T> iterable, Function<T, ReadResult> function) { + List<ReadResult> results = eagerMap(iterable, function); return new ReadResult( eagerFlatMap(results, result -> result.elements), eagerFlatMap(results, result -> result.extra), diff --git a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java index 650446f..445d684 100644 --- a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java @@ -14,11 +14,10 @@ import static org.zwobble.mammoth.internal.util.MammothIterables.lazyConcat; import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFlatMap; import static org.zwobble.mammoth.internal.util.MammothLists.eagerMap; import static org.zwobble.mammoth.internal.util.MammothLists.list; -import static org.zwobble.mammoth.internal.util.MammothLists.toList; public class InternalResult<T> { - public static <T> InternalResult<List<T>> flatten(Iterable<InternalResult<T>> results) { - results = toList(results); + public static <T, R> InternalResult<List<R>> flatMap(Iterable<T> iterable, Function<T, InternalResult<R>> function) { + List<InternalResult<R>> results = eagerMap(iterable, function); return new InternalResult<>( eagerMap(results, result -> result.value), lazyFlatMap(results, result -> result.warnings)); |
