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: