fd36a8ab2c28057c6b727d942ae16bd0465a3529
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / ConditionalExpression.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import java.util.List;
4 import java.util.ArrayList;
5
6 /**
7  * A ConditionalExpression is like that : booleanExpression ? trueValue : falseValue;
8  * @author Matthieu Casanova
9  */
10 public class ConditionalExpression extends OperatorExpression {
11
12   public Expression condition, valueIfTrue, valueIfFalse;
13
14   public ConditionalExpression(final Expression condition,
15                                final Expression valueIfTrue,
16                                final Expression valueIfFalse) {
17     super(-1, condition.sourceStart, valueIfFalse.sourceEnd);
18     this.condition = condition;
19     this.valueIfTrue = valueIfTrue;
20     this.valueIfFalse = valueIfFalse;
21   }
22
23   public String toStringExpression() {
24     final StringBuffer buff = new StringBuffer("(");
25     buff.append(condition.toStringExpression());
26     buff.append(") ? ");
27     buff.append(valueIfTrue.toStringExpression());
28     buff.append(" : ");
29     buff.append(valueIfFalse.toStringExpression());
30     return buff.toString();
31   }
32
33   /**
34    * Get the variables from outside (parameters, globals ...)
35    */
36   public void getOutsideVariable(final List list) {
37   }
38
39   /**
40    * get the modified variables.
41    */
42   public void getModifiedVariable(final List list) {
43     condition.getModifiedVariable(list);
44     valueIfTrue.getModifiedVariable(list);
45     valueIfFalse.getModifiedVariable(list);
46   }
47
48   /**
49    * Get the variables used.
50    */
51   public void getUsedVariable(final List list) {
52     condition.getUsedVariable(list);
53     valueIfTrue.getUsedVariable(list);
54     valueIfFalse.getUsedVariable(list);
55   }
56 }