1 cananian 1.1.2.1 // ConstMapProxy.java, created Wed Nov 15 21:37:39 2000 by cananian 2 cananian 1.1.2.2 // Copyright (C) 2000 C. Scott Ananian <cananian@alumni.princeton.edu> 3 cananian 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 cananian 1.1.2.1 package harpoon.Analysis.Maps; 5 cananian 1.1.2.1 6 cananian 1.1.2.1 import harpoon.ClassFile.HCodeAndMaps; 7 cananian 1.1.2.1 import harpoon.ClassFile.HCodeElement; 8 cananian 1.1.2.1 import harpoon.Temp.Temp; 9 cananian 1.1.2.1 /** 10 cananian 1.1.2.1 * A <code>ConstMapProxy</code> implements a <code>ConstMap</code> for 11 cananian 1.1.2.1 * a cloned <code>HCode</code> given the <code>HCodeAndMaps</code> which 12 cananian 1.1.2.1 * specifies its relationship to an <code>HCode</code> for which a 13 cananian 1.1.2.1 * <code>ConstMap</code> is known. 14 cananian 1.1.2.1 * 15 cananian 1.1.2.2 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 16 cananian 1.3 * @version $Id: ConstMapProxy.java,v 1.3 2002/09/02 19:23:26 cananian Exp $ 17 cananian 1.1.2.1 */ 18 cananian 1.3 public class ConstMapProxy<HCE extends HCodeElement> 19 cananian 1.3 extends MapProxy<HCE> implements ConstMap<HCE> { 20 cananian 1.3 private ConstMap<HCE> cm; 21 cananian 1.1.2.1 /** Creates a <code>ConstMapProxy</code>. */ 22 cananian 1.3 public ConstMapProxy(HCodeAndMaps<HCE> hcam, ConstMap<HCE> cm) { 23 cananian 1.1.2.1 super(hcam); 24 cananian 1.1.2.1 this.cm = cm; 25 cananian 1.1.2.1 } 26 cananian 1.3 public boolean isConst(HCE hce, Temp t) { 27 cananian 1.1.2.1 return cm.isConst(n2o(hce), n2o(t)); 28 cananian 1.1.2.1 } 29 cananian 1.3 public Object constMap(HCE hce, Temp t) { 30 cananian 1.1.2.1 return cm.constMap(n2o(hce), n2o(t)); 31 cananian 1.1.2.1 } 32 cananian 1.2 }