X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/DoStatement.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/DoStatement.java index 1a80333..a6c2934 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/DoStatement.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/DoStatement.java @@ -1,20 +1,24 @@ package net.sourceforge.phpdt.internal.compiler.ast; +import java.util.List; + /** + * A do statement. + * * @author Matthieu Casanova */ -public class DoStatement extends Statement { +public final class DoStatement extends Statement { /** The condition expression. */ - public Expression condition; + private final Expression condition; /** The action of the while. (it could be a block) */ - public Statement action; + private final Statement action; - public DoStatement(Expression condition, - Statement action, - int sourceStart, - int sourceEnd) { + public DoStatement(final Expression condition, + final Statement action, + final int sourceStart, + final int sourceEnd) { super(sourceStart, sourceEnd); this.condition = condition; this.action = action; @@ -22,19 +26,58 @@ public class DoStatement extends Statement { /** * Return the object into String. + * * @param tab how many tabs (not used here * @return a String */ - public String toString(int tab) { - final String s = tabString(tab); - final StringBuffer buff = new StringBuffer("do "); //$NON-NLS-1$ + public String toString(final int tab) { + final String conditionString = condition.toStringExpression(); + final StringBuffer buff; if (action == null) { + buff = new StringBuffer(17 + tab + conditionString.length()); + buff.append("do ");//$NON-NLS-1$ buff.append(" {} ;"); //$NON-NLS-1$ } else { - buff.append("\n").append(action.toString(tab + 1)); //$NON-NLS-1$ + final String actionString = action.toString(tab + 1); + buff = new StringBuffer(13 + conditionString.length() + actionString.length()); + buff.append("do ");//$NON-NLS-1$ + buff.append("\n");//$NON-NLS-1$ + buff.append(actionString); } - buff.append(s).append(" while ("); - buff.append(condition.toStringExpression()).append(")"); //$NON-NLS-1$ + buff.append(tabString(tab)); + buff.append(" while (");//$NON-NLS-1$ + buff.append(conditionString); + buff.append(")");//$NON-NLS-1$ 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) { + condition.getOutsideVariable(list); // todo: check if unuseful + action.getOutsideVariable(list); + } + + /** + * get the modified variables. + * + * @param list the list where we will put variables + */ + public void getModifiedVariable(final List list) { + condition.getModifiedVariable(list); + action.getModifiedVariable(list); + } + + /** + * Get the variables used. + * + * @param list the list where we will put variables + */ + public void getUsedVariable(final List list) { + condition.getUsedVariable(list); + action.getUsedVariable(list); + } }