1 package Analysis.SSJava;
3 import java.util.HashSet;
4 import java.util.Hashtable;
5 import java.util.Iterator;
8 public class MultiSourceMap<T, V> {
10 Hashtable<NTuple<T>, Set<V>> map;
12 public MultiSourceMap() {
13 map = new Hashtable<NTuple<T>, Set<V>>();
16 public void put(NTuple<T> key, Set<V> set) {
20 public void put(NTuple<T> key, NTuple<T> setKey, Set<V> set) {
22 if (!map.containsKey(setKey)) {
28 public void put(NTuple<T> key, NTuple<T> setKey, V value) {
31 if (map.containsKey(key)) {
32 Set<V> set = map.get(key);
36 Set<V> set = new HashSet<V>();
41 assert map.containsKey(setKey);
42 Set<V> set = map.get(setKey);
48 public Set<V> get(NTuple<T> key) {
52 public String toString() {
53 return map.toString();
56 public Hashtable<NTuple<T>, Set<V>> getMappingByStartedWith(NTuple<T> in) {
58 Hashtable<NTuple<T>, Set<V>> rtrMapping = new Hashtable<NTuple<T>, Set<V>>();
60 Set<NTuple<T>> keySet = map.keySet();
61 for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
62 NTuple<T> key = (NTuple<T>) iterator.next();
63 if (key.startsWith(in)) {
64 rtrMapping.put(key, map.get(key));
72 public Set<NTuple<T>> keySet() {