X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java index b2e39fb..04ad606 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ConditionalExpression.java @@ -1,16 +1,20 @@ package net.sourceforge.phpdt.internal.compiler.ast; +import java.util.List; + /** - * A ConditionalExpression is like that : booleanExpression ? trueValue : falseValue; + * A ConditionalExpression is like that : booleanExpression ? trueValue : falseValue;. * @author Matthieu Casanova */ -public class ConditionalExpression extends OperatorExpression { +public final class ConditionalExpression extends OperatorExpression { - public Expression condition, valueIfTrue, valueIfFalse; + private final Expression condition; + private final Expression valueIfTrue; + private final Expression valueIfFalse; - public ConditionalExpression(Expression condition, - Expression valueIfTrue, - Expression valueIfFalse) { + public ConditionalExpression(final Expression condition, + final Expression valueIfTrue, + final Expression valueIfFalse) { super(-1, condition.sourceStart, valueIfFalse.sourceEnd); this.condition = condition; this.valueIfTrue = valueIfTrue; @@ -18,12 +22,48 @@ public class ConditionalExpression extends OperatorExpression { } public String toStringExpression() { - final StringBuffer buff = new StringBuffer("("); - buff.append(condition.toStringExpression()); + final String conditionString = condition.toStringExpression(); + final String valueIfTrueString = valueIfTrue.toStringExpression(); + final String valueIfFalse = this.valueIfFalse.toStringExpression(); + final StringBuffer buff = new StringBuffer(8 + + conditionString.length() + + valueIfTrueString.length() + + valueIfFalse.length()); + buff.append("("); + buff.append(conditionString); buff.append(") ? "); - buff.append(valueIfTrue.toStringExpression()); + buff.append(valueIfTrueString); buff.append(" : "); - buff.append(valueIfFalse.toStringExpression()); + buff.append(valueIfFalse); return buff.toString(); } + + /** + * Get the variables from outside (parameters, globals ...) + * + * @param list the list where we will put variables + */ + public void getOutsideVariable(final List list) {} + + /** + * get the modified variables. + * + * @param list the list where we will put variables + */ + public void getModifiedVariable(final List list) { + condition.getModifiedVariable(list); + valueIfTrue.getModifiedVariable(list); + valueIfFalse.getModifiedVariable(list); + } + + /** + * Get the variables used. + * + * @param list the list where we will put variables + */ + public void getUsedVariable(final List list) { + condition.getUsedVariable(list); + valueIfTrue.getUsedVariable(list); + valueIfFalse.getUsedVariable(list); + } }