2 import java.util.Vector;
3 import IR.TypeDescriptor;
4 import IR.MethodDescriptor;
6 public class CreateObjectNode extends ExpressionNode {
13 ArrayInitializerNode ain;
15 public CreateObjectNode(TypeDescriptor type, boolean isglobal, String disjointId) {
17 argumentlist=new Vector();
18 this.isglobal=isglobal;
19 this.disjointId=disjointId;
23 public boolean isGlobal() {
27 public String getDisjointId() {
31 public void addFlagEffects(FlagEffects fe) {
35 public FlagEffects getFlagEffects() {
39 public void addArgument(ExpressionNode en) {
43 public void setConstructor(MethodDescriptor md) {
47 public MethodDescriptor getConstructor() {
51 public TypeDescriptor getType() {
55 public int numArgs() {
56 return argumentlist.size();
59 public ExpressionNode getArg(int i) {
60 return (ExpressionNode) argumentlist.get(i);
63 public void addArrayInitializer(ArrayInitializerNode ain) {
67 public ArrayInitializerNode getArrayInitializer() {
71 public String printNode(int indent) {
73 boolean isarray=td.isArray();
75 st="new "+td.toString()+"[";
77 st="new "+td.toString()+"(";
78 for(int i=0; i<argumentlist.size(); i++) {
79 ExpressionNode en=(ExpressionNode)argumentlist.get(i);
80 st+=en.printNode(indent);
81 if ((i+1)!=argumentlist.size()) {
92 if(isarray && this.ain != null) {
94 st += this.ain.printNode(indent);
101 return Kind.CreateObjectNode;
104 public Long evaluate() {