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,
/**
* 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);
}
}