1 cananian 1.1.4.1 // HInitializerSyn.java, created Tue Jan 11 02:40:46 2000 by cananian
 2 cananian 1.1.4.2 // Copyright (C) 2000 C. Scott Ananian <cananian@alumni.princeton.edu>
 3 cananian 1.1.4.1 // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 cananian 1.1.4.1 package harpoon.ClassFile;
 5 cananian 1.1.4.1 
 6 cananian 1.1.4.1 import harpoon.Util.Util;
 7 cananian 1.1.4.1 
 8 cananian 1.1.4.1 import java.lang.reflect.Modifier;
 9 cananian 1.1.4.1 /**
10 cananian 1.1.4.1  * An <code>HInitializerSyn</code> is a mutable representation of
11 cananian 1.1.4.1  * a class initializer method.
12 cananian 1.1.4.1  * 
13 cananian 1.1.4.1  * @author  C. Scott Ananian <cananian@alumni.princeton.edu>
14 cananian 1.4      * @version $Id: HInitializerSyn.java,v 1.4 2002/04/10 03:04:15 cananian Exp $
15 cananian 1.1.4.1  */
16 cananian 1.1.4.1 class HInitializerSyn extends HMethodSyn implements HInitializer {
17 cananian 1.1.4.1     
18 cananian 1.1.4.1     /** Create a new class initializer in class <code>parent</code>. */
19 cananian 1.1.4.1     public HInitializerSyn(HClassSyn parent) {
20 cananian 1.1.4.1         super(parent, "<clinit>", "()V");
21 cananian 1.1.4.1         this.modifiers = Modifier.STATIC | Modifier.FINAL;
22 cananian 1.1.4.1     }
23 cananian 1.1.4.1     
24 cananian 1.1.4.3     public boolean isInterfaceMethod() { return false; }
25 vivien   1.1.4.4     public int hashCode() { return HInitializerImpl.hashCode(this); }
26 cananian 1.1.4.3 
27 cananian 1.1.4.1     // can't really change any of the properties of a class initializer.
28 cananian 1.3.2.1     public void addModifiers(int m) { assert m==0; }
29 cananian 1.3.2.1     public void setModifiers(int m) { assert m==getModifiers(); }
30 cananian 1.3.2.1     public void removeModifiers(int m) { assert (m&getModifiers())==0; }
31 vivien   1.1.4.4     public void setReturnType(HClass returnType) {
32 cananian 1.3.2.1         assert returnType==HClass.Void;
33 vivien   1.1.4.4     }
34 cananian 1.3.2.1     public void addExceptionType(HClass exceptionType) { assert false; }
35 vivien   1.1.4.4     public void setExceptionTypes(HClass[] exceptionTypes) {
36 cananian 1.3.2.1         assert exceptionTypes.length==0;
37 vivien   1.1.4.4     }
38 cananian 1.3.2.1     public void removeExceptionType(HClass exceptionType) { assert false; }
39 vivien   1.1.4.4     public void setSynthetic(boolean isSynthetic) {
40 cananian 1.3.2.1         assert isSynthetic==isSynthetic();
41 vivien   1.1.4.4     }
42 cananian 1.2     }