package net.sourceforge.phpdt.internal.compiler.ast; import java.util.List; import java.util.ArrayList; /** * a variable declaration in an array(). * it could take Expression as key. * @author Matthieu Casanova */ public class ArrayVariableDeclaration extends Expression { /** the array key. */ public Expression key; /** the array value. */ public 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) { buff.append(" => "); buff.append(value.toStringExpression()); } return buff.toString(); } /** * Get the variables from outside (parameters, globals ...) * @return the variables from outside */ public List getOutsideVariable() { return new ArrayList(); } /** * get the modified variables. * @return the variables from we change value */ public List getModifiedVariable() { final ArrayList list = new ArrayList(); list.addAll(key.getModifiedVariable()); if (value != null) { list.addAll(value.getModifiedVariable()); } return list; } /** * Get the variables used. * @return the variables used */ public List getUsedVariable() { final ArrayList list = new ArrayList(); if (value != null) { list.addAll(value.getUsedVariable()); } return list; } }