1 cananian 1.1.2.1 // HInitializer.java, created Sat Nov 28 13:54:33 1998 by cananian 2 cananian 1.1.2.1 // Copyright (C) 1998 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.ClassFile; 5 cananian 1.1.2.1 6 cananian 1.1.2.1 import harpoon.Util.ArrayFactory; 7 cananian 1.1.2.1 8 cananian 1.1.2.1 import java.lang.reflect.Modifier; 9 cananian 1.1.2.1 10 cananian 1.1.2.1 /** 11 cananian 1.1.2.1 * An <code>HInitializer</code> provides information about a class 12 cananian 1.1.2.1 * initializer method. 13 cananian 1.1.2.1 * 14 cananian 1.1.2.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 15 cananian 1.3 * @version $Id: HInitializer.java,v 1.3 2002/04/10 03:04:15 cananian Exp $ 16 cananian 1.1.2.1 * @see HMethod 17 cananian 1.1.2.1 * @see HConstructor 18 cananian 1.1.2.1 */ 19 cananian 1.1.2.1 20 cananian 1.1.2.2 public interface HInitializer extends HMethod { 21 cananian 1.1.2.1 /** 22 cananian 1.1.2.1 * Returns the name of this class initializer, as a string. This is 23 cananian 1.1.2.1 * always the string "<code><clinit></code>". 24 cananian 1.1.2.1 */ 25 cananian 1.1.2.2 public String getName(); 26 cananian 1.1.2.1 27 cananian 1.1.2.3 /** Determines whether this <code>HInitializer</code> is an interface 28 cananian 1.1.2.3 * method. 29 cananian 1.1.2.3 * @return false for all class initializers (even class initializers 30 cananian 1.1.2.3 * belonging to interface classes) 31 cananian 1.1.2.3 */ 32 cananian 1.1.2.3 public boolean isInterfaceMethod(); 33 cananian 1.1.2.3 34 cananian 1.1.2.1 /** 35 cananian 1.1.2.1 * Returns a hashcode for this class initializer. This hashcode is 36 cananian 1.1.2.1 * computed as the exclusive-or of the hashcodes of the initializer's 37 cananian 1.1.2.1 * declaring class and the string "<code><clinit></code>". 38 cananian 1.1.2.1 */ 39 cananian 1.1.2.2 public int hashCode(); 40 cananian 1.1.2.1 41 cananian 1.1.2.1 /** Array factory: returns new <code>HInitializer[]</code>. */ 42 cananian 1.2.2.1 public static final ArrayFactory<HInitializer> arrayFactory = 43 cananian 1.1.2.2 Factories.hinitializerArrayFactory; 44 cananian 1.2 }