5de7507225221ac8523e7398ddc9dfb5434e1f17
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / SwitchStatement.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import java.util.List;
4
5 /**
6  * @author Matthieu Casanova
7  */
8 public class SwitchStatement extends Statement {
9
10   public Expression variable;
11   public AbstractCase[] cases;
12
13   public SwitchStatement(final Expression variable,
14                          final AbstractCase[] cases,
15                          final int sourceStart,
16                          final int sourceEnd) {
17     super(sourceStart, sourceEnd);
18     this.variable = variable;
19     this.cases = cases;
20   }
21
22   /**
23    * Return the object into String.
24    * @param tab how many tabs (not used here
25    * @return a String
26    */
27   public String toString(final int tab) {
28     final StringBuffer buff = new StringBuffer(tabString(tab));
29     buff.append("switch (").append(variable.toStringExpression()).append(") {\n");
30     for (int i = 0; i < cases.length; i++) {
31       final AbstractCase cas = cases[i];
32       buff.append(cas.toString(tab + 1));
33       buff.append('\n');
34     }
35     buff.append('}');
36     return buff.toString();
37   }
38
39   /**
40    * Get the variables from outside (parameters, globals ...)
41    */
42   public void getOutsideVariable(final List list) {
43     for (int i = 0; i < cases.length; i++) {
44       cases[i].getOutsideVariable(list);
45     }
46   }
47
48   /**
49    * get the modified variables.
50    */
51   public void getModifiedVariable(final List list) {
52     for (int i = 0; i < cases.length; i++) {
53       cases[i].getModifiedVariable(list);
54     }
55     variable.getModifiedVariable(list);
56   }
57
58   /**
59    * Get the variables used.
60    */
61   public void getUsedVariable(final List list) {
62     for (int i = 0; i < cases.length; i++) {
63       cases[i].getUsedVariable(list);
64     }
65     variable.getUsedVariable(list);
66   }
67 }