aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-11-13 20:11:50 +0000
committerMichael Williamson <mike@zwobble.org>2016-11-13 20:11:50 +0000
commit6f87042576150fd65db52144417d8a788f2441f4 (patch)
tree87282928b2f0047363df867bc73a66d7929f662d /src/main/java/org/zwobble/mammoth/internal/docx
parent38e6e7e0a0c214a17b251cea8c767655dfaecc67 (diff)
Move archive classes into their own package
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/Archive.java10
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/Archives.java11
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java2
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java1
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java2
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/InMemoryArchive.java69
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/MutableArchive.java6
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/ZippedArchive.java35
8 files changed, 5 insertions, 131 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Archive.java b/src/main/java/org/zwobble/mammoth/internal/docx/Archive.java
deleted file mode 100644
index 8354662..0000000
--- a/src/main/java/org/zwobble/mammoth/internal/docx/Archive.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.zwobble.mammoth.internal.docx;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Optional;
-
-public interface Archive extends Closeable {
- Optional<InputStream> tryGetInputStream(String name) throws IOException;
-}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Archives.java b/src/main/java/org/zwobble/mammoth/internal/docx/Archives.java
deleted file mode 100644
index 519520a..0000000
--- a/src/main/java/org/zwobble/mammoth/internal/docx/Archives.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.zwobble.mammoth.internal.docx;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-public class Archives {
- public static InputStream getInputStream(Archive file, String name) throws IOException {
- return file.tryGetInputStream(name)
- .orElseThrow(() -> new IOException("Missing entry in file: " + name));
- }
-}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
index ec2d3c1..ba09182 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
@@ -1,5 +1,7 @@
package org.zwobble.mammoth.internal.docx;
+import org.zwobble.mammoth.internal.archives.Archive;
+import org.zwobble.mammoth.internal.archives.Archives;
import org.zwobble.mammoth.internal.documents.*;
import org.zwobble.mammoth.internal.results.InternalResult;
import org.zwobble.mammoth.internal.util.Casts;
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 afb7b74..4ef9c37 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java
@@ -1,5 +1,6 @@
package org.zwobble.mammoth.internal.docx;
+import org.zwobble.mammoth.internal.archives.Archive;
import org.zwobble.mammoth.internal.documents.Comment;
import org.zwobble.mammoth.internal.documents.Document;
import org.zwobble.mammoth.internal.documents.Notes;
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java b/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java
index d268bf0..b01c0f5 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/EmbeddedStyleMap.java
@@ -1,5 +1,7 @@
package org.zwobble.mammoth.internal.docx;
+import org.zwobble.mammoth.internal.archives.Archive;
+import org.zwobble.mammoth.internal.archives.MutableArchive;
import org.zwobble.mammoth.internal.util.Streams;
import java.io.*;
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryArchive.java b/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryArchive.java
deleted file mode 100644
index 6d164f4..0000000
--- a/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryArchive.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.zwobble.mammoth.internal.docx;
-
-import org.zwobble.mammoth.internal.util.PassThroughException;
-import org.zwobble.mammoth.internal.util.Streams;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-
-import static org.zwobble.mammoth.internal.util.Maps.eagerMapValues;
-import static org.zwobble.mammoth.internal.util.Maps.lookup;
-
-public class InMemoryArchive implements MutableArchive {
- public static InMemoryArchive fromStream(InputStream stream) throws IOException {
- ZipInputStream zipStream = new ZipInputStream(stream);
- Map<String, byte[]> entries = new HashMap<>();
- ZipEntry entry;
- while ((entry = zipStream.getNextEntry()) != null) {
- entries.put(entry.getName(), Streams.toByteArray(zipStream));
- }
- return new InMemoryArchive(entries);
- }
-
- public static InMemoryArchive fromStrings(Map<String, String> entries) {
- return new InMemoryArchive(eagerMapValues(entries, value -> value.getBytes(StandardCharsets.UTF_8)));
- }
-
- private final Map<String, byte[]> entries;
-
- public InMemoryArchive(Map<String, byte[]> entries) {
- this.entries = entries;
- }
-
- @Override
- public Optional<InputStream> tryGetInputStream(String name) throws IOException {
- return lookup(entries, name)
- .map(ByteArrayInputStream::new);
- }
-
- @Override
- public void writeEntry(String path, String content) {
- entries.put(path, content.getBytes(StandardCharsets.UTF_8));
- }
-
- @Override
- public void close() throws IOException {
- }
-
- public byte[] toByteArray() {
- return PassThroughException.wrap(() -> {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- try (ZipOutputStream zipStream = new ZipOutputStream(outputStream)) {
- for (Map.Entry<String, byte[]> entry : entries.entrySet()) {
- zipStream.putNextEntry(new ZipEntry(entry.getKey()));
- zipStream.write(entry.getValue());
- }
- }
- return outputStream.toByteArray();
- });
- }
-}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/MutableArchive.java b/src/main/java/org/zwobble/mammoth/internal/docx/MutableArchive.java
deleted file mode 100644
index 5615d58..0000000
--- a/src/main/java/org/zwobble/mammoth/internal/docx/MutableArchive.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.zwobble.mammoth.internal.docx;
-
-public interface MutableArchive extends Archive {
-
- void writeEntry(String path, String content);
-}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/ZippedArchive.java b/src/main/java/org/zwobble/mammoth/internal/docx/ZippedArchive.java
deleted file mode 100644
index 27e7fa4..0000000
--- a/src/main/java/org/zwobble/mammoth/internal/docx/ZippedArchive.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.zwobble.mammoth.internal.docx;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Optional;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-public class ZippedArchive implements Archive {
- private final ZipFile zipFile;
-
- public ZippedArchive(ZipFile zipFile) {
- this.zipFile = zipFile;
- }
-
- public ZippedArchive(File file) throws IOException {
- this(new ZipFile(file));
- }
-
- @Override
- public Optional<InputStream> tryGetInputStream(String name) throws IOException {
- ZipEntry entry = zipFile.getEntry(name);
- if (entry == null) {
- return Optional.empty();
- } else {
- return Optional.of(zipFile.getInputStream(entry));
- }
- }
-
- @Override
- public void close() throws IOException {
- zipFile.close();
- }
-}