aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2018-01-28 12:08:00 +0000
committerMichael Williamson <mike@zwobble.org>2018-01-28 12:08:00 +0000
commitf9c7505139d9287e1a5747ebca754797520ff93f (patch)
treee8b73540e11de6988af96a80cf9457759acf531b /src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
parentdef58df60701d5575d0fa8afddb6cd27c875fb30 (diff)
Adjust style for easier transformation
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java54
1 files changed, 35 insertions, 19 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
index a616aac..f8060a9 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
@@ -21,11 +21,6 @@ import static org.zwobble.mammoth.internal.util.Lists.*;
import static org.zwobble.mammoth.internal.util.Strings.trimLeft;
public class DocumentReader {
- @FunctionalInterface
- private interface PartWithBodyReader {
- <T> T readPart(String name, BiFunction<XmlElement, BodyXmlReader, T> read, Optional<T> defaultValue);
- }
-
public static InternalResult<Document> readDocument(Optional<Path> path, Archive zipFile) {
PartPaths partPaths = findPartPaths(zipFile);
@@ -33,20 +28,7 @@ public class DocumentReader {
Numbering numbering = readNumbering(zipFile, partPaths);
ContentTypes contentTypes = readContentTypes(zipFile);
FileReader fileReader = new PathRelativeFileReader(path);
- PartWithBodyReader partReader = new PartWithBodyReader() {
- @Override
- public <T> T readPart(String name, BiFunction<XmlElement, BodyXmlReader, T> readPart, Optional<T> defaultValue) {
- Relationships relationships = readRelationships(zipFile, findRelationshipsPathFor(name));
- BodyXmlReader bodyReader = new BodyXmlReader(styles, numbering, relationships, contentTypes, zipFile, fileReader);
- if (defaultValue.isPresent()) {
- return tryParseOfficeXml(zipFile, name)
- .map(root -> readPart.apply(root, bodyReader))
- .orElse(defaultValue.get());
- } else {
- return readPart.apply(parseOfficeXml(zipFile, name), bodyReader);
- }
- }
- };
+ PartWithBodyReader partReader = new PartWithBodyReader(zipFile, contentTypes, fileReader, numbering, styles);
return InternalResult.flatMap(
readNotes(partReader, partPaths),
readComments(partReader, partPaths),
@@ -58,6 +40,40 @@ public class DocumentReader {
);
}
+ private static class PartWithBodyReader {
+ private final Archive zipFile;
+ private final ContentTypes contentTypes;
+ private final FileReader fileReader;
+ private final Numbering numbering;
+ private final Styles styles;
+
+ public PartWithBodyReader(
+ Archive zipFile,
+ ContentTypes contentTypes,
+ FileReader fileReader,
+ Numbering numbering,
+ Styles styles
+ ) {
+ this.zipFile = zipFile;
+ this.contentTypes = contentTypes;
+ this.fileReader = fileReader;
+ this.numbering = numbering;
+ this.styles = styles;
+ }
+
+ <T> T readPart(String name, BiFunction<XmlElement, BodyXmlReader, T> readPart, Optional<T> defaultValue) {
+ Relationships relationships = readRelationships(zipFile, findRelationshipsPathFor(name));
+ BodyXmlReader bodyReader = new BodyXmlReader(styles, numbering, relationships, contentTypes, zipFile, fileReader);
+ if (defaultValue.isPresent()) {
+ return tryParseOfficeXml(zipFile, name)
+ .map(root -> readPart.apply(root, bodyReader))
+ .orElse(defaultValue.get());
+ } else {
+ return readPart.apply(parseOfficeXml(zipFile, name), bodyReader);
+ }
+ }
+ }
+
public static class PartPaths {
private final String mainDocument;
private final String comments;