From 3287e71ce896193eaf2bba8e6da9bf1827587ab3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 1 Aug 2021 11:17:17 +0100 Subject: Extract RawText class --- .../internal/InternalDocumentConverter.java | 37 +++------------------- .../mammoth/internal/conversion/RawText.java | 35 ++++++++++++++++++++ 2 files changed, 40 insertions(+), 32 deletions(-) create mode 100644 src/main/java/org/zwobble/mammoth/internal/conversion/RawText.java diff --git a/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java b/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java index 2c108f2..8ff1e95 100644 --- a/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java +++ b/src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java @@ -1,15 +1,12 @@ package org.zwobble.mammoth.internal; -import org.zwobble.mammoth.internal.conversion.DocumentToHtml; -import org.zwobble.mammoth.internal.conversion.DocumentToHtmlOptions; -import org.zwobble.mammoth.internal.documents.DocumentElement; -import org.zwobble.mammoth.internal.documents.HasChildren; -import org.zwobble.mammoth.internal.documents.Paragraph; -import org.zwobble.mammoth.internal.documents.Text; import org.zwobble.mammoth.internal.archives.Archive; -import org.zwobble.mammoth.internal.docx.EmbeddedStyleMap; import org.zwobble.mammoth.internal.archives.InMemoryArchive; import org.zwobble.mammoth.internal.archives.ZippedArchive; +import org.zwobble.mammoth.internal.conversion.DocumentToHtml; +import org.zwobble.mammoth.internal.conversion.DocumentToHtmlOptions; +import org.zwobble.mammoth.internal.conversion.RawText; +import org.zwobble.mammoth.internal.docx.EmbeddedStyleMap; import org.zwobble.mammoth.internal.html.Html; import org.zwobble.mammoth.internal.results.InternalResult; import org.zwobble.mammoth.internal.styles.StyleMap; @@ -20,14 +17,10 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.file.Path; -import java.util.List; import java.util.Optional; import java.util.function.Function; import static org.zwobble.mammoth.internal.docx.DocumentReader.readDocument; -import static org.zwobble.mammoth.internal.util.Casts.tryCast; -import static org.zwobble.mammoth.internal.util.Iterables.lazyMap; -import static org.zwobble.mammoth.internal.util.Lists.list; public class InternalDocumentConverter { private final DocumentToHtmlOptions options; @@ -77,7 +70,7 @@ public class InternalDocumentConverter { private InternalResult extractRawText(Optional path, Archive zipFile) { return readDocument(path, zipFile) - .map(InternalDocumentConverter::extractRawTextOfChildren); + .map(RawText::extractRawText); } private static T withDocxFile(File file, Function function) throws IOException { @@ -91,24 +84,4 @@ public class InternalDocumentConverter { return function.apply(zipFile); } } - - private static String extractRawTextOfChildren(HasChildren parent) { - return extractRawText(parent.getChildren()); - } - - private static String extractRawText(List nodes) { - return String.join("", lazyMap(nodes, node -> extractRawText(node))); - } - - private static String extractRawText(DocumentElement node) { - return tryCast(Text.class, node) - .map(Text::getValue) - .orElseGet(() -> { - List children = tryCast(HasChildren.class, node) - .map(HasChildren::getChildren) - .orElse(list()); - String suffix = tryCast(Paragraph.class, node).map(paragraph -> "\n\n").orElse(""); - return extractRawText(children) + suffix; - }); - } } diff --git a/src/main/java/org/zwobble/mammoth/internal/conversion/RawText.java b/src/main/java/org/zwobble/mammoth/internal/conversion/RawText.java new file mode 100644 index 0000000..0834874 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/conversion/RawText.java @@ -0,0 +1,35 @@ +package org.zwobble.mammoth.internal.conversion; + +import org.zwobble.mammoth.internal.documents.*; + +import java.util.List; + +import static org.zwobble.mammoth.internal.util.Casts.tryCast; +import static org.zwobble.mammoth.internal.util.Iterables.lazyMap; +import static org.zwobble.mammoth.internal.util.Lists.list; + +public class RawText { + public static String extractRawText(Document document) { + return extractRawTextOfChildren(document); + } + + private static String extractRawTextOfChildren(HasChildren parent) { + return extractRawText(parent.getChildren()); + } + + private static String extractRawText(List nodes) { + return String.join("", lazyMap(nodes, node -> extractRawText(node))); + } + + public static String extractRawText(DocumentElement node) { + return tryCast(Text.class, node) + .map(Text::getValue) + .orElseGet(() -> { + List children = tryCast(HasChildren.class, node) + .map(HasChildren::getChildren) + .orElse(list()); + String suffix = tryCast(Paragraph.class, node).map(paragraph -> "\n\n").orElse(""); + return extractRawText(children) + suffix; + }); + } +} -- cgit v1.2.3