avoid ClassCastException
[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
5 /**
6  * an echo statement.
7  * echo something;
8  * 
9  * @author Matthieu Casanova
10  */
11 public final class EchoStatement extends Statement {
12
13   /** An array of expressions in this echo statement. */
14   private final 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    * 
35    * @param tab how many tabs (not used here
36    * @return a String
37    */
38   public String toString(final int tab) {
39     final String tabs = tabString(tab);
40     final String str = toString();
41     final StringBuffer buff = new StringBuffer(tabs.length() + str.length());
42     return buff.toString();
43   }
44
45   /**
46    * Get the variables from outside (parameters, globals ...)
47    *
48    * @param list the list where we will put variables
49    */
50   public void getOutsideVariable(final List list) {
51     for (int i = 0; i < expressions.length; i++) {
52       expressions[i].getOutsideVariable(list);
53     }
54   }
55
56   /**
57    * get the modified variables.
58    *
59    * @param list the list where we will put variables
60    */
61   public void getModifiedVariable(final List list) {
62     for (int i = 0; i < expressions.length; i++) {
63       expressions[i].getModifiedVariable(list);
64     }
65   }
66
67   /**
68    * Get the variables used.
69    *
70    * @param list the list where we will put variables
71    */
72   public void getUsedVariable(final List list) {
73     for (int i = 0; i < expressions.length; i++) {
74       expressions[i].getUsedVariable(list);
75     }
76   }
77 }