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