First submit for debug plugin
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / IfStatement.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 /**
4  * This is a if statement.
5  * if (condition)
6  *  statement
7  * (elseif statement)*
8  * else statement
9  * @author Matthieu Casanova
10  */
11 public class IfStatement extends Statement {
12
13   public Expression condition;
14   public Statement statement;
15   public ElseIf[] elseifs;
16   public Else els;
17
18   /**
19    * Create a new If statement.
20    * @param condition the condition
21    * @param statement a statement or a block of statements
22    * @param elseifs the elseifs
23    * @param els the else (or null)
24    * @param sourceStart the starting position
25    * @param sourceEnd the ending offset
26    */
27   public IfStatement(Expression condition,
28                      Statement statement,
29                      ElseIf[] elseifs,
30                      Else els,
31                      int sourceStart,
32                      int sourceEnd) {
33     super(sourceStart, sourceEnd);
34     this.condition = condition;
35     this.statement = statement;
36     this.elseifs = elseifs;
37     this.els = els;
38   }
39
40   /**
41    * Return the object into String.
42    * @param tab how many tabs (not used here
43    * @return a String
44    */
45   public String toString(int tab) {
46     final StringBuffer buff = new StringBuffer(tabString(tab));
47     buff.append("if (");
48     buff.append(condition.toStringExpression()).append(") ");
49     buff.append(statement.toString(tab+1));
50     for (int i = 0; i < elseifs.length; i++) {
51       buff.append(elseifs[i].toString(tab+1));
52       buff.append("\n");
53     }
54     if (els != null) {
55       buff.append(els.toString(tab+1));
56       buff.append('\n');
57     }
58     return buff.toString();
59   }
60 }