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..827c2aa 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,5 +1,8 @@ package net.sourceforge.phpdt.internal.compiler.ast; +import java.util.List; +import java.util.ArrayList; + /** * @author Matthieu Casanova */ @@ -9,11 +12,11 @@ public class ForeachStatement extends Statement { public Expression variable; public 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; @@ -25,7 +28,7 @@ public class ForeachStatement extends Statement { * @param tab how many tabs (not used here * @return a String */ - public String toString(int tab) { + public String toString(final int tab) { final StringBuffer buff = new StringBuffer(tabString(tab)); buff.append("foreach ("); buff.append(expression.toStringExpression()); @@ -36,4 +39,39 @@ public class ForeachStatement extends Statement { buff.append("\n}"); return buff.toString(); } + + /** + * Get the variables from outside (parameters, globals ...) + * @return the variables from outside + */ + public List getOutsideVariable() { + final ArrayList list = new ArrayList(); + list.addAll(expression.getOutsideVariable()); + list.addAll(variable.getOutsideVariable()); + list.addAll(statement.getOutsideVariable()); + return list; + } + + /** + * get the modified variables. + * @return the variables from we change value + */ + public List getModifiedVariable() { + final ArrayList list = new ArrayList(); + list.addAll(expression.getModifiedVariable()); + list.addAll(variable.getModifiedVariable()); + list.addAll(statement.getModifiedVariable()); + return list; + } + + /** + * Get the variables used. + * @return the variables used + */ + public List getUsedVariable() { + final ArrayList list = new ArrayList(); + list.addAll(expression.getUsedVariable()); + list.addAll(statement.getUsedVariable()); + return list; + } }