a lot of bugfixes
[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    * @return the variables from outside
46    */
47   public List getOutsideVariable() {
48     final ArrayList list = new ArrayList();
49     for (int i = 0; i < statements.length; i++) {
50       list.addAll(statements[i].getModifiedVariable());
51     }
52     return list;
53   }
54
55   /**
56    * get the modified variables.
57    * @return the variables modified
58    */
59   public List getModifiedVariable() {
60     final ArrayList list = new ArrayList();
61     for (int i = 0; i < statements.length; i++) {
62       list.addAll(statements[i].getModifiedVariable());
63     }
64     list.addAll(condition.getModifiedVariable());
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 < statements.length; i++) {
75       list.addAll(statements[i].getUsedVariable());
76     }
77     list.addAll(condition.getUsedVariable());
78     return list;
79   }
80 }