diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-03-26 10:59:23 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-03-26 10:59:23 +0000 |
| commit | 56a29e5254b292dc98a9496672739e97f6b159d8 (patch) | |
| tree | d485543c3a83b5db488b9755be57d15078fed62d | |
| parent | b3f9d728ce6de7a1b29c53a181f70807b285bb66 (diff) | |
Add eagerMapKeys
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java | 8 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/xml/parsing/XmlParser.java | 9 |
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); } |
