1 cananian 1.2.2.2 // HConstructorSyn.java, created Fri Oct 16 3:30:52 1998 by cananian 2 cananian 1.1 // Copyright (C) 1998 C. Scott Ananian <cananian@alumni.princeton.edu> 3 cananian 1.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 cananian 1.1 package harpoon.ClassFile; 5 cananian 1.1 6 cananian 1.2.2.5 import harpoon.Util.Util; 7 cananian 1.1 8 cananian 1.1 /** 9 cananian 1.2 * An <code>HConstructorSyn</code> is a mutable representation of a 10 cananian 1.2 * single constructor for a class. 11 cananian 1.1 * 12 cananian 1.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 13 cananian 1.5 * @version $Id: HConstructorSyn.java,v 1.5 2002/04/10 03:04:15 cananian Exp $ 14 cananian 1.1 */ 15 cananian 1.2.2.5 class HConstructorSyn extends HMethodSyn implements HConstructor { 16 cananian 1.1 17 cananian 1.2.2.5 /** Create a new constructor likes the template, but in 18 cananian 1.2.2.5 * class <code>parent</code>. 19 cananian 1.2.2.5 */ 20 cananian 1.2.2.5 HConstructorSyn(HClassSyn parent, HConstructor template) { 21 cananian 1.2.2.5 super(parent, "<init>", template); 22 cananian 1.4.2.1 assert this.returnType.actual()==HClass.Void; 23 cananian 1.1 } 24 cananian 1.2.2.5 25 cananian 1.2 /** Create a new empty constructor for the specified class 26 cananian 1.2 * with the specified descriptor that 27 cananian 1.2 * throws no checked exceptions. 28 cananian 1.2 * You must putCode to make this constructor valid. 29 cananian 1.1 */ 30 cananian 1.2.2.5 HConstructorSyn(HClassSyn parent, String descriptor) { 31 cananian 1.2.2.5 super(parent, "<init>", descriptor); 32 cananian 1.4.2.1 assert this.returnType.actual()==HClass.Void; 33 cananian 1.2.2.4 } 34 cananian 1.2.2.4 /** Create a new empty constructor in the specified class 35 cananian 1.2.2.4 * with the specified parameter and return types 36 cananian 1.2.2.4 * that throws no checked exceptions. 37 cananian 1.2.2.4 */ 38 cananian 1.2.2.5 HConstructorSyn(HClassSyn parent, HClass[] paramTypes) { 39 cananian 1.2.2.5 super(parent, "<init>", paramTypes, HClass.Void); 40 cananian 1.4.2.1 assert this.returnType.actual()==HClass.Void; 41 cananian 1.1 } 42 cananian 1.1 43 cananian 1.2.2.5 public void setReturnType(HClass returnType) { 44 cananian 1.4.2.1 assert returnType==HClass.Void; 45 cananian 1.1 } 46 cananian 1.2.2.5 public int hashCode() { return HConstructorImpl.hashCode(this); } 47 cananian 1.2.2.5 public String toString() { return HConstructorImpl.toString(this); } 48 cananian 1.1 } 49 cananian 1.1 50 cananian 1.1 // set emacs indentation style. 51 cananian 1.1 // Local Variables: 52 cananian 1.1 // c-basic-offset:2 53 cananian 1.1 // End: