new version with WorkingCopy Management
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / ListExpression.java
index 769dc4b..a277078 100644 (file)
@@ -1,17 +1,16 @@
 package net.sourceforge.phpdt.internal.compiler.ast;
 
 import java.util.List;
-import java.util.ArrayList;
 
 /**
  * A list expression.
  * it could be list($v1,$v2), list(,$v2) ...
  * @author Matthieu Casanova
  */
-public class ListExpression extends Expression {
+public final class ListExpression extends Expression {
 
-  public Expression[] vars;
-  public Expression expression;
+  private final Expression[] vars;
+  private Expression expression;
 
   public ListExpression(final Expression[] vars,
                         final Expression expression,
@@ -50,37 +49,37 @@ public class ListExpression extends Expression {
     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() {
-    return new ArrayList();
-  }
+  public void getOutsideVariable(final List 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();
+  public void getModifiedVariable(final List list) {
     for (int i = 0; i < vars.length; i++) {
-      list.addAll(vars[i].getModifiedVariable());
+      if (vars[i] != null) {
+        vars[i].getUsedVariable(list);
+      }
     }
     if (expression != null) {
-      list.addAll(expression.getModifiedVariable());
+      expression.getModifiedVariable(list);
     }
-    return list;
   }
 
   /**
    * Get the variables used.
-   * @return the variables used
+   *
+   * @param list the list where we will put variables
    */
-  public List getUsedVariable() {
-    if (expression == null) {
-      return new ArrayList(1);
+  public void getUsedVariable(final List list) {
+    if (expression != null) {
+      expression.getUsedVariable(list);
     }
-    return expression.getUsedVariable();
   }
 }