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 }