1 cananian 1.1.2.1 // ClazNumbering.java, created Sun Mar 10 05:18:51 2002 by cananian 2 cananian 1.1.2.1 // 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.Backend.RuntimeTiny; 5 cananian 1.1.2.1 6 cananian 1.1.2.1 import harpoon.ClassFile.HClass; 7 cananian 1.1.2.1 8 cananian 1.1.2.1 /** 9 cananian 1.1.2.1 * A <code>ClazNumbering</code> maps every instantiated 10 cananian 1.1.2.1 * <code>HClass</code> in the program to a compact contiguous 11 cananian 1.1.2.1 * set of small integers. Every <code>HClass</code> should 12 cananian 1.1.2.1 * have a unique numbering. 13 cananian 1.1.2.1 * 14 cananian 1.1.2.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 15 cananian 1.2 * @version $Id: ClazNumbering.java,v 1.2 2002/04/10 03:03:41 cananian Exp $ 16 cananian 1.1.2.1 */ 17 cananian 1.1.2.1 abstract class ClazNumbering { 18 cananian 1.1.2.1 /** Returns the number associated with the given <code>HClass</code>. */ 19 cananian 1.1.2.1 public abstract int clazNumber(HClass hc); 20 cananian 1.1.2.1 /** Returns the smallest number which this <code>ClazNumbering</code> 21 cananian 1.1.2.1 * will associate with any <code>HClass</code>. */ 22 cananian 1.1.2.1 public abstract int minNumber(); 23 cananian 1.1.2.1 /** Returns the largest number which this <code>ClazNumbering</code> 24 cananian 1.1.2.1 * will associate with any <code>HClass</code>. */ 25 cananian 1.1.2.1 public abstract int maxNumber(); 26 cananian 1.2 }