aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-26 10:59:23 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-26 10:59:23 +0000
commit56a29e5254b292dc98a9496672739e97f6b159d8 (patch)
treed485543c3a83b5db488b9755be57d15078fed62d /src/main/java
parentb3f9d728ce6de7a1b29c53a181f70807b285bb66 (diff)
Add eagerMapKeys
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java8
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/xml/parsing/XmlParser.java9
2 files changed, 10 insertions, 7 deletions
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 873f90c..4ca3557 100644
--- a/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java
+++ b/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java
@@ -56,6 +56,14 @@ public class MammothMaps {
return map;
}
+ public static <K1, K2, V> Map<K2, V> eagerMapKeys(Map<K1, V> map, Function<K1, K2> function) {
+ Map<K2, V> result = new HashMap<>();
+ for (Map.Entry<K1, V> element : map.entrySet()) {
+ result.put(function.apply(element.getKey()), element.getValue());
+ }
+ return result;
+ }
+
public static <K, V1, V2> Map<K, V2> eagerMapValues(Map<K, V1> map, Function<V1, V2> function) {
Map<K, V2> result = new HashMap<>();
for (Map.Entry<K, V1> element : map.entrySet()) {
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 29aa02b..fdd3dff 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,7 +9,7 @@ import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Map;
-import static java.util.stream.Collectors.toMap;
+import static org.zwobble.mammoth.internal.util.MammothMaps.eagerMapKeys;
import static org.zwobble.mammoth.internal.util.MammothMaps.lookup;
import static org.zwobble.mammoth.internal.util.MammothStrings.isNullOrEmpty;
@@ -45,12 +45,7 @@ public class XmlParser {
@Override
public void startElement(ElementName name, Map<ElementName, String> attributes) {
- Map<String, String> simpleAttributes = attributes
- .entrySet()
- .stream()
- .collect(toMap(
- entry -> readName(entry.getKey()),
- entry -> entry.getValue()));
+ Map<String, String> simpleAttributes = eagerMapKeys(attributes, this::readName);
XmlElementBuilder element = new XmlElementBuilder(readName(name), simpleAttributes);
elementStack.add(element);
}