a bugfix on variables
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / EchoStatement.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import java.util.List;
4 import java.util.ArrayList;
5
6 /**
7  * an echo statement.
8  * echo something;
9  * @author Matthieu Casanova
10  */
11 public class EchoStatement extends Statement {
12
13   /** An array of expressions in this echo statement. */
14   public Expression[] expressions;
15
16   public EchoStatement (final Expression[] expressions, final int sourceStart, final int sourceEnd) {
17     super(sourceStart, sourceEnd);
18     this.expressions = expressions;
19   }
20
21   public String toString() {
22     final StringBuffer buff = new StringBuffer("echo ");//$NON-NLS-1$
23     for (int i = 0; i < expressions.length; i++) {
24       if (i != 0) {
25         buff.append(", ");//$NON-NLS-1$
26       }
27       buff.append(expressions[i].toStringExpression());
28     }
29     return buff.toString();
30   }
31
32   /**
33    * Return the object into String.
34    * @param tab how many tabs (not used here
35    * @return a String
36    */
37   public String toString(final int tab) {
38     final String tabs = tabString(tab);
39     final String str = toString();
40     final StringBuffer buff = new StringBuffer(tabs.length()+str.length());
41     return buff.toString();
42   }
43
44   /**
45    * Get the variables from outside (parameters, globals ...)
46    * @return the variables from outside
47    */
48   public List getOutsideVariable() {
49     final ArrayList list = new ArrayList();
50     for (int i = 0; i < expressions.length; i++) {
51       list.addAll(expressions[i].getOutsideVariable());
52     }
53     return list;
54   }
55
56   /**
57    * get the modified variables.
58    * @return the variables from we change value
59    */
60   public List getModifiedVariable() {
61     final ArrayList list = new ArrayList();
62     for (int i = 0; i < expressions.length; i++) {
63       list.addAll(expressions[i].getModifiedVariable());
64     }
65     return list;
66   }
67
68   /**
69    * Get the variables used.
70    * @return the variables used
71    */
72   public List getUsedVariable() {
73     final ArrayList list = new ArrayList();
74     for (int i = 0; i < expressions.length; i++) {
75       list.addAll(expressions[i].getUsedVariable());
76     }
77     return list;
78   }
79 }