2 import java.util.Vector;
3 import IR.TypeDescriptor;
4 import IR.MethodDescriptor;
6 public class CreateObjectNode extends ExpressionNode {
14 public CreateObjectNode(TypeDescriptor type, boolean isglobal, boolean isdisjoint) {
16 argumentlist=new Vector();
17 this.isglobal=isglobal;
18 this.isdisjoint=isdisjoint;
21 public boolean isGlobal() {
25 public boolean isDisjoint() {
29 public void addFlagEffects(FlagEffects fe) {
33 public FlagEffects getFlagEffects() {
37 public void addArgument(ExpressionNode en) {
41 public void setConstructor(MethodDescriptor md) {
45 public MethodDescriptor getConstructor() {
49 public TypeDescriptor getType() {
53 public int numArgs() {
54 return argumentlist.size();
57 public ExpressionNode getArg(int i) {
58 return (ExpressionNode) argumentlist.get(i);
61 public String printNode(int indent) {
63 boolean isarray=td.isArray();
65 st="new "+td.toString()+"[";
67 st="new "+td.toString()+"(";
68 for(int i=0; i<argumentlist.size(); i++) {
69 ExpressionNode en=(ExpressionNode)argumentlist.get(i);
70 st+=en.printNode(indent);
71 if ((i+1)!=argumentlist.size()) {
85 return Kind.CreateObjectNode;