cb0b5dd946fd707dc4dfabe6eb28eea7dd042598
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / FunctionCall.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import java.util.List;
4 import java.util.ArrayList;
5
6 /**
7  * @author Matthieu Casanova
8  */
9 public class FunctionCall extends AbstractSuffixExpression {
10
11   public Expression prefix;
12   public Expression[] args;
13
14   public FunctionCall(final Expression prefix,
15                       final Expression[] args,
16                       final int sourceEnd) {
17     super(prefix.sourceStart, sourceEnd);
18     this.prefix = prefix;
19     this.args = args;
20   }
21
22   /**
23    * Return the expression as String.
24    * @return the expression
25    */
26   public String toStringExpression() {
27     final StringBuffer buff = new StringBuffer(prefix.toStringExpression());
28     buff.append('(');
29     if (args != null) {
30       for (int i = 0; i < args.length; i++) {
31         final Expression arg = args[i];
32         if (i != 0) {
33           buff.append(',');
34         }
35         buff.append(arg.toStringExpression());
36       }
37     }
38     buff.append(')');
39     return buff.toString();
40   }
41
42             /**
43    * Get the variables from outside (parameters, globals ...)
44    * @return the variables from outside
45    */
46   public List getOutsideVariable() {
47     return new ArrayList();
48   }
49
50   /**
51    * get the modified variables.
52    * @return the variables from we change value
53    */
54   public List getModifiedVariable() {
55     final ArrayList list = new ArrayList();
56     for (int i = 0; i < args.length; i++) {
57       list.addAll(args[i].getModifiedVariable());
58     }
59     return list;
60   }
61
62   /**
63    * Get the variables used.
64    * @return the variables used
65    */
66   public List getUsedVariable() {
67     final ArrayList list = new ArrayList();
68     list.addAll(prefix.getUsedVariable());
69     for (int i = 0; i < args.length; i++) {
70       list.addAll(args[i].getUsedVariable());
71     }
72     return list;
73   }
74 }