diff options
| author | Michael Williamson <mike@zwobble.org> | 2018-01-28 12:08:00 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2018-01-28 12:08:00 +0000 |
| commit | f9c7505139d9287e1a5747ebca754797520ff93f (patch) | |
| tree | e8b73540e11de6988af96a80cf9457759acf531b /src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java | |
| parent | def58df60701d5575d0fa8afddb6cd27c875fb30 (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.java | 54 |
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; |
