Some minor changes
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / ArrayVariableDeclaration.java
index 14413e5..215c9ea 100644 (file)
@@ -1,35 +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;
   }
 
-  public ArrayVariableDeclaration(Expression key,int sourceEnd) {
+  /**
+   * 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();
   }
 }