X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayVariableDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayVariableDeclaration.java index b9a0d6b..215c9ea 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayVariableDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArrayVariableDeclaration.java @@ -1,31 +1,93 @@ package net.sourceforge.phpdt.internal.compiler.ast; +import java.util.List; + /** - * This variable declaration do not extend AbstractVariableDeclaration because - * it could take Expression as key + * a variable declaration in an array(). + * it could take Expression as key. + * * @author Matthieu Casanova */ -public class ArrayVariableDeclaration extends Expression { +public final class ArrayVariableDeclaration extends Expression { + + /** the array key. */ + private final Expression key; - public Expression key,value; + /** the array value. */ + private Expression value; - public ArrayVariableDeclaration(Expression key,Expression value) { + /** + * Create a new array variable declaration. + * + * @param key the key + * @param value the value + */ + public ArrayVariableDeclaration(final Expression key, final Expression value) { super(key.sourceStart, value.sourceEnd); this.key = key; this.value = value; } /** + * Create a new array variable declaration. + * + * @param key the key + * @param sourceEnd the end position + */ + public ArrayVariableDeclaration(final Expression key, final int sourceEnd) { + super(key.sourceStart, sourceEnd); + this.key = key; + } + + /** * Return the expression as String. + * * @return the expression */ public String toStringExpression() { - final StringBuffer buff = new StringBuffer(); - buff.append(key.toStringExpression()); - if (value != null) { + if (value == null) { + return key.toStringExpression(); + } else { + final String keyString = key.toStringExpression(); + final String valueString = value.toStringExpression(); + final StringBuffer buff = new StringBuffer(keyString.length() + valueString.length() + 3); + buff.append(keyString); buff.append(" => "); - buff.append(value.toStringExpression()); + buff.append(valueString); + 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) { + } + + /** + * get the modified variables. + * + * @param list the list where we will put variables + */ + public void getModifiedVariable(final List list) { + key.getModifiedVariable(list); + if (value != null) { + value.getModifiedVariable(list); + } + } + + /** + * Get the variables used. + * + * @param list the list where we will put variables + */ + public void getUsedVariable(final List list) { + key.getUsedVariable(list); + if (value != null) { + value.getUsedVariable(list); } - return buff.toString(); } }