diff options
Diffstat (limited to 'src/main/java/org')
| -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); } |
