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>&lt;clinit&gt;</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>&lt;clinit&gt;</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     }