From 36befa1f40053899efa58ddeef3aa756dda7cef4 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 26 Mar 2016 17:14:08 +0000 Subject: Remove more usages of Guava --- .../mammoth/internal/docx/InMemoryDocxFile.java | 11 +++++----- .../zwobble/mammoth/internal/styles/HtmlPath.java | 4 ++-- .../mammoth/internal/util/MammothLists.java | 24 +++++++++++++++++++--- 3 files changed, 28 insertions(+), 11 deletions(-) (limited to 'src') 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 entries = ImmutableMap.builder(); + Map 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 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 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 wrap(List 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 List skip(List list, int count) { return list.subList(Math.min(list.size(), count), list.size()); } + + public static Iterable reversed(List list) { + return new Iterable() { + @Override + public Iterator iterator() { + ListIterator iterator = list.listIterator(list.size()); + return new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasPrevious(); + } + + @Override + public T next() { + return iterator.previous(); + } + }; + } + }; + } } -- cgit v1.2.3