summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/InternalDocumentConverter.java37
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/conversion/RawText.java35
2 files changed, 40 insertions, 32 deletions
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<String> extractRawText(Optional<Path> path, Archive zipFile) {
return readDocument(path, zipFile)
- .map(InternalDocumentConverter::extractRawTextOfChildren);
+ .map(RawText::extractRawText);
}
private static <T> T withDocxFile(File file, Function<Archive, T> 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<DocumentElement> 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<DocumentElement> 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<DocumentElement> 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<DocumentElement> 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;
+ });
+ }
+}