aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-core/src/main/java/com/github/javaparser/utils
diff options
context:
space:
mode:
authorDanny van Bruggen <hexagonaal@gmail.com>2017-08-26 22:03:08 +0200
committerDanny van Bruggen <hexagonaal@gmail.com>2017-08-26 22:03:08 +0200
commit52193c2d6d642dff92a6dffd892c33e459a36d49 (patch)
treef67e246848428a9f0086abb5f2280277c40214fb /javaparser-core/src/main/java/com/github/javaparser/utils
parent77fe1130d88ca49908f8987c941321bacb55b92a (diff)
downloadplatform_external_javaparser-52193c2d6d642dff92a6dffd892c33e459a36d49.tar.gz
platform_external_javaparser-52193c2d6d642dff92a6dffd892c33e459a36d49.tar.bz2
platform_external_javaparser-52193c2d6d642dff92a6dffd892c33e459a36d49.zip
Fix remove and clean code
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/utils')
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java29
1 files changed, 13 insertions, 16 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java b/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java
index 55c5489a8..ab21b9178 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/utils/VisitorMap.java
@@ -12,25 +12,22 @@ import java.util.Set;
import java.util.stream.Collectors;
/**
- * A facade for another java.util.Map that overrides the equals and hashcode calculation of the added nodes
- * by using another visitor for those methods.
+ * A map that overrides the equals and hashcode calculation of the added nodes
+ * by using another equals and hashcode visitor for those methods.
*/
public class VisitorMap<N extends Node, V> implements Map<N, V> {
- // Cheat generics by removing them
- private final Map<EqualsHashcodeOverridingFacade, V> innerMap;
+ private final Map<EqualsHashcodeOverridingFacade, V> innerMap = new HashMap<>();
private final GenericVisitor<Integer, Void> hashcodeVisitor;
private final GenericVisitor<Boolean, Visitable> equalsVisitor;
/**
- * Wrap a map and use different visitors for equals and hashcode.
+ * Pass the visitors to use for equals and hashcode.
*/
public VisitorMap(GenericVisitor<Integer, Void> hashcodeVisitor, GenericVisitor<Boolean, Visitable> equalsVisitor) {
- this.innerMap = new HashMap<>();
this.hashcodeVisitor = hashcodeVisitor;
this.equalsVisitor = equalsVisitor;
}
-
-
+
@Override
public int size() {
return innerMap.size();
@@ -53,18 +50,18 @@ public class VisitorMap<N extends Node, V> implements Map<N, V> {
@Override
public V get(Object key) {
- return (V) innerMap.get(new EqualsHashcodeOverridingFacade((N) key));
+ return innerMap.get(new EqualsHashcodeOverridingFacade((N) key));
}
@Override
public V put(N key, V value) {
- return (V) innerMap.put(new EqualsHashcodeOverridingFacade(key), value);
+ return innerMap.put(new EqualsHashcodeOverridingFacade(key), value);
}
private class EqualsHashcodeOverridingFacade implements Visitable {
private final N overridden;
- public EqualsHashcodeOverridingFacade(N overridden) {
+ EqualsHashcodeOverridingFacade(N overridden) {
this.overridden = overridden;
}
@@ -94,12 +91,12 @@ public class VisitorMap<N extends Node, V> implements Map<N, V> {
@Override
public V remove(Object key) {
- return (V) innerMap.remove(key);
+ return innerMap.remove(new EqualsHashcodeOverridingFacade((N) key));
}
@Override
public void putAll(Map<? extends N, ? extends V> m) {
- m.forEach((key, value) -> this.put(key,value));
+ m.forEach(this::put);
}
@Override
@@ -109,7 +106,7 @@ public class VisitorMap<N extends Node, V> implements Map<N, V> {
@Override
public Set<N> keySet() {
- return ((Map<EqualsHashcodeOverridingFacade, V>) innerMap).keySet().stream()
+ return innerMap.keySet().stream()
.map(k -> k.overridden)
.collect(Collectors.toSet());
}
@@ -121,8 +118,8 @@ public class VisitorMap<N extends Node, V> implements Map<N, V> {
@Override
public Set<Entry<N, V>> entrySet() {
- return ((Map<EqualsHashcodeOverridingFacade, V>) innerMap).entrySet().stream()
- .map(e -> new HashMap.SimpleEntry<N, V>(e.getKey().overridden, e.getValue()))
+ return innerMap.entrySet().stream()
+ .map(e -> new HashMap.SimpleEntry<>(e.getKey().overridden, e.getValue()))
.collect(Collectors.toSet());
}
}