X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForeachStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForeachStatement.java index be4229a..d32038a 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForeachStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ForeachStatement.java @@ -1,19 +1,21 @@ package net.sourceforge.phpdt.internal.compiler.ast; +import java.util.List; + /** * @author Matthieu Casanova */ -public class ForeachStatement extends Statement { +public final class ForeachStatement extends Statement { - public Expression expression; - public Expression variable; - public Statement statement; + private final Expression expression; + private final Expression variable; + private final Statement statement; - public ForeachStatement(Expression expression, - Expression variable, - Statement statement, - int sourceStart, - int sourceEnd) { + public ForeachStatement(final Expression expression, + final Expression variable, + final Statement statement, + final int sourceStart, + final int sourceEnd) { super(sourceStart, sourceEnd); this.expression = expression; this.variable = variable; @@ -22,18 +24,58 @@ public class ForeachStatement extends Statement { /** * Return the object into String. + * * @param tab how many tabs (not used here * @return a String */ - public String toString(int tab) { - final StringBuffer buff = new StringBuffer(tabString(tab)); + public String toString(final int tab) { + final String expressionString = expression.toStringExpression(); + final String variableString = variable.toStringExpression(); + final String statementString = statement.toString(tab + 1); + final StringBuffer buff = new StringBuffer(tab + + expressionString.length() + + variableString.length() + + statementString.length() + 18); + buff.append(tabString(tab)); buff.append("foreach ("); - buff.append(expression.toStringExpression()); + buff.append(expressionString); buff.append(" as "); - buff.append(variable.toStringExpression()); + buff.append(variableString); buff.append(" {\n"); - buff.append(statement.toString(tab+1)); + buff.append(statementString); buff.append("\n}"); 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) { + expression.getOutsideVariable(list); + variable.getOutsideVariable(list); + statement.getOutsideVariable(list); + } + + /** + * get the modified variables. + * + * @param list the list where we will put variables + */ + public void getModifiedVariable(final List list) { + expression.getModifiedVariable(list); + variable.getUsedVariable(list); + statement.getModifiedVariable(list); + } + + /** + * Get the variables used. + * + * @param list the list where we will put variables + */ + public void getUsedVariable(final List list) { + expression.getUsedVariable(list); + statement.getUsedVariable(list); + } }