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     }