From 581aec7d05f06456a384aa9adef7d781a666bf91 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 26 Mar 2016 17:57:45 +0000 Subject: Remove Mammoth prefix from util classes --- .../org/zwobble/mammoth/DocumentConverter.java | 4 +- .../zwobble/mammoth/internal/DocumentToHtml.java | 10 +- .../zwobble/mammoth/internal/documents/Notes.java | 4 +- .../mammoth/internal/docx/BodyXmlReader.java | 12 +-- .../mammoth/internal/docx/ContentTypes.java | 8 +- .../mammoth/internal/docx/ContentTypesXml.java | 6 +- .../mammoth/internal/docx/DocumentReader.java | 6 +- .../mammoth/internal/docx/InMemoryDocxFile.java | 4 +- .../mammoth/internal/docx/NotesXmlReader.java | 2 +- .../zwobble/mammoth/internal/docx/Numbering.java | 4 +- .../mammoth/internal/docx/NumberingXml.java | 6 +- .../zwobble/mammoth/internal/docx/OfficeXml.java | 4 +- .../zwobble/mammoth/internal/docx/ReadResult.java | 6 +- .../mammoth/internal/docx/Relationships.java | 4 +- .../mammoth/internal/docx/RelationshipsXml.java | 4 +- .../org/zwobble/mammoth/internal/docx/Styles.java | 4 +- .../zwobble/mammoth/internal/docx/StylesXml.java | 6 +- .../org/zwobble/mammoth/internal/html/Html.java | 14 +-- .../zwobble/mammoth/internal/html/HtmlWriter.java | 2 +- .../mammoth/internal/results/InternalResult.java | 10 +- .../mammoth/internal/styles/DefaultStyles.java | 2 +- .../zwobble/mammoth/internal/styles/HtmlPath.java | 6 +- .../mammoth/internal/styles/HtmlPathElement.java | 4 +- .../zwobble/mammoth/internal/styles/StyleMap.java | 18 ++-- .../styles/parsing/StyleMappingParser.java | 2 +- .../zwobble/mammoth/internal/util/Iterables.java | 106 +++++++++++++++++++++ .../org/zwobble/mammoth/internal/util/Lists.java | 101 ++++++++++++++++++++ .../mammoth/internal/util/MammothIterables.java | 106 --------------------- .../mammoth/internal/util/MammothLists.java | 101 -------------------- .../zwobble/mammoth/internal/util/MammothMaps.java | 97 ------------------- .../mammoth/internal/util/MammothOptionals.java | 38 -------- .../zwobble/mammoth/internal/util/MammothSets.java | 36 ------- .../mammoth/internal/util/MammothStrings.java | 15 --- .../org/zwobble/mammoth/internal/util/Maps.java | 97 +++++++++++++++++++ .../zwobble/mammoth/internal/util/Optionals.java | 38 ++++++++ .../org/zwobble/mammoth/internal/util/Sets.java | 36 +++++++ .../org/zwobble/mammoth/internal/util/Strings.java | 15 +++ .../mammoth/internal/xml/NamespacePrefixes.java | 2 +- .../zwobble/mammoth/internal/xml/XmlElement.java | 6 +- .../mammoth/internal/xml/XmlElementList.java | 2 +- .../org/zwobble/mammoth/internal/xml/XmlNodes.java | 4 +- .../mammoth/internal/xml/parsing/XmlParser.java | 4 +- 42 files changed, 478 insertions(+), 478 deletions(-) create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Iterables.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Lists.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothIterables.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothOptionals.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothStrings.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Maps.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Optionals.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Sets.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Strings.java (limited to 'src/main') diff --git a/src/main/java/org/zwobble/mammoth/DocumentConverter.java b/src/main/java/org/zwobble/mammoth/DocumentConverter.java index ad95656..46ec83c 100644 --- a/src/main/java/org/zwobble/mammoth/DocumentConverter.java +++ b/src/main/java/org/zwobble/mammoth/DocumentConverter.java @@ -23,8 +23,8 @@ import java.util.function.Function; import java.util.zip.ZipFile; import static org.zwobble.mammoth.internal.docx.DocumentReader.readDocument; -import static org.zwobble.mammoth.internal.util.MammothIterables.lazyMap; -import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.Iterables.lazyMap; +import static org.zwobble.mammoth.internal.util.Lists.list; public class DocumentConverter { private final DocumentToHtmlOptions options; diff --git a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java index 9835e29..27d9ccc 100644 --- a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java +++ b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java @@ -6,13 +6,13 @@ import org.zwobble.mammoth.internal.html.HtmlNode; import org.zwobble.mammoth.internal.results.InternalResult; import org.zwobble.mammoth.internal.styles.HtmlPath; import org.zwobble.mammoth.internal.styles.StyleMap; -import org.zwobble.mammoth.internal.util.MammothLists; +import org.zwobble.mammoth.internal.util.Lists; import java.io.IOException; import java.util.*; -import static org.zwobble.mammoth.internal.util.MammothLists.*; -import static org.zwobble.mammoth.internal.util.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Lists.*; +import static org.zwobble.mammoth.internal.util.Maps.map; import static org.zwobble.mammoth.internal.util.Streams.toByteArray; public class DocumentToHtml { @@ -164,7 +164,7 @@ public class DocumentToHtml { @Override public List visit(TableCell tableCell) { return list(Html.element("td", - MammothLists.cons(Html.FORCE_WRITE, convertChildrenToHtml(tableCell)))); + Lists.cons(Html.FORCE_WRITE, convertChildrenToHtml(tableCell)))); } @Override @@ -216,7 +216,7 @@ public class DocumentToHtml { return list(Html.selfClosingElement("img", attributes)); } catch (IOException exception) { warnings.add(exception.getMessage()); - return MammothLists.list(); + return Lists.list(); } }) .orElse(list()); diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Notes.java b/src/main/java/org/zwobble/mammoth/internal/documents/Notes.java index fdfa814..c88c31a 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/Notes.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/Notes.java @@ -4,8 +4,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothLists.list; -import static org.zwobble.mammoth.internal.util.MammothMaps.*; +import static org.zwobble.mammoth.internal.util.Lists.list; +import static org.zwobble.mammoth.internal.util.Maps.*; public class Notes { public final static Notes EMPTY = new Notes(list()); 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 d528622..be2cbb9 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java @@ -3,7 +3,7 @@ package org.zwobble.mammoth.internal.docx; import org.zwobble.mammoth.internal.documents.*; import org.zwobble.mammoth.internal.results.InternalResult; import org.zwobble.mammoth.internal.util.InputStreamSupplier; -import org.zwobble.mammoth.internal.util.MammothOptionals; +import org.zwobble.mammoth.internal.util.Optionals; import org.zwobble.mammoth.internal.xml.XmlElement; import org.zwobble.mammoth.internal.xml.XmlElementLike; import org.zwobble.mammoth.internal.xml.XmlElementList; @@ -15,10 +15,10 @@ import java.util.function.Function; 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; +import static org.zwobble.mammoth.internal.util.Iterables.lazyFilter; +import static org.zwobble.mammoth.internal.util.Lists.list; +import static org.zwobble.mammoth.internal.util.Sets.set; +import static org.zwobble.mammoth.internal.util.Strings.trimLeft; public class BodyXmlReader { private static final Set IMAGE_TYPES_SUPPORTED_BY_BROWSERS = set( @@ -216,7 +216,7 @@ public class BodyXmlReader { private Optional readNumbering(XmlElementLike properties) { XmlElementLike numberingProperties = properties.findChildOrEmpty("w:numPr"); - return MammothOptionals.flatMap( + return Optionals.flatMap( readVal(numberingProperties, "w:numId"), readVal(numberingProperties, "w:ilvl"), numbering::findLevel); diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/ContentTypes.java b/src/main/java/org/zwobble/mammoth/internal/docx/ContentTypes.java index b2677b2..d3f1c1f 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/ContentTypes.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/ContentTypes.java @@ -1,18 +1,18 @@ package org.zwobble.mammoth.internal.docx; -import org.zwobble.mammoth.internal.util.MammothMaps; +import org.zwobble.mammoth.internal.util.Maps; import org.zwobble.mammoth.internal.util.Paths; import java.util.Map; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothMaps.lookup; -import static org.zwobble.mammoth.internal.util.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Maps.lookup; +import static org.zwobble.mammoth.internal.util.Maps.map; public class ContentTypes { public static final ContentTypes DEFAULT = new ContentTypes(map(), map()); - private static final Map imageExtensions = MammothMaps.builder() + private static final Map imageExtensions = Maps.builder() .put("png", "png") .put("gif", "gif") .put("jpeg", "jpeg") diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/ContentTypesXml.java b/src/main/java/org/zwobble/mammoth/internal/docx/ContentTypesXml.java index 20bb0ab..0347362 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/ContentTypesXml.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/ContentTypesXml.java @@ -5,9 +5,9 @@ import org.zwobble.mammoth.internal.xml.XmlElementList; import java.util.Map; -import static org.zwobble.mammoth.internal.util.MammothMaps.entry; -import static org.zwobble.mammoth.internal.util.MammothMaps.toMap; -import static org.zwobble.mammoth.internal.util.MammothStrings.trimLeft; +import static org.zwobble.mammoth.internal.util.Maps.entry; +import static org.zwobble.mammoth.internal.util.Maps.toMap; +import static org.zwobble.mammoth.internal.util.Strings.trimLeft; public class ContentTypesXml { public static ContentTypes readContentTypesXmlElement(XmlElement element) { 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 93caee4..f302c6d 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentReader.java @@ -3,7 +3,7 @@ package org.zwobble.mammoth.internal.docx; import org.zwobble.mammoth.internal.documents.Document; import org.zwobble.mammoth.internal.documents.Notes; import org.zwobble.mammoth.internal.results.InternalResult; -import org.zwobble.mammoth.internal.util.MammothLists; +import org.zwobble.mammoth.internal.util.Lists; import org.zwobble.mammoth.internal.xml.XmlElement; import java.io.IOException; @@ -13,7 +13,7 @@ import java.net.URISyntaxException; import java.nio.file.Path; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.Lists.list; public class DocumentReader { @FunctionalInterface @@ -71,7 +71,7 @@ public class DocumentReader { tryParseOfficeXml(file, "word/endnotes.xml") .map(NotesXmlReader.endnote(bodyReaders.forName("endnotes"))::readElement) .orElse(InternalResult.success(list())), - MammothLists::eagerConcat).map(Notes::new); + Lists::eagerConcat).map(Notes::new); } private static Styles readStyles(DocxFile file) { 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 c17346c..c4ef2c3 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/InMemoryDocxFile.java @@ -10,8 +10,8 @@ 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.Maps.eagerMapValues; +import static org.zwobble.mammoth.internal.util.Maps.lookup; import static org.zwobble.mammoth.internal.util.Streams.toByteArray; public class InMemoryDocxFile implements DocxFile { diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/NotesXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/NotesXmlReader.java index b75df9b..e70b1d4 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/NotesXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/NotesXmlReader.java @@ -7,7 +7,7 @@ import org.zwobble.mammoth.internal.xml.XmlElement; import java.util.List; -import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFilter; +import static org.zwobble.mammoth.internal.util.Iterables.lazyFilter; public class NotesXmlReader { public static NotesXmlReader footnote(BodyXmlReader bodyReader) { diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java b/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java index 9208c82..5ee09db 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java @@ -5,8 +5,8 @@ import org.zwobble.mammoth.internal.documents.NumberingLevel; import java.util.Map; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothMaps.lookup; -import static org.zwobble.mammoth.internal.util.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Maps.lookup; +import static org.zwobble.mammoth.internal.util.Maps.map; public class Numbering { public static final Numbering EMPTY = new Numbering(map()); diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java b/src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java index 2167171..1f2fd41 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/NumberingXml.java @@ -7,9 +7,9 @@ import org.zwobble.mammoth.internal.xml.XmlElementList; import java.util.Map; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothMaps.entry; -import static org.zwobble.mammoth.internal.util.MammothMaps.lookup; -import static org.zwobble.mammoth.internal.util.MammothMaps.toMap; +import static org.zwobble.mammoth.internal.util.Maps.entry; +import static org.zwobble.mammoth.internal.util.Maps.lookup; +import static org.zwobble.mammoth.internal.util.Maps.toMap; public class NumberingXml { public static Numbering readNumberingXmlElement(XmlElement element) { diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/OfficeXml.java b/src/main/java/org/zwobble/mammoth/internal/docx/OfficeXml.java index 4088df5..b3a90d6 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/OfficeXml.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/OfficeXml.java @@ -6,8 +6,8 @@ import org.zwobble.mammoth.internal.xml.parsing.XmlParser; import java.io.InputStream; import java.util.List; -import static org.zwobble.mammoth.internal.util.MammothLists.eagerFlatMap; -import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.Lists.eagerFlatMap; +import static org.zwobble.mammoth.internal.util.Lists.list; public class OfficeXml { private static NamespacePrefixes XML_NAMESPACES = NamespacePrefixes.builder() 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 24710c9..fa38338 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java @@ -7,9 +7,9 @@ import java.util.List; import java.util.function.BiFunction; import java.util.function.Function; -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.*; +import static org.zwobble.mammoth.internal.util.Iterables.lazyConcat; +import static org.zwobble.mammoth.internal.util.Iterables.lazyFlatMap; +import static org.zwobble.mammoth.internal.util.Lists.*; public class ReadResult { public static final ReadResult EMPTY_SUCCESS = success(list()); diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java b/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java index 7e8c14c..c1dd511 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java @@ -2,8 +2,8 @@ package org.zwobble.mammoth.internal.docx; import java.util.Map; -import static org.zwobble.mammoth.internal.util.MammothMaps.lookup; -import static org.zwobble.mammoth.internal.util.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Maps.lookup; +import static org.zwobble.mammoth.internal.util.Maps.map; public class Relationships { public static final Relationships EMPTY = new Relationships(map()); diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/RelationshipsXml.java b/src/main/java/org/zwobble/mammoth/internal/docx/RelationshipsXml.java index 0c65e55..a63065b 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/RelationshipsXml.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/RelationshipsXml.java @@ -4,8 +4,8 @@ import org.zwobble.mammoth.internal.xml.XmlElement; import java.util.Map; -import static org.zwobble.mammoth.internal.util.MammothMaps.entry; -import static org.zwobble.mammoth.internal.util.MammothMaps.toMap; +import static org.zwobble.mammoth.internal.util.Maps.entry; +import static org.zwobble.mammoth.internal.util.Maps.toMap; public class RelationshipsXml { public static Relationships readRelationshipsXmlElement(XmlElement element) { diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Styles.java b/src/main/java/org/zwobble/mammoth/internal/docx/Styles.java index 5b9b131..7271bd0 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/Styles.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/Styles.java @@ -5,8 +5,8 @@ import org.zwobble.mammoth.internal.documents.Style; import java.util.Map; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothMaps.lookup; -import static org.zwobble.mammoth.internal.util.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Maps.lookup; +import static org.zwobble.mammoth.internal.util.Maps.map; public class Styles { public static final Styles EMPTY = new Styles(map(), map()); diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/StylesXml.java b/src/main/java/org/zwobble/mammoth/internal/docx/StylesXml.java index 81a16af..625b830 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/StylesXml.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/StylesXml.java @@ -7,9 +7,9 @@ import org.zwobble.mammoth.internal.xml.XmlElementList; import java.util.Map; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFilter; -import static org.zwobble.mammoth.internal.util.MammothMaps.entry; -import static org.zwobble.mammoth.internal.util.MammothMaps.toMap; +import static org.zwobble.mammoth.internal.util.Iterables.lazyFilter; +import static org.zwobble.mammoth.internal.util.Maps.entry; +import static org.zwobble.mammoth.internal.util.Maps.toMap; public class StylesXml { public static Styles readStylesXmlElement(XmlElement element) { diff --git a/src/main/java/org/zwobble/mammoth/internal/html/Html.java b/src/main/java/org/zwobble/mammoth/internal/html/Html.java index 8f4d671..f0a01dd 100644 --- a/src/main/java/org/zwobble/mammoth/internal/html/Html.java +++ b/src/main/java/org/zwobble/mammoth/internal/html/Html.java @@ -1,16 +1,16 @@ package org.zwobble.mammoth.internal.html; -import org.zwobble.mammoth.internal.util.MammothLists; -import org.zwobble.mammoth.internal.util.MammothOptionals; +import org.zwobble.mammoth.internal.util.Lists; +import org.zwobble.mammoth.internal.util.Optionals; import java.util.ArrayList; import java.util.List; import java.util.Map; import static org.zwobble.mammoth.internal.util.Casts.tryCast; -import static org.zwobble.mammoth.internal.util.MammothLists.list; -import static org.zwobble.mammoth.internal.util.MammothLists.tryGetLast; -import static org.zwobble.mammoth.internal.util.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Lists.list; +import static org.zwobble.mammoth.internal.util.Lists.tryGetLast; +import static org.zwobble.mammoth.internal.util.Maps.map; public class Html { public static final HtmlNode FORCE_WRITE = HtmlForceWrite.FORCE_WRITE; @@ -70,7 +70,7 @@ public class Html { } public static List stripEmpty(List nodes) { - return MammothLists.eagerFlatMap(nodes, node -> stripEmpty(node)); + return Lists.eagerFlatMap(nodes, node -> stripEmpty(node)); } private static List stripEmpty(HtmlNode node) { @@ -156,7 +156,7 @@ public class Html { } private static boolean tryCollapse(List collapsed, HtmlNode node) { - return MammothOptionals.map( + return Optionals.map( tryGetLast(collapsed).flatMap(last -> tryCast(HtmlElement.class, last)), tryCast(HtmlElement.class, node), (last, next) -> { diff --git a/src/main/java/org/zwobble/mammoth/internal/html/HtmlWriter.java b/src/main/java/org/zwobble/mammoth/internal/html/HtmlWriter.java index 6a87567..8747af1 100644 --- a/src/main/java/org/zwobble/mammoth/internal/html/HtmlWriter.java +++ b/src/main/java/org/zwobble/mammoth/internal/html/HtmlWriter.java @@ -2,7 +2,7 @@ package org.zwobble.mammoth.internal.html; import java.util.Map; -import static org.zwobble.mammoth.internal.util.MammothLists.orderedBy; +import static org.zwobble.mammoth.internal.util.Lists.orderedBy; public class HtmlWriter { public static void write(HtmlNode node, StringBuilder builder) { 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 5be56ed..b2e892b 100644 --- a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java @@ -9,11 +9,11 @@ import java.util.Set; import java.util.function.BiFunction; import java.util.function.Function; -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; +import static org.zwobble.mammoth.internal.util.Iterables.lazyConcat; +import static org.zwobble.mammoth.internal.util.Iterables.lazyFlatMap; +import static org.zwobble.mammoth.internal.util.Lists.eagerMap; +import static org.zwobble.mammoth.internal.util.Lists.list; +import static org.zwobble.mammoth.internal.util.Sets.toSet; public class InternalResult { public static InternalResult> flatMap(Iterable iterable, Function> function) { 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 9f1d63d..3aaf655 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/DefaultStyles.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/DefaultStyles.java @@ -2,7 +2,7 @@ package org.zwobble.mammoth.internal.styles; import org.zwobble.mammoth.internal.styles.parsing.StyleMapParser; -import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.Lists.list; public class DefaultStyles { public static final StyleMap DEFAULT_STYLE_MAP = StyleMapParser.parseStyleMappings(list( 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 59c0908..93025d9 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPath.java @@ -5,9 +5,9 @@ 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; +import static org.zwobble.mammoth.internal.util.Lists.list; +import static org.zwobble.mammoth.internal.util.Lists.reversed; +import static org.zwobble.mammoth.internal.util.Maps.map; public class HtmlPath { public static final HtmlPath EMPTY = new HtmlPath(list()); diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java index 7f110a4..08221eb 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/HtmlPathElement.java @@ -6,8 +6,8 @@ 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.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Lists.list; +import static org.zwobble.mammoth.internal.util.Maps.map; public class HtmlPathElement { public static HtmlPathElement fresh(String tagName) { diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java index 5f2903b..81dfe80 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java @@ -2,13 +2,13 @@ package org.zwobble.mammoth.internal.styles; import org.zwobble.mammoth.internal.documents.Paragraph; import org.zwobble.mammoth.internal.documents.Run; -import org.zwobble.mammoth.internal.util.MammothLists; -import org.zwobble.mammoth.internal.util.MammothOptionals; +import org.zwobble.mammoth.internal.util.Lists; +import org.zwobble.mammoth.internal.util.Optionals; import java.util.List; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothIterables.tryFind; +import static org.zwobble.mammoth.internal.util.Iterables.tryFind; public class StyleMap { public static StyleMapBuilder builder() { @@ -43,12 +43,12 @@ public class StyleMap { public StyleMap update(StyleMap styleMap) { // TODO: add appropriate tests return new StyleMap( - MammothOptionals.first(styleMap.bold, bold), - MammothOptionals.first(styleMap.italic, italic), - MammothOptionals.first(styleMap.underline, underline), - MammothOptionals.first(styleMap.strikethrough, strikethrough), - MammothLists.eagerConcat(styleMap.paragraphStyles, paragraphStyles), - MammothLists.eagerConcat(styleMap.runStyles, runStyles)); + Optionals.first(styleMap.bold, bold), + Optionals.first(styleMap.italic, italic), + Optionals.first(styleMap.underline, underline), + Optionals.first(styleMap.strikethrough, strikethrough), + Lists.eagerConcat(styleMap.paragraphStyles, paragraphStyles), + Lists.eagerConcat(styleMap.runStyles, runStyles)); } public Optional getBold() { diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingParser.java b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingParser.java index a21df44..c006319 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingParser.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingParser.java @@ -12,7 +12,7 @@ import java.math.BigInteger; import java.util.Optional; import java.util.function.BiFunction; -import static org.zwobble.mammoth.internal.util.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Maps.map; public class StyleMappingParser extends BaseParser { Rule StyleMapping(Var styleMap) { diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java b/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java new file mode 100644 index 0000000..e9246c3 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java @@ -0,0 +1,106 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.Iterator; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + +public class Iterables { + public static Optional tryFind(Iterable iterable, Predicate predicate) { + for (T element : iterable) { + if (predicate.test(element)) { + return Optional.of(element); + } + } + return Optional.empty(); + } + + public static Iterable lazyMap(Iterable iterable, Function function) { + return new Iterable() { + @Override + public Iterator iterator() { + return map(iterable.iterator(), function); + } + }; + } + + public static T getFirst(Iterable iterable, T defaultValue) { + Iterator iterator = iterable.iterator(); + if (iterator.hasNext()) { + return iterator.next(); + } else { + return defaultValue; + } + } + + public static Iterable lazyFlatMap(Iterable iterable, Function> function) { + return lazyFlatten(lazyMap(iterable, function)); + } + + public static Iterable lazyConcat(Iterable iterable1, Iterable iterable2) { + return new Iterable() { + @Override + public Iterator iterator() { + return Stream.concat(stream(iterable1), stream(iterable2)).iterator(); + } + }; + } + + public static Iterable lazyFlatten(Iterable> iterables) { + return new Iterable() { + @Override + public Iterator iterator() { + return stream(iterables) + .flatMap(iterable -> stream(iterable)) + .iterator(); + } + }; + } + + public static Iterable lazyFilter(Iterable iterables, Predicate predicate) { + return new Iterable() { + @Override + public Iterator iterator() { + return stream(iterables) + .filter(predicate) + .iterator(); + } + }; + } + + public static Iterable lazyFilter(Iterable iterables, Class clazz) { + return new Iterable() { + @Override + @SuppressWarnings("unchecked") + public Iterator iterator() { + return (Iterator) stream(iterables) + .filter(clazz::isInstance) + .iterator(); + } + }; + } + + private static Iterator map(Iterator iterator, Function function) { + return new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public R next() { + return function.apply(iterator.next()); + } + }; + } + + public static boolean any(Iterable iterable, Predicate predicate) { + return stream(iterable).anyMatch(predicate); + } + + public static Stream stream(Iterable iterable) { + return StreamSupport.stream(iterable.spliterator(), false); + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Lists.java b/src/main/java/org/zwobble/mammoth/internal/util/Lists.java new file mode 100644 index 0000000..fc45c19 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Lists.java @@ -0,0 +1,101 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.*; +import java.util.function.Function; +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.Iterables.stream; + +public class Lists { + public static List list() { + return Collections.emptyList(); + } + + public static List list(T value1) { + return Collections.singletonList(value1); + } + + public static List list(T value1, T value2) { + return asList(value1, value2); + } + + public static List list(T value1, T value2, T value3) { + return asList(value1, value2, value3); + } + + @SafeVarargs + public static List list(T... values) { + return asList(values); + } + + public static List cons(T head, Iterable tail) { + return eagerConcat(list(head), tail); + } + + public static List eagerConcat(Iterable first, Iterable second) { + return Stream.concat(stream(first), stream(second)).collect(Collectors.toList()); + } + + public static List eagerFilter(Iterable iterable, Predicate predicate) { + return stream(iterable).filter(predicate).collect(Collectors.toList()); + } + + public static List eagerMap(Iterable iterable, Function function) { + return stream(iterable).map(function).collect(Collectors.toList()); + } + + public static List eagerFlatMap(Iterable iterable, Function> function) { + return stream(iterable) + .flatMap(element -> stream(function.apply(element))) + .collect(Collectors.toList()); + } + + public static > List orderedBy(Iterable iterable, Function getKey) { + return stream(iterable) + .sorted(orderBy(getKey)) + .collect(Collectors.toList()); + } + + private static > Comparator orderBy(Function getKey) { + return (first, second) -> getKey.apply(first).compareTo(getKey.apply(second)); + } + + public static List toList(Iterable iterable) { + return stream(iterable).collect(Collectors.toList()); + } + + public static Optional tryGetLast(List list) { + if (list.isEmpty()) { + return Optional.empty(); + } else { + return Optional.of(list.get(list.size() - 1)); + } + } + + 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(); + } + }; + } + }; + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothIterables.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothIterables.java deleted file mode 100644 index 11f4f52..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothIterables.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.Iterator; -import java.util.Optional; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -public class MammothIterables { - public static Optional tryFind(Iterable iterable, Predicate predicate) { - for (T element : iterable) { - if (predicate.test(element)) { - return Optional.of(element); - } - } - return Optional.empty(); - } - - public static Iterable lazyMap(Iterable iterable, Function function) { - return new Iterable() { - @Override - public Iterator iterator() { - return map(iterable.iterator(), function); - } - }; - } - - public static T getFirst(Iterable iterable, T defaultValue) { - Iterator iterator = iterable.iterator(); - if (iterator.hasNext()) { - return iterator.next(); - } else { - return defaultValue; - } - } - - public static Iterable lazyFlatMap(Iterable iterable, Function> function) { - return lazyFlatten(lazyMap(iterable, function)); - } - - public static Iterable lazyConcat(Iterable iterable1, Iterable iterable2) { - return new Iterable() { - @Override - public Iterator iterator() { - return Stream.concat(stream(iterable1), stream(iterable2)).iterator(); - } - }; - } - - public static Iterable lazyFlatten(Iterable> iterables) { - return new Iterable() { - @Override - public Iterator iterator() { - return stream(iterables) - .flatMap(iterable -> stream(iterable)) - .iterator(); - } - }; - } - - public static Iterable lazyFilter(Iterable iterables, Predicate predicate) { - return new Iterable() { - @Override - public Iterator iterator() { - return stream(iterables) - .filter(predicate) - .iterator(); - } - }; - } - - public static Iterable lazyFilter(Iterable iterables, Class clazz) { - return new Iterable() { - @Override - @SuppressWarnings("unchecked") - public Iterator iterator() { - return (Iterator) stream(iterables) - .filter(clazz::isInstance) - .iterator(); - } - }; - } - - private static Iterator map(Iterator iterator, Function function) { - return new Iterator() { - @Override - public boolean hasNext() { - return iterator.hasNext(); - } - - @Override - public R next() { - return function.apply(iterator.next()); - } - }; - } - - public static boolean any(Iterable iterable, Predicate predicate) { - return stream(iterable).anyMatch(predicate); - } - - public static Stream stream(Iterable iterable) { - return StreamSupport.stream(iterable.spliterator(), false); - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java deleted file mode 100644 index 10d5be3..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.*; -import java.util.function.Function; -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 Collections.emptyList(); - } - - public static List list(T value1) { - return Collections.singletonList(value1); - } - - public static List list(T value1, T value2) { - return asList(value1, value2); - } - - public static List list(T value1, T value2, T value3) { - return asList(value1, value2, value3); - } - - @SafeVarargs - public static List list(T... values) { - return asList(values); - } - - public static List cons(T head, Iterable tail) { - return eagerConcat(list(head), tail); - } - - public static List eagerConcat(Iterable first, Iterable second) { - return Stream.concat(stream(first), stream(second)).collect(Collectors.toList()); - } - - public static List eagerFilter(Iterable iterable, Predicate predicate) { - return stream(iterable).filter(predicate).collect(Collectors.toList()); - } - - public static List eagerMap(Iterable iterable, Function function) { - return stream(iterable).map(function).collect(Collectors.toList()); - } - - public static List eagerFlatMap(Iterable iterable, Function> function) { - return stream(iterable) - .flatMap(element -> stream(function.apply(element))) - .collect(Collectors.toList()); - } - - public static > List orderedBy(Iterable iterable, Function getKey) { - return stream(iterable) - .sorted(orderBy(getKey)) - .collect(Collectors.toList()); - } - - private static > Comparator orderBy(Function getKey) { - return (first, second) -> getKey.apply(first).compareTo(getKey.apply(second)); - } - - public static List toList(Iterable iterable) { - return stream(iterable).collect(Collectors.toList()); - } - - public static Optional tryGetLast(List list) { - if (list.isEmpty()) { - return Optional.empty(); - } else { - return Optional.of(list.get(list.size() - 1)); - } - } - - 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(); - } - }; - } - }; - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java deleted file mode 100644 index d3ba8c5..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.*; -import java.util.function.Function; - -public class MammothMaps { - public static Map map() { - return Collections.emptyMap(); - } - - public static Map map(K key1, V value1) { - return Collections.singletonMap(key1, value1); - } - - public static Map map(K key1, V value1, K key2, V value2) { - Map map = new HashMap<>(); - map.put(key1, value1); - map.put(key2, value2); - return map; - } - - public static Map map(K key1, V value1, K key2, V value2, K key3, V value3) { - Map map = new HashMap<>(); - map.put(key1, value1); - map.put(key2, value2); - map.put(key3, value3); - return map; - } - - public static Map.Entry entry(K key, V value) { - return new AbstractMap.SimpleImmutableEntry(key, value); - } - - public static Optional lookup(Map map, K key) { - return Optional.ofNullable(map.get(key)); - } - - public static Map toMapWithKey(Iterable iterable, Function function) { - return toMap(iterable, element -> entry(function.apply(element), element)); - } - - public static Map toMap(Iterable iterable, Function> function) { - Map map = new HashMap<>(); - for (T element : iterable) { - Map.Entry entry = function.apply(element); - map.put(entry.getKey(), entry.getValue()); - } - return map; - } - - public static Map> toMultiMapWithKey(Iterable iterable, Function function) { - return toMultiMap(iterable, element -> entry(function.apply(element), element)); - } - - public static Map> toMultiMap(Iterable iterable, Function> function) { - Map> map = new HashMap<>(); - for (T element : iterable) { - Map.Entry pair = function.apply(element); - map.computeIfAbsent(pair.getKey(), key -> new ArrayList()) - .add(pair.getValue()); - } - return map; - } - - public static Map eagerMapKeys(Map map, Function function) { - Map result = new HashMap<>(); - for (Map.Entry element : map.entrySet()) { - result.put(function.apply(element.getKey()), element.getValue()); - } - return result; - } - - public static Map eagerMapValues(Map map, Function function) { - Map result = new HashMap<>(); - for (Map.Entry element : map.entrySet()) { - result.put(element.getKey(), function.apply(element.getValue())); - } - return result; - } - - public static Builder builder() { - return new Builder<>(); - } - - public static class Builder { - private final Map values = new HashMap<>(); - - public Builder put(K key, V value) { - values.put(key, value); - return this; - } - - public Map build() { - return values; - } - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothOptionals.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothOptionals.java deleted file mode 100644 index 6f2c100..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothOptionals.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.Optional; -import java.util.function.BiFunction; - -public class MammothOptionals { - public static Optional first(Optional first, Optional second) { - if (first.isPresent()) { - return first; - } else { - return second; - } - } - - public static Optional flatMap( - Optional first, - Optional second, - BiFunction> function) - { - if (first.isPresent() && second.isPresent()) { - return function.apply(first.get(), second.get()); - } else { - return Optional.empty(); - } - } - - public static Optional map( - Optional first, - Optional second, - BiFunction function) - { - if (first.isPresent() && second.isPresent()) { - return Optional.of(function.apply(first.get(), second.get())); - } else { - return Optional.empty(); - } - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java deleted file mode 100644 index 4f06efc..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -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 Collections.emptySet(); - } - - public static Set set(T 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 difference(Set set1, Set set2) { - HashSet result = new HashSet<>(set1); - result.removeAll(set2); - return result; - } - - public static Set toSet(Iterable iterable) { - return stream(iterable).collect(Collectors.toSet()); - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothStrings.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothStrings.java deleted file mode 100644 index e5f98aa..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothStrings.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -public class MammothStrings { - public static String trimLeft(String value, char character) { - int index = 0; - while (index < value.length() && value.charAt(index) == character) { - index++; - } - return value.substring(index); - } - - public static boolean isNullOrEmpty(String value) { - return value == null || value.isEmpty(); - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Maps.java b/src/main/java/org/zwobble/mammoth/internal/util/Maps.java new file mode 100644 index 0000000..76ce5cf --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Maps.java @@ -0,0 +1,97 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.*; +import java.util.function.Function; + +public class Maps { + public static Map map() { + return Collections.emptyMap(); + } + + public static Map map(K key1, V value1) { + return Collections.singletonMap(key1, value1); + } + + public static Map map(K key1, V value1, K key2, V value2) { + Map map = new HashMap<>(); + map.put(key1, value1); + map.put(key2, value2); + return map; + } + + public static Map map(K key1, V value1, K key2, V value2, K key3, V value3) { + Map map = new HashMap<>(); + map.put(key1, value1); + map.put(key2, value2); + map.put(key3, value3); + return map; + } + + public static Map.Entry entry(K key, V value) { + return new AbstractMap.SimpleImmutableEntry(key, value); + } + + public static Optional lookup(Map map, K key) { + return Optional.ofNullable(map.get(key)); + } + + public static Map toMapWithKey(Iterable iterable, Function function) { + return toMap(iterable, element -> entry(function.apply(element), element)); + } + + public static Map toMap(Iterable iterable, Function> function) { + Map map = new HashMap<>(); + for (T element : iterable) { + Map.Entry entry = function.apply(element); + map.put(entry.getKey(), entry.getValue()); + } + return map; + } + + public static Map> toMultiMapWithKey(Iterable iterable, Function function) { + return toMultiMap(iterable, element -> entry(function.apply(element), element)); + } + + public static Map> toMultiMap(Iterable iterable, Function> function) { + Map> map = new HashMap<>(); + for (T element : iterable) { + Map.Entry pair = function.apply(element); + map.computeIfAbsent(pair.getKey(), key -> new ArrayList()) + .add(pair.getValue()); + } + return map; + } + + public static Map eagerMapKeys(Map map, Function function) { + Map result = new HashMap<>(); + for (Map.Entry element : map.entrySet()) { + result.put(function.apply(element.getKey()), element.getValue()); + } + return result; + } + + public static Map eagerMapValues(Map map, Function function) { + Map result = new HashMap<>(); + for (Map.Entry element : map.entrySet()) { + result.put(element.getKey(), function.apply(element.getValue())); + } + return result; + } + + public static Builder builder() { + return new Builder<>(); + } + + public static class Builder { + private final Map values = new HashMap<>(); + + public Builder put(K key, V value) { + values.put(key, value); + return this; + } + + public Map build() { + return values; + } + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Optionals.java b/src/main/java/org/zwobble/mammoth/internal/util/Optionals.java new file mode 100644 index 0000000..d98b579 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Optionals.java @@ -0,0 +1,38 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.Optional; +import java.util.function.BiFunction; + +public class Optionals { + public static Optional first(Optional first, Optional second) { + if (first.isPresent()) { + return first; + } else { + return second; + } + } + + public static Optional flatMap( + Optional first, + Optional second, + BiFunction> function) + { + if (first.isPresent() && second.isPresent()) { + return function.apply(first.get(), second.get()); + } else { + return Optional.empty(); + } + } + + public static Optional map( + Optional first, + Optional second, + BiFunction function) + { + if (first.isPresent() && second.isPresent()) { + return Optional.of(function.apply(first.get(), second.get())); + } else { + return Optional.empty(); + } + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Sets.java b/src/main/java/org/zwobble/mammoth/internal/util/Sets.java new file mode 100644 index 0000000..c979740 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Sets.java @@ -0,0 +1,36 @@ +package org.zwobble.mammoth.internal.util; + +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.Iterables.stream; + +public class Sets { + public static Set set() { + return Collections.emptySet(); + } + + public static Set set(T 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 difference(Set set1, Set set2) { + HashSet result = new HashSet<>(set1); + result.removeAll(set2); + return result; + } + + public static Set toSet(Iterable iterable) { + return stream(iterable).collect(Collectors.toSet()); + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Strings.java b/src/main/java/org/zwobble/mammoth/internal/util/Strings.java new file mode 100644 index 0000000..4f173ad --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Strings.java @@ -0,0 +1,15 @@ +package org.zwobble.mammoth.internal.util; + +public class Strings { + public static String trimLeft(String value, char character) { + int index = 0; + while (index < value.length() && value.charAt(index) == character) { + index++; + } + return value.substring(index); + } + + public static boolean isNullOrEmpty(String value) { + return value == null || value.isEmpty(); + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java b/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java index 82872bd..2287723 100644 --- a/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java +++ b/src/main/java/org/zwobble/mammoth/internal/xml/NamespacePrefixes.java @@ -4,7 +4,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; -import static org.zwobble.mammoth.internal.util.MammothMaps.lookup; +import static org.zwobble.mammoth.internal.util.Maps.lookup; public class NamespacePrefixes { public static Builder builder() { 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 e82b14e..2910fd0 100644 --- a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java +++ b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java @@ -4,9 +4,9 @@ import java.util.List; import java.util.Map; import java.util.Optional; -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; +import static org.zwobble.mammoth.internal.util.Iterables.*; +import static org.zwobble.mammoth.internal.util.Lists.toList; +import static org.zwobble.mammoth.internal.util.Maps.lookup; public class XmlElement implements XmlNode, XmlElementLike { private final String name; diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElementList.java b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElementList.java index ef41c4e..a14c39c 100644 --- a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElementList.java +++ b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElementList.java @@ -3,7 +3,7 @@ package org.zwobble.mammoth.internal.xml; import java.util.Iterator; import java.util.List; -import static org.zwobble.mammoth.internal.util.MammothLists.eagerFlatMap; +import static org.zwobble.mammoth.internal.util.Lists.eagerFlatMap; public class XmlElementList implements Iterable { private final List elements; diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/XmlNodes.java b/src/main/java/org/zwobble/mammoth/internal/xml/XmlNodes.java index 3b4bab7..e5155ae 100644 --- a/src/main/java/org/zwobble/mammoth/internal/xml/XmlNodes.java +++ b/src/main/java/org/zwobble/mammoth/internal/xml/XmlNodes.java @@ -3,8 +3,8 @@ package org.zwobble.mammoth.internal.xml; import java.util.List; import java.util.Map; -import static org.zwobble.mammoth.internal.util.MammothLists.list; -import static org.zwobble.mammoth.internal.util.MammothMaps.map; +import static org.zwobble.mammoth.internal.util.Lists.list; +import static org.zwobble.mammoth.internal.util.Maps.map; public class XmlNodes { public static XmlElement element(String name) { diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/parsing/XmlParser.java b/src/main/java/org/zwobble/mammoth/internal/xml/parsing/XmlParser.java index 08a2c4e..c76e989 100644 --- a/src/main/java/org/zwobble/mammoth/internal/xml/parsing/XmlParser.java +++ b/src/main/java/org/zwobble/mammoth/internal/xml/parsing/XmlParser.java @@ -9,8 +9,8 @@ import java.util.ArrayDeque; import java.util.Deque; import java.util.Map; -import static org.zwobble.mammoth.internal.util.MammothMaps.eagerMapKeys; -import static org.zwobble.mammoth.internal.util.MammothStrings.isNullOrEmpty; +import static org.zwobble.mammoth.internal.util.Maps.eagerMapKeys; +import static org.zwobble.mammoth.internal.util.Strings.isNullOrEmpty; public class XmlParser { private final NamespacePrefixes namespaces; -- cgit v1.2.3