com.ibm.wala.util.collections
Class MapUtil

java.lang.Object
  extended by com.ibm.wala.util.collections.MapUtil

public class MapUtil
extends java.lang.Object

utilities for managing Maps


Constructor Summary
MapUtil()
           
 
Method Summary
static
<K,K2,V> java.util.Map<K2,V>
findOrCreateMap(java.util.Map<K,java.util.Map<K2,V>> M, K key)
           
static
<K,T> java.util.Set<T>
findOrCreateSet(java.util.Map<K,java.util.Set<T>> M, K key)
           
static
<K,V> java.util.WeakHashMap<K,V>
findOrCreateWeakHashMap(java.util.Map<java.lang.Object,java.util.WeakHashMap<K,V>> M, java.lang.Object key)
           
static
<K,V> java.util.Map<java.util.Set<K>,V>
groupKeysByValue(java.util.Map<K,V> m)
           
static
<K,V> java.util.Map<V,java.util.Set<K>>
inverseMap(java.util.Map<K,java.util.Set<V>> m)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MapUtil

public MapUtil()
Method Detail

findOrCreateSet

public static <K,T> java.util.Set<T> findOrCreateSet(java.util.Map<K,java.util.Set<T>> M,
                                                     K key)
Parameters:
M - a mapping from Object -> Set
key -
Returns:
the Set corresponding to key in M; create one if needed
Throws:
java.lang.IllegalArgumentException - if M is null

findOrCreateMap

public static <K,K2,V> java.util.Map<K2,V> findOrCreateMap(java.util.Map<K,java.util.Map<K2,V>> M,
                                                           K key)
Parameters:
M - a mapping from Object -> Map
key -
Returns:
the Map corresponding to key in M; create one if needed
Throws:
java.lang.IllegalArgumentException - if M is null

findOrCreateWeakHashMap

public static <K,V> java.util.WeakHashMap<K,V> findOrCreateWeakHashMap(java.util.Map<java.lang.Object,java.util.WeakHashMap<K,V>> M,
                                                                       java.lang.Object key)
Parameters:
M - a mapping from Object -> WeakHashMap
key -
Returns:
the WeakHashMap corresponding to key in M; create one if needed
Throws:
java.lang.IllegalArgumentException - if M is null

inverseMap

public static <K,V> java.util.Map<V,java.util.Set<K>> inverseMap(java.util.Map<K,java.util.Set<V>> m)
Parameters:
m - a map from key -> Set
Returns:
inverted map, value -> Set
Throws:
java.lang.IllegalArgumentException - if m is null

groupKeysByValue

public static <K,V> java.util.Map<java.util.Set<K>,V> groupKeysByValue(java.util.Map<K,V> m)