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, NTuple<T> setKey, Set<V> set) {
18 if (!map.containsKey(setKey)) {
24 public void put(NTuple<T> key, NTuple<T> setKey, V value) {
27 if (map.containsKey(key)) {
28 Set<V> set = map.get(key);
32 Set<V> set = new HashSet<V>();
37 assert map.containsKey(setKey);
38 Set<V> set = map.get(setKey);
44 public Set<V> get(NTuple<T> key) {
48 public String toString() {
49 return map.toString();
52 public Hashtable<NTuple<T>, Set<V>> getMappingByStartedWith(NTuple<T> in) {
54 Hashtable<NTuple<T>, Set<V>> rtrMapping = new Hashtable<NTuple<T>, Set<V>>();
56 Set<NTuple<T>> keySet = map.keySet();
57 for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
58 NTuple<T> key = (NTuple<T>) iterator.next();
59 if (key.startsWith(in)) {
60 rtrMapping.put(key, map.get(key));