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 827c2aa..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,16 +1,15 @@ package net.sourceforge.phpdt.internal.compiler.ast; import java.util.List; -import java.util.ArrayList; /** * @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(final Expression expression, final Expression variable, @@ -25,53 +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(final int tab) { - final StringBuffer buff = new StringBuffer(tabString(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 ...) - * @return the variables from outside + * + * @param list the list where we will put variables */ - public List getOutsideVariable() { - final ArrayList list = new ArrayList(); - list.addAll(expression.getOutsideVariable()); - list.addAll(variable.getOutsideVariable()); - list.addAll(statement.getOutsideVariable()); - return list; + public void getOutsideVariable(final List list) { + expression.getOutsideVariable(list); + variable.getOutsideVariable(list); + statement.getOutsideVariable(list); } /** * get the modified variables. - * @return the variables from we change value + * + * @param list the list where we will put variables */ - public List getModifiedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(expression.getModifiedVariable()); - list.addAll(variable.getModifiedVariable()); - list.addAll(statement.getModifiedVariable()); - return list; + public void getModifiedVariable(final List list) { + expression.getModifiedVariable(list); + variable.getUsedVariable(list); + statement.getModifiedVariable(list); } /** * Get the variables used. - * @return the variables used + * + * @param list the list where we will put variables */ - public List getUsedVariable() { - final ArrayList list = new ArrayList(); - list.addAll(expression.getUsedVariable()); - list.addAll(statement.getUsedVariable()); - return list; + public void getUsedVariable(final List list) { + expression.getUsedVariable(list); + statement.getUsedVariable(list); } }