package net.sourceforge.phpdt.internal.compiler.ast; import java.util.List; import java.util.ArrayList; /** * A ConditionalExpression is like that : booleanExpression ? trueValue : falseValue; * @author Matthieu Casanova */ public class ConditionalExpression extends OperatorExpression { public Expression condition, valueIfTrue, valueIfFalse; public ConditionalExpression(final Expression condition, final Expression valueIfTrue, final Expression valueIfFalse) { super(-1, condition.sourceStart, valueIfFalse.sourceEnd); this.condition = condition; this.valueIfTrue = valueIfTrue; this.valueIfFalse = valueIfFalse; } public String toStringExpression() { final StringBuffer buff = new StringBuffer("("); buff.append(condition.toStringExpression()); buff.append(") ? "); buff.append(valueIfTrue.toStringExpression()); buff.append(" : "); buff.append(valueIfFalse.toStringExpression()); return buff.toString(); } /** * Get the variables from outside (parameters, globals ...) * @return the variables from outside */ public List getOutsideVariable() { return new ArrayList(); } /** * get the modified variables. * @return the variables from we change value */ public List getModifiedVariable() { final ArrayList list = new ArrayList(); list.addAll(condition.getModifiedVariable()); list.addAll(valueIfTrue.getModifiedVariable()); list.addAll(valueIfFalse.getModifiedVariable()); return list; } /** * Get the variables used. * @return the variables used */ public List getUsedVariable() { final ArrayList list = new ArrayList(); list.addAll(condition.getUsedVariable()); list.addAll(valueIfTrue.getUsedVariable()); list.addAll(valueIfFalse.getUsedVariable()); return list; } }