1 cananian 1.1.2.1 // TypeMapProxy.java, created Wed Nov 15 20:46:36 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.HClass; 7 cananian 1.1.2.1 import harpoon.ClassFile.HCodeAndMaps; 8 cananian 1.1.2.1 import harpoon.ClassFile.HCodeElement; 9 cananian 1.1.2.1 import harpoon.Temp.Temp; 10 cananian 1.1.2.1 /** 11 cananian 1.1.2.1 * A <code>TypeMapProxy</code> implements a <code>TypeMap</code> for 12 cananian 1.1.2.1 * a cloned <code>HCode</code> given the <code>HCodeAndMaps</code> which 13 cananian 1.1.2.1 * specifies its relationship to an <code>HCode</code> for which a 14 cananian 1.1.2.1 * <code>TypeMap</code> is known. 15 cananian 1.1.2.1 * 16 cananian 1.1.2.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 17 cananian 1.3 * @version $Id: TypeMapProxy.java,v 1.3 2002/09/02 19:23:27 cananian Exp $ 18 cananian 1.1.2.1 */ 19 cananian 1.3 public class TypeMapProxy<HCE extends HCodeElement> 20 cananian 1.3 extends MapProxy<HCE> implements TypeMap<HCE> { 21 cananian 1.3 private TypeMap<HCE> tm; 22 cananian 1.1.2.1 23 cananian 1.1.2.1 /** Creates a <code>TypeMapProxy</code>. */ 24 cananian 1.3 public TypeMapProxy(HCodeAndMaps<HCE> hcam, TypeMap<HCE> tm) { 25 cananian 1.1.2.1 super(hcam); 26 cananian 1.1.2.1 this.tm = tm; 27 cananian 1.1.2.1 } 28 cananian 1.3 public HClass typeMap(HCE hce, Temp t) { 29 cananian 1.1.2.1 return tm.typeMap(n2o(hce), n2o(t)); 30 cananian 1.1.2.1 } 31 cananian 1.2 }