aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/Mammoth.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-24 20:57:33 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-24 20:57:33 +0000
commitd4ac19bac1d0e1315d129c39de56121def95007b (patch)
tree57b533fe35eb7e745c3a7676f3292e8392f51345 /src/main/java/org/zwobble/mammoth/Mammoth.java
parentb693b50ba55ab80cb7df90f150bf6585ba9fdc09 (diff)
Rename Mammoth to DocumentConverter
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/Mammoth.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/Mammoth.java108
1 files changed, 0 insertions, 108 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java
deleted file mode 100644
index e979afc..0000000
--- a/src/main/java/org/zwobble/mammoth/Mammoth.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.zwobble.mammoth;
-
-import com.google.common.base.Function;
-import com.google.common.collect.Iterables;
-import org.zwobble.mammoth.internal.DocumentToHtml;
-import org.zwobble.mammoth.internal.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.docx.DocxFile;
-import org.zwobble.mammoth.internal.docx.InMemoryDocxFile;
-import org.zwobble.mammoth.internal.docx.ZippedDocxFile;
-import org.zwobble.mammoth.internal.html.Html;
-import org.zwobble.mammoth.internal.styles.DefaultStyles;
-import org.zwobble.mammoth.internal.util.Casts;
-import org.zwobble.mammoth.results.Result;
-
-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.zip.ZipFile;
-
-import static org.zwobble.mammoth.internal.docx.DocumentReader.readDocument;
-import static org.zwobble.mammoth.internal.util.MammothLists.list;
-
-public class Mammoth {
- private final DocumentToHtmlOptions options;
-
- public Mammoth() {
- this(DocumentToHtmlOptions.DEFAULT.addStyleMap(DefaultStyles.DEFAULT_STYLE_MAP));
- }
-
- private Mammoth(DocumentToHtmlOptions options) {
- this.options = options;
- }
-
- public Mammoth idPrefix(String idPrefix) {
- return new Mammoth(options.idPrefix(idPrefix));
- }
-
- public Mammoth preserveEmptyParagraphs() {
- return new Mammoth(options.preserveEmptyParagraphs());
- }
-
- public Mammoth addStyleMap(String styleMap) {
- return new Mammoth(options.addStyleMap(styleMap));
- }
-
- public Result<String> convertToHtml(InputStream stream) throws IOException {
- return withDocxFile(stream, zipFile ->
- convertToHtml(Optional.empty(), zipFile));
- }
-
- public Result<String> convertToHtml(File file) throws IOException {
- return withDocxFile(file, zipFile ->
- convertToHtml(Optional.of(file.toPath()), zipFile));
- }
-
- private Result<String> convertToHtml(Optional<Path> path, DocxFile zipFile) {
- return readDocument(path, zipFile)
- .flatMap(nodes -> DocumentToHtml.convertToHtml(nodes, options))
- .map(Html::stripEmpty)
- .map(Html::collapse)
- .map(Html::write);
- }
-
- public static Result<String> extractRawText(File file) throws IOException {
- return withDocxFile(file, zipFile ->
- readDocument(Optional.of(file.toPath()), zipFile)
- .map(Mammoth::extractRawTextOfChildren));
- }
-
- private static <T> T withDocxFile(File file, Function<DocxFile, T> function) throws IOException {
- try (DocxFile zipFile = new ZippedDocxFile(new ZipFile(file))) {
- return function.apply(zipFile);
- }
- }
-
- private static <T> T withDocxFile(InputStream stream, Function<DocxFile, T> function) throws IOException {
- try (DocxFile zipFile = InMemoryDocxFile.fromStream(stream)) {
- return function.apply(zipFile);
- }
- }
-
- private static String extractRawTextOfChildren(HasChildren parent) {
- return extractRawText(parent.getChildren());
- }
-
- private static String extractRawText(List<DocumentElement> nodes) {
- return String.join("", Iterables.transform(nodes, node -> extractRawText(node)));
- }
-
- private static String extractRawText(DocumentElement node) {
- return Casts.tryCast(Text.class, node)
- .map(Text::getValue)
- .orElseGet(() -> {
- List<DocumentElement> children = Casts.tryCast(HasChildren.class, node)
- .map(HasChildren::getChildren)
- .orElse(list());
- String suffix = node instanceof Paragraph ? "\n\n" : "";
- return extractRawText(children) + suffix;
- });
- }
-}