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 }