1 cananian 1.2.2.3 // Operand.java, created Sun Sep 13 22:49:23 1998 by cananian 2 cananian 1.2 // Copyright (C) 1998 C. Scott Ananian <cananian@alumni.princeton.edu> 3 cananian 1.2 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 cananian 1.1 package harpoon.IR.Bytecode; 5 cananian 1.1 6 cananian 1.2.2.1 import harpoon.Util.ArrayFactory; 7 cananian 1.1 8 cananian 1.1 /** 9 cananian 1.1 * <code>Operand</code> represents the operands of a java bytecode 10 cananian 1.1 * instruction. 11 cananian 1.1 * 12 cananian 1.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 13 cananian 1.3 * @version $Id: Operand.java,v 1.3 2002/02/25 21:04:17 cananian Exp $ 14 cananian 1.1 * @see Instr 15 cananian 1.1 * @see InGen 16 cananian 1.1 * @see OpConstant 17 cananian 1.1 * @see OpLocalVariable 18 cananian 1.1 * @see OpClass 19 cananian 1.1 * @see OpMethod 20 cananian 1.1 * @see OpField 21 cananian 1.1 */ 22 cananian 1.1 public abstract class Operand { 23 cananian 1.1 /** Return a human-readable representation of this Operand. */ 24 cananian 1.1 public abstract String toString(); // force a reimplementation. 25 cananian 1.2.2.1 26 cananian 1.2.2.1 /** Array factory: returns new <code>Operand[]</code>. */ 27 cananian 1.2.2.1 public static final ArrayFactory arrayFactory = 28 cananian 1.2.2.1 new ArrayFactory() { 29 cananian 1.2.2.1 public Object[] newArray(int len) { return new Operand[len]; } 30 cananian 1.2.2.1 }; 31 cananian 1.1 }