improved parser string handling
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / Case.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import java.util.List;
4
5 /**
6  * A Case statement for a Switch.
7  * @author Matthieu Casanova
8  */
9 public final class Case extends AbstractCase {
10
11   private final Expression value;
12
13   public Case(final Expression value,
14               final Statement[] statements,
15               final int sourceStart,
16               final int sourceEnd) {
17     super(statements, sourceStart, sourceEnd);
18     this.value = value;
19   }
20
21   /**
22    * Return the object into String.
23    * @param tab how many tabs (not used here
24    * @return a String
25    */
26   public String toString(final int tab) {
27     final StringBuffer buff = new StringBuffer(tabString(tab));
28     buff.append("case ");
29     buff.append(value.toStringExpression());
30     buff.append(" :\n");
31     if (statements != null) {
32       for (int i = 0; i < statements.length; i++) {
33         final Statement statement = statements[i];
34         buff.append(statement.toString(tab + 1));
35       }
36     }
37     return buff.toString();
38   }
39
40   /**
41    * get the modified variables.
42    *
43    * @param list the list where we will put variables
44    */
45   public void getModifiedVariable(final List list) {
46     super.getModifiedVariable(list);
47     value.getModifiedVariable(list);
48   }
49
50   /**
51    * Get the variables used.
52    *
53    * @param list the list where we will put variables
54    */
55   public void getUsedVariable(final List list) {
56     super.getUsedVariable(list);
57     value.getUsedVariable(list);
58   }
59 }