diff options
Diffstat (limited to 'src/main')
3 files changed, 28 insertions, 11 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java b/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java index 3f55f8c..c17346c 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java @@ -1,33 +1,32 @@ package org.zwobble.mammoth.internal.docx; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; - import java.io.ByteArrayInputStream; 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 static org.zwobble.mammoth.internal.util.MammothMaps.eagerMapValues; import static org.zwobble.mammoth.internal.util.MammothMaps.lookup; import static org.zwobble.mammoth.internal.util.Streams.toByteArray; public class InMemoryDocxFile implements DocxFile { public static DocxFile fromStream(InputStream stream) throws IOException { ZipInputStream zipStream = new ZipInputStream(stream); - ImmutableMap.Builder<String, byte[]> entries = ImmutableMap.builder(); + Map<String, byte[]> entries = new HashMap<>(); ZipEntry entry; while ((entry = zipStream.getNextEntry()) != null) { entries.put(entry.getName(), toByteArray(zipStream)); } - return new InMemoryDocxFile(entries.build()); + return new InMemoryDocxFile(entries); } public static DocxFile fromStrings(Map<String, String> entries) { - return new InMemoryDocxFile(Maps.transformValues(entries, value -> value.getBytes(StandardCharsets.UTF_8))); + return new InMemoryDocxFile(eagerMapValues(entries, value -> value.getBytes(StandardCharsets.UTF_8))); } private final Map<String, byte[]> entries; diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java index a20043a..59c0908 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java @@ -1,12 +1,12 @@ package org.zwobble.mammoth.internal.styles; -import com.google.common.collect.Lists; import org.zwobble.mammoth.internal.html.HtmlNode; import java.util.List; import java.util.Map; import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.MammothLists.reversed; import static org.zwobble.mammoth.internal.util.MammothMaps.map; public class HtmlPath { @@ -43,7 +43,7 @@ public class HtmlPath { } public List<HtmlNode> wrap(List<HtmlNode> nodes) { - for (HtmlPathElement element : Lists.reverse(elements)) { + for (HtmlPathElement element : reversed(elements)) { nodes = element.wrap(nodes); } return nodes; diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java index 09a45c7..7bcc416 100644 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java +++ b/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java @@ -2,9 +2,7 @@ package org.zwobble.mammoth.internal.util; import com.google.common.collect.Ordering; -import java.util.Collections; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -80,4 +78,24 @@ public class MammothLists { public static <T> List<T> skip(List<T> list, int count) { return list.subList(Math.min(list.size(), count), list.size()); } + + public static <T> Iterable<T> reversed(List<T> list) { + return new Iterable<T>() { + @Override + public Iterator<T> iterator() { + ListIterator<T> iterator = list.listIterator(list.size()); + return new Iterator<T>() { + @Override + public boolean hasNext() { + return iterator.hasPrevious(); + } + + @Override + public T next() { + return iterator.previous(); + } + }; + } + }; + } } |
