This is an automated email from the git hooks/post-receive script. eugene-guest pushed a commit to annotated tag OpenBSD in repository testng.
commit acff4d0df99822f580ff03b532cfba59ab4c1a9f Author: Julien Herr <[email protected]> Date: Mon Apr 13 14:46:23 2015 +0200 Use inheritance for collections classes --- .../java/org/testng/collections/ListMultiMap.java | 105 +-------------------- .../{SetMultiMap.java => MultiMap.java} | 36 +++---- .../java/org/testng/collections/SetMultiMap.java | 103 +------------------- 3 files changed, 24 insertions(+), 220 deletions(-) diff --git a/src/main/java/org/testng/collections/ListMultiMap.java b/src/main/java/org/testng/collections/ListMultiMap.java index 88d27e6..5750c84 100644 --- a/src/main/java/org/testng/collections/ListMultiMap.java +++ b/src/main/java/org/testng/collections/ListMultiMap.java @@ -1,115 +1,16 @@ package org.testng.collections; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; /** * A container to hold lists indexed by a key. */ -public class ListMultiMap<K, V> { - private final Map<K, List<V>> m_objects = Maps.newHashMap(); - - public boolean put(K key, V method) { - boolean setExists = true; - List<V> l = m_objects.get(key); - if (l == null) { - setExists = false; - l = Lists.newArrayList(); - m_objects.put(key, l); - } - return l.add(method) && setExists; - } - - public List<V> get(K key) { - return m_objects.get(key); - } - - @Deprecated - public List<K> getKeys() { - return new ArrayList<>(m_objects.keySet()); - } - - public Set<K> keySet() { - return new HashSet(m_objects.keySet()); - } - - public boolean containsKey(K k) { - return m_objects.containsKey(k); - } +public class ListMultiMap<K, V> extends MultiMap<K, V, List<V>> { @Override - public String toString() { - StringBuilder result = new StringBuilder(); - Set<K> indices = keySet(); - for (K i : indices) { - result.append("\n ").append(i).append(" <-- "); - for (Object o : m_objects.get(i)) { - result.append(o).append(" "); - } - } - return result.toString(); - } - - public boolean isEmpty() { - return m_objects.size() == 0; - } - - @Deprecated - public int getSize() { - return size(); - } - - public int size() { - return m_objects.size(); - } - - @Deprecated - public List<V> remove(K key) { - return removeAll(key); - } - - public boolean remove(K key, V value) { - List<V> values = get(key); - if (values == null) { - return false; - } - return values.remove(value); - } - - public List<V> removeAll(K key) { - return m_objects.remove(key); - } - - @Deprecated - public Set<Entry<K, List<V>>> getEntrySet() { - return entrySet(); - } - - public Set<Entry<K, List<V>>> entrySet() { - return m_objects.entrySet(); - } - - @Deprecated - public Collection<List<V>> getValues() { - return values(); - } - - public Collection<List<V>> values() { - return m_objects.values(); - } - - public boolean putAll(K k, Collection<? extends V> values) { - boolean result = false; - for (V v : values) { - result = put(k, v) || result; - } - return result; + protected List<V> createValue() { + return Lists.newArrayList(); } @Deprecated diff --git a/src/main/java/org/testng/collections/SetMultiMap.java b/src/main/java/org/testng/collections/MultiMap.java similarity index 72% copy from src/main/java/org/testng/collections/SetMultiMap.java copy to src/main/java/org/testng/collections/MultiMap.java index 9576bd1..c606645 100644 --- a/src/main/java/org/testng/collections/SetMultiMap.java +++ b/src/main/java/org/testng/collections/MultiMap.java @@ -1,35 +1,35 @@ package org.testng.collections; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; +import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; -/** - * A container to hold sets indexed by a key. - */ -public class SetMultiMap<K, V> { - private final Map<K, Set<V>> m_objects = Maps.newHashMap(); +public abstract class MultiMap<K, V, C extends Collection<V>> { + protected final Map<K, C> m_objects = Maps.newHashMap(); + + protected abstract C createValue(); public boolean put(K key, V method) { boolean setExists = true; - Set<V> l = m_objects.get(key); + C l = m_objects.get(key); if (l == null) { setExists = false; - l = Sets.newHashSet(); + l = createValue(); m_objects.put(key, l); } return l.add(method) && setExists; } - public Set<V> get(K key) { + public C get(K key) { return m_objects.get(key); } @Deprecated - public Set<K> getKeys() { - return keySet(); + public List<K> getKeys() { + return new ArrayList<>(keySet()); } public Set<K> keySet() { @@ -67,37 +67,37 @@ public class SetMultiMap<K, V> { } @Deprecated - public Set<V> remove(K key) { + public C remove(K key) { return removeAll(key); } public boolean remove(K key, V value) { - Set<V> values = get(key); + C values = get(key); if (values == null) { return false; } return values.remove(value); } - public Set<V> removeAll(K key) { + public C removeAll(K key) { return m_objects.remove(key); } @Deprecated - public Set<Entry<K, Set<V>>> getEntrySet() { + public Set<Map.Entry<K, C>> getEntrySet() { return entrySet(); } - public Set<Entry<K, Set<V>>> entrySet() { + public Set<Map.Entry<K, C>> entrySet() { return m_objects.entrySet(); } @Deprecated - public Collection<Set<V>> getValues() { + public Collection<C> getValues() { return values(); } - public Collection<Set<V>> values() { + public Collection<C> values() { return m_objects.values(); } diff --git a/src/main/java/org/testng/collections/SetMultiMap.java b/src/main/java/org/testng/collections/SetMultiMap.java index 9576bd1..f85ba25 100644 --- a/src/main/java/org/testng/collections/SetMultiMap.java +++ b/src/main/java/org/testng/collections/SetMultiMap.java @@ -1,111 +1,14 @@ package org.testng.collections; -import java.util.Collection; -import java.util.HashSet; -import java.util.Map; -import java.util.Map.Entry; import java.util.Set; /** * A container to hold sets indexed by a key. */ -public class SetMultiMap<K, V> { - private final Map<K, Set<V>> m_objects = Maps.newHashMap(); - - public boolean put(K key, V method) { - boolean setExists = true; - Set<V> l = m_objects.get(key); - if (l == null) { - setExists = false; - l = Sets.newHashSet(); - m_objects.put(key, l); - } - return l.add(method) && setExists; - } - - public Set<V> get(K key) { - return m_objects.get(key); - } - - @Deprecated - public Set<K> getKeys() { - return keySet(); - } - - public Set<K> keySet() { - return new HashSet(m_objects.keySet()); - } - - public boolean containsKey(K k) { - return m_objects.containsKey(k); - } +public class SetMultiMap<K, V> extends MultiMap<K, V, Set<V>> { @Override - public String toString() { - StringBuilder result = new StringBuilder(); - Set<K> indices = keySet(); - for (K i : indices) { - result.append("\n ").append(i).append(" <-- "); - for (Object o : m_objects.get(i)) { - result.append(o).append(" "); - } - } - return result.toString(); - } - - public boolean isEmpty() { - return m_objects.size() == 0; - } - - @Deprecated - public int getSize() { - return size(); - } - - public int size() { - return m_objects.size(); - } - - @Deprecated - public Set<V> remove(K key) { - return removeAll(key); - } - - public boolean remove(K key, V value) { - Set<V> values = get(key); - if (values == null) { - return false; - } - return values.remove(value); - } - - public Set<V> removeAll(K key) { - return m_objects.remove(key); - } - - @Deprecated - public Set<Entry<K, Set<V>>> getEntrySet() { - return entrySet(); - } - - public Set<Entry<K, Set<V>>> entrySet() { - return m_objects.entrySet(); - } - - @Deprecated - public Collection<Set<V>> getValues() { - return values(); - } - - public Collection<Set<V>> values() { - return m_objects.values(); - } - - public boolean putAll(K k, Collection<? extends V> values) { - boolean result = false; - for (V v : values) { - result = put(k, v) || result; - } - return result; + protected Set<V> createValue() { + return Sets.newHashSet(); } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

