5486d9c5b2b763de5fda7cd5cec9843cd523e09a
[phpeclipse.git] /
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import java.util.List;
4
5 /**
6  * a variable declaration in an array().
7  * it could take Expression as key.
8  * @author Matthieu Casanova
9  */
10 public class ArrayVariableDeclaration extends Expression {
11
12   /** the array key. */
13   public Expression key;
14
15   /** the array value. */
16   public Expression value;
17
18   /**
19    * Create a new array variable declaration.
20    * @param key the key
21    * @param value the value
22    */
23   public ArrayVariableDeclaration(final Expression key, final Expression value) {
24     super(key.sourceStart, value.sourceEnd);
25     this.key = key;
26     this.value = value;
27   }
28
29   /**
30    * Create a new array variable declaration.
31    * @param key the key
32    * @param sourceEnd the end position
33    */
34   public ArrayVariableDeclaration(final Expression key, final int sourceEnd) {
35     super(key.sourceStart, sourceEnd);
36     this.key = key;
37   }
38
39   /**
40    * Return the expression as String.
41    * @return the expression
42    */
43   public String toStringExpression() {
44     final StringBuffer buff = new StringBuffer();
45     buff.append(key.toStringExpression());
46     if (value != null) {
47       buff.append(" => ");
48       buff.append(value.toStringExpression());
49     }
50     return buff.toString();
51   }
52
53
54   /**
55    * Get the variables from outside (parameters, globals ...)
56    */
57   public void getOutsideVariable(final List list) {
58   }
59
60   /**
61    * get the modified variables.
62    */
63   public void getModifiedVariable(final List list) {
64     key.getModifiedVariable(list);
65     if (value != null) {
66       value.getModifiedVariable(list);
67     }
68   }
69
70   /**
71    * Get the variables used.
72    */
73   public void getUsedVariable(final List list) {
74     key.getUsedVariable(list);
75     if (value != null) {
76       value.getUsedVariable(list);
77     }
78   }
79 }