aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-16 22:34:10 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-16 22:34:10 +0000
commita549566d565f0fe0c62ba70ec58ef6c42858857c (patch)
tree50a433731b12494cae2097c713d2a17fdf438316 /src/main/java
parent95836987d6cef1a80035a685057567a4285c9f1a (diff)
Introduce Options object
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/mammoth/Mammoth.java24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java
index 1e14482..d0c4aff 100644
--- a/src/main/java/org/zwobble/mammoth/Mammoth.java
+++ b/src/main/java/org/zwobble/mammoth/Mammoth.java
@@ -15,19 +15,31 @@ import java.util.zip.ZipFile;
import static org.zwobble.mammoth.util.MammothLists.list;
public class Mammoth {
+ public static class Options {
+ // TODO: what default prefix?
+ public static final Options DEFAULT = new Options("document");
+
+ private final String idPrefix;
+
+ public Options(String idPrefix) {
+ this.idPrefix = idPrefix;
+ }
+
+ public Options idPrefix(String prefix) {
+ return new Options(prefix);
+ }
+ }
+
@FunctionalInterface
private interface BodyReaders {
BodyXmlReader forName(String name);
}
- // TODO: provide Options builder
public static Result<String> convertToHtml(File file) {
- // TODO: prefix
- String idPrefix = "document";
- return convertToHtml(file, idPrefix);
+ return convertToHtml(file, Options.DEFAULT);
}
- public static Result<String> convertToHtml(File file, String idPrefix) {
+ public static Result<String> convertToHtml(File file, Options options) {
try (DocxFile zipFile = new ZippedDocxFile(new ZipFile(file))) {
Styles styles = readStyles(zipFile);
Numbering numbering = Numbering.EMPTY;
@@ -44,7 +56,7 @@ public class Mammoth {
DocumentXmlReader reader = new DocumentXmlReader(bodyReaders.forName("document"), notes);
return reader.readElement(parseOfficeXml(zipFile, "word/document.xml"));
})
- .map(nodes -> DocumentConverter.convertToHtml(idPrefix, nodes))
+ .map(nodes -> DocumentConverter.convertToHtml(options.idPrefix, nodes))
.map(Html::stripEmpty)
.map(Html::collapse)
.map(Html::write);