Changes:
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / VariableDeclaration.java
index 7f55b38..4adb02d 100644 (file)
@@ -1,13 +1,13 @@
 package net.sourceforge.phpdt.internal.compiler.ast;
 
+import java.util.List;
+
 import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
 import net.sourceforge.phpdt.internal.ui.PHPUiImages;
+
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.text.Position;
 
-import java.util.List;
-import java.util.ArrayList;
-
 /**
  * A variable declaration.
  * @author Matthieu Casanova
@@ -28,25 +28,27 @@ public class VariableDeclaration extends Expression implements Outlineable {
   public static final int LSHIFT_EQUAL = 11;
   public static final int RSIGNEDSHIFT_EQUAL = 12;
 
-  protected Variable variable;
+  protected AbstractVariable variable;
 
   /** The value for variable initialization. */
   public Expression initialization;
 
   private Object parent;
   private boolean reference;
+
   private Position position;
 
   private int operator;
 
   /**
    * Create a variable.
-   * @param initialization the initialization
    * @param variable the name of the variable
+   * @param initialization the initialization
+   * @param operator the assign operator
    * @param sourceStart the start point
    */
   public VariableDeclaration(final Object parent,
-                             final Variable variable,
+                             final AbstractVariable variable,
                              final Expression initialization,
                              final int operator,
                              final int sourceStart) {
@@ -60,16 +62,17 @@ public class VariableDeclaration extends Expression implements Outlineable {
 
   /**
    * Create a variable.
-   * @param name the name of the variable
+   * @param variable a variable (in case of $$variablename)
    * @param sourceStart the start point
    */
   public VariableDeclaration(final Object parent,
-                             final Variable variable,
+                             final AbstractVariable variable,
                              final int sourceStart,
                              final int sourceEnd) {
     super(sourceStart, sourceEnd);
     this.variable = variable;
     this.parent = parent;
+    position = new Position(sourceStart, sourceEnd);
   }
 
   public void setReference(final boolean reference) {
@@ -79,10 +82,10 @@ public class VariableDeclaration extends Expression implements Outlineable {
   /**
    * Create a variable.
    * @param initialization the initialization
-   * @param name the name of the variable
+   * @param variable a variable (in case of $$variablename)
    * @param sourceStart the start point
    */
-  public VariableDeclaration(final Variable variable,
+  public VariableDeclaration(final AbstractVariable variable,
                              final Expression initialization,
                              final int operator,
                              final int sourceStart) {
@@ -94,10 +97,10 @@ public class VariableDeclaration extends Expression implements Outlineable {
 
   /**
    * Create a variable.
-   * @param name the name of the variable
+   * @param variable a variable (in case of $$variablename)
    * @param sourceStart the start point
    */
-  public VariableDeclaration(final Variable variable,
+  public VariableDeclaration(final AbstractVariable variable,
                              final int sourceStart) {
     super(sourceStart, variable.sourceEnd);
     this.variable = variable;
@@ -188,34 +191,26 @@ public class VariableDeclaration extends Expression implements Outlineable {
 
   /**
    * Get the variables from outside (parameters, globals ...)
-   * @return the variables from outside
    */
-  public List getOutsideVariable() {
-    return new ArrayList();
+  public void getOutsideVariable(final List list) {
   }
 
   /**
    * get the modified variables.
-   * @return the variables from we change value
    */
-  public List getModifiedVariable() {
-    final ArrayList list = new ArrayList();
-    list.addAll(variable.getModifiedVariable());
+  public void getModifiedVariable(final List list) {
+    variable.getUsedVariable(list);
     if (initialization != null) {
-      list.addAll(initialization.getModifiedVariable());
+      initialization.getModifiedVariable(list);
     }
-    return list;
   }
 
   /**
    * Get the variables used.
-   * @return the variables used
    */
-  public List getUsedVariable() {
-    final ArrayList list = new ArrayList();
+  public void getUsedVariable(final List list) {
     if (initialization != null) {
-      list.addAll(initialization.getModifiedVariable());//yes it's getModified variable (in a variable declaration $a = $b, $a is modified, event if you have only $a and no initialization
+      initialization.getUsedVariable(list);
     }
-    return list;
   }
 }