1 salcianu 1.1.2.1 // AbstrRelationMapBased.java, created Fri Jun 30 11:17:10 2000 by salcianu
 2 cananian 1.1.2.3 // Copyright (C) 2000 Alexandru SALCIANU <salcianu@retezat.lcs.mit.edu>
 3 salcianu 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 salcianu 1.1.2.1 package harpoon.Util.DataStructs;
 5 salcianu 1.1.2.1 
 6 salcianu 1.1.2.1 import java.util.Set;
 7 salcianu 1.1.2.1 import java.util.Map;
 8 salcianu 1.1.2.2 import java.util.Collections;
 9 salcianu 1.1.2.1 
10 salcianu 1.1.2.1 import java.io.Serializable;
11 salcianu 1.1.2.1 
12 salcianu 1.1.2.1 
13 salcianu 1.1.2.1 /**
14 salcianu 1.1.2.1  * <code>AbstrRelationMapBased</code>
15 salcianu 1.1.2.1  * 
16 cananian 1.1.2.3  * @author  Alexandru SALCIANU <salcianu@retezat.lcs.mit.edu>
17 cananian 1.2      * @version $Id: AbstrRelationMapBased.java,v 1.2 2002/02/25 21:09:19 cananian Exp $
18 salcianu 1.1.2.1  */
19 salcianu 1.1.2.1 public abstract class AbstrRelationMapBased extends AbstrRelation
20 salcianu 1.1.2.1     implements Serializable {
21 salcianu 1.1.2.1     
22 salcianu 1.1.2.1     // A map from keys to sets of values.
23 salcianu 1.1.2.1     protected Map map = null;
24 salcianu 1.1.2.1     
25 salcianu 1.1.2.1 
26 salcianu 1.1.2.1     public void removeKey(Object key) {
27 salcianu 1.1.2.1         hashCode = 0;
28 salcianu 1.1.2.1         map.remove(key);
29 salcianu 1.1.2.1     }
30 salcianu 1.1.2.1 
31 salcianu 1.1.2.1     
32 salcianu 1.1.2.1     public Set getValues(Object key) {
33 salcianu 1.1.2.2         Set retval = (Set) getValues2(key);
34 salcianu 1.1.2.2         if(retval == null)
35 salcianu 1.1.2.2             retval = Collections.EMPTY_SET;
36 salcianu 1.1.2.2         return retval;
37 salcianu 1.1.2.2     }
38 salcianu 1.1.2.2 
39 salcianu 1.1.2.2     protected Set getValues2(Object key) {      
40 salcianu 1.1.2.1         return (Set) map.get(key);
41 salcianu 1.1.2.1     }
42 salcianu 1.1.2.1 
43 salcianu 1.1.2.1 
44 salcianu 1.1.2.1     public Set keys() {
45 salcianu 1.1.2.1         return map.keySet();
46 salcianu 1.1.2.1     }
47 salcianu 1.1.2.1     
48 cananian 1.2     }