checking in changes
[IRC.git] / Robust / src / IR / Tree / CreateObjectNode.java
1 package IR.Tree;
2 import java.util.Vector;
3 import IR.TypeDescriptor;
4 import IR.MethodDescriptor;
5
6 public class CreateObjectNode extends ExpressionNode {
7     TypeDescriptor td;
8     Vector argumentlist;
9     MethodDescriptor md;
10
11     public CreateObjectNode(TypeDescriptor type) {
12         td=type;
13         argumentlist=new Vector();
14     }
15     public void addArgument(ExpressionNode en) {
16         argumentlist.add(en);
17     }
18
19     public void setConstructor(MethodDescriptor md) {
20         this.md=md;
21     }
22
23     public MethodDescriptor getConstructor() {
24         return md;
25     }
26
27     public TypeDescriptor getType() {
28         return td;
29     }
30
31     public int numArgs() {
32         return argumentlist.size();
33     }
34
35     public ExpressionNode getArg(int i) {
36         return (ExpressionNode) argumentlist.get(i);
37     }
38
39     public String printNode(int indent) {
40         String st="new "+td.toString()+"(";
41         for(int i=0;i<argumentlist.size();i++) {
42             ExpressionNode en=(ExpressionNode)argumentlist.get(i);
43             st+=en.printNode(indent);
44             if ((i+1)!=argumentlist.size())
45                 st+=", ";
46         }
47         return st+")";
48     }
49
50     public int kind() {
51         return Kind.CreateObjectNode;
52     }
53 }