From 150bedb37750e80d598f7072f55ce7487e257216 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 26 Mar 2016 11:25:42 +0000 Subject: Remove more usages of Guava collections --- .../zwobble/mammoth/internal/DocumentToHtml.java | 22 ++++++++------------- .../mammoth/internal/docx/BodyXmlReader.java | 4 ++-- .../zwobble/mammoth/internal/docx/ReadResult.java | 12 ++--------- .../mammoth/internal/results/InternalResult.java | 4 ++-- .../mammoth/internal/styles/DefaultStyles.java | 5 +++-- .../mammoth/internal/styles/StyleMapBuilder.java | 13 ++++++------ .../mammoth/internal/util/MammothLists.java | 16 ++++++++++----- .../zwobble/mammoth/internal/util/MammothMaps.java | 4 ++-- .../zwobble/mammoth/internal/util/MammothSets.java | 23 ++++++++++++++++++---- .../zwobble/mammoth/internal/xml/XmlElement.java | 10 +++------- 10 files changed, 59 insertions(+), 54 deletions(-) (limited to 'src/main') diff --git a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java index 26c32fb..4f45d95 100644 --- a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java +++ b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java @@ -1,8 +1,6 @@ package org.zwobble.mammoth.internal; -import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import org.zwobble.mammoth.internal.documents.*; import org.zwobble.mammoth.internal.html.Html; import org.zwobble.mammoth.internal.html.HtmlNode; @@ -12,10 +10,7 @@ import org.zwobble.mammoth.internal.styles.StyleMap; import org.zwobble.mammoth.internal.util.MammothLists; import java.io.IOException; -import java.util.ArrayList; -import java.util.Base64; -import java.util.List; -import java.util.Map; +import java.util.*; import static org.zwobble.mammoth.internal.util.MammothLists.*; import static org.zwobble.mammoth.internal.util.MammothMaps.map; @@ -26,7 +21,7 @@ public class DocumentToHtml { DocumentToHtml documentConverter = new DocumentToHtml(options); return new InternalResult<>( documentConverter.convertToHtml(document), - documentConverter.warnings.build()); + documentConverter.warnings); } private static List findNotes(Document document, Iterable noteReferences) { @@ -40,14 +35,14 @@ public class DocumentToHtml { DocumentToHtml documentConverter = new DocumentToHtml(options); return new InternalResult<>( documentConverter.convertToHtml(element), - documentConverter.warnings.build()); + documentConverter.warnings); } private final String idPrefix; private final boolean preserveEmptyParagraphs; private final StyleMap styleMap; private final List noteReferences = new ArrayList<>(); - private final ImmutableSet.Builder warnings = ImmutableSet.builder(); + private final Set warnings = new HashSet<>(); private DocumentToHtml(DocumentToHtmlOptions options) { this.idPrefix = options.idPrefix(); @@ -72,14 +67,13 @@ public class DocumentToHtml { private HtmlNode convertToHtml(Note note) { String id = generateNoteHtmlId(note.getNoteType(), note.getId()); String referenceId = generateNoteRefHtmlId(note.getNoteType(), note.getId()); - ImmutableList.Builder children = ImmutableList.builder(); - children.addAll(convertToHtml(note.getBody())); + List noteBody = convertToHtml(note.getBody()); // TODO: we probably want this to collapse more eagerly than other collapsible elements // -- for instance, any paragraph will probably do, regardless of attributes. (Possible other elements will do too.) - children.add(Html.collapsibleElement("p", list( + HtmlNode backLink = Html.collapsibleElement("p", list( Html.text(" "), - Html.element("a", map("href", "#" + referenceId), list(Html.text("↑")))))); - return Html.element("li", map("id", id), children.build()); + Html.element("a", map("href", "#" + referenceId), list(Html.text("↑"))))); + return Html.element("li", map("id", id), eagerConcat(noteBody, list(backLink))); } private List convertToHtml(List elements) { 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 c8cdc1c..d528622 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java @@ -1,6 +1,5 @@ package org.zwobble.mammoth.internal.docx; -import com.google.common.collect.ImmutableSet; import org.zwobble.mammoth.internal.documents.*; import org.zwobble.mammoth.internal.results.InternalResult; import org.zwobble.mammoth.internal.util.InputStreamSupplier; @@ -18,10 +17,11 @@ import static org.zwobble.mammoth.internal.docx.ReadResult.EMPTY_SUCCESS; import static org.zwobble.mammoth.internal.docx.ReadResult.success; import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFilter; import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.MammothSets.set; import static org.zwobble.mammoth.internal.util.MammothStrings.trimLeft; public class BodyXmlReader { - private static final Set IMAGE_TYPES_SUPPORTED_BY_BROWSERS = ImmutableSet.of( + private static final Set IMAGE_TYPES_SUPPORTED_BY_BROWSERS = set( "image/png", "image/gif", "image/jpeg", "image/svg+xml", "image/tiff"); private final Styles styles; diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java b/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java index d61f323..24710c9 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java @@ -1,6 +1,5 @@ package org.zwobble.mammoth.internal.docx; -import com.google.common.collect.ImmutableList; import org.zwobble.mammoth.internal.documents.DocumentElement; import org.zwobble.mammoth.internal.results.InternalResult; @@ -68,21 +67,14 @@ public class ReadResult { } public ReadResult toExtra() { - return new ReadResult(list(), concat(extra, elements), warnings); + return new ReadResult(list(), eagerConcat(extra, elements), warnings); } public ReadResult appendExtra() { - return new ReadResult(concat(elements, extra), list(), warnings); + return new ReadResult(eagerConcat(elements, extra), list(), warnings); } public InternalResult> toResult() { return new InternalResult<>(elements, warnings); } - - private static List concat(List first, List second) { - ImmutableList.Builder builder = ImmutableList.builder(); - builder.addAll(first); - builder.addAll(second); - return builder.build(); - } } diff --git a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java index 445d684..5be56ed 100644 --- a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java @@ -1,6 +1,5 @@ package org.zwobble.mammoth.internal.results; -import com.google.common.collect.ImmutableSet; import org.zwobble.mammoth.Result; import org.zwobble.mammoth.internal.documents.Style; @@ -14,6 +13,7 @@ import static org.zwobble.mammoth.internal.util.MammothIterables.lazyConcat; import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFlatMap; import static org.zwobble.mammoth.internal.util.MammothLists.eagerMap; import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.MammothSets.toSet; public class InternalResult { public static InternalResult> flatMap(Iterable iterable, Function> function) { @@ -69,7 +69,7 @@ public class InternalResult { } public Result toResult() { - Set warnings = ImmutableSet.copyOf(this.warnings); + Set warnings = toSet(this.warnings); return new Result() { @Override public T getValue() { diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/DefaultStyles.java b/src/main/java/org/zwobble/mammoth/internal/styles/DefaultStyles.java index 8b9409d..9f1d63d 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/DefaultStyles.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/DefaultStyles.java @@ -1,10 +1,11 @@ package org.zwobble.mammoth.internal.styles; -import com.google.common.collect.ImmutableList; import org.zwobble.mammoth.internal.styles.parsing.StyleMapParser; +import static org.zwobble.mammoth.internal.util.MammothLists.list; + public class DefaultStyles { - public static final StyleMap DEFAULT_STYLE_MAP = StyleMapParser.parseStyleMappings(ImmutableList.of( + public static final StyleMap DEFAULT_STYLE_MAP = StyleMapParser.parseStyleMappings(list( "p.Heading1 => h1:fresh", "p.Heading2 => h2:fresh", "p.Heading3 => h3:fresh", diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java index 34a72ba..9935417 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java @@ -1,9 +1,10 @@ package org.zwobble.mammoth.internal.styles; -import com.google.common.collect.ImmutableList; import org.zwobble.mammoth.internal.documents.Paragraph; import org.zwobble.mammoth.internal.documents.Run; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; public class StyleMapBuilder { @@ -11,8 +12,8 @@ public class StyleMapBuilder { private Optional strikethrough; private Optional bold; private Optional italic; - private final ImmutableList.Builder> paragraphStyles = ImmutableList.builder(); - private final ImmutableList.Builder> runStyles = ImmutableList.builder(); + private final List> paragraphStyles = new ArrayList<>(); + private final List> runStyles = new ArrayList<>(); public StyleMapBuilder() { this.bold = Optional.empty(); @@ -42,16 +43,16 @@ public class StyleMapBuilder { } public StyleMapBuilder mapParagraph(ParagraphMatcher matcher, HtmlPath path) { - paragraphStyles.add(new StyleMapping(matcher, path)); + paragraphStyles.add(new StyleMapping<>(matcher, path)); return this; } public StyleMapBuilder mapRun(RunMatcher matcher, HtmlPath path) { - runStyles.add(new StyleMapping(matcher, path)); + runStyles.add(new StyleMapping<>(matcher, path)); return this; } public StyleMap build() { - return new StyleMap(bold, italic, underline, strikethrough, paragraphStyles.build(), runStyles.build()); + return new StyleMap(bold, italic, underline, strikethrough, paragraphStyles, runStyles); } } 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 eb4dab9..09a45c7 100644 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java +++ b/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java @@ -1,8 +1,8 @@ package org.zwobble.mammoth.internal.util; -import com.google.common.collect.ImmutableList; import com.google.common.collect.Ordering; +import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.function.Function; @@ -10,23 +10,29 @@ import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; +import static java.util.Arrays.asList; import static org.zwobble.mammoth.internal.util.MammothIterables.stream; public class MammothLists { public static List list() { - return ImmutableList.of(); + return Collections.emptyList(); } public static List list(T value1) { - return ImmutableList.of(value1); + return Collections.singletonList(value1); } public static List list(T value1, T value2) { - return ImmutableList.of(value1, value2); + return asList(value1, value2); } public static List list(T value1, T value2, T value3) { - return ImmutableList.of(value1, value2, value3); + return asList(value1, value2, value3); + } + + @SafeVarargs + public static List list(T... values) { + return asList(values); } public static List cons(T head, Iterable tail) { diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java index 4ca3557..269331f 100644 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java +++ b/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java @@ -7,11 +7,11 @@ import java.util.function.Function; public class MammothMaps { public static Map map() { - return ImmutableMap.of(); + return Collections.emptyMap(); } public static Map map(K key1, V value1) { - return ImmutableMap.of(key1, value1); + return Collections.singletonMap(key1, value1); } public static Map map(K key1, V value1, K key2, V value2) { diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java index a9658ce..87f7bbe 100644 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java +++ b/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java @@ -1,15 +1,30 @@ package org.zwobble.mammoth.internal.util; -import com.google.common.collect.ImmutableSet; - +import java.util.Collections; +import java.util.HashSet; import java.util.Set; +import java.util.stream.Collectors; + +import static java.util.Arrays.asList; +import static org.zwobble.mammoth.internal.util.MammothIterables.stream; public class MammothSets { public static Set set() { - return ImmutableSet.of(); + return Collections.emptySet(); } public static Set set(T value1) { - return ImmutableSet.of(value1); + return Collections.singleton(value1); + } + + @SafeVarargs + public static Set set(T... values) { + HashSet set = new HashSet<>(); + set.addAll(asList(values)); + return set; + } + + public static Set toSet(Iterable iterable) { + return stream(iterable).collect(Collectors.toSet()); } } diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java index ad6f8f3..e82b14e 100644 --- a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java +++ b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java @@ -1,14 +1,11 @@ package org.zwobble.mammoth.internal.xml; -import com.google.common.collect.ImmutableList; - import java.util.List; import java.util.Map; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothIterables.getFirst; -import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFilter; -import static org.zwobble.mammoth.internal.util.MammothIterables.lazyMap; +import static org.zwobble.mammoth.internal.util.MammothIterables.*; +import static org.zwobble.mammoth.internal.util.MammothLists.toList; import static org.zwobble.mammoth.internal.util.MammothMaps.lookup; public class XmlElement implements XmlNode, XmlElementLike { @@ -65,8 +62,7 @@ public class XmlElement implements XmlNode, XmlElementLike { } public XmlElementList findChildren(String name) { - Iterable filtered = findChildrenIterable(name); - return new XmlElementList(ImmutableList.copyOf(filtered)); + return new XmlElementList(toList(findChildrenIterable(name))); } public XmlElement findChild(String name) { -- cgit v1.2.3