42ab9e4a7a9518b43bf79e00ef5fca0732a5fce2
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / ArrayInitializer.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import net.sourceforge.phpdt.internal.compiler.ast.declarations.VariableUsage;
4
5 import java.util.List;
6 import java.util.ArrayList;
7
8 /**
9  * an array initializer.
10  * array('a','b','c') or array('a' => 2,'b' = '3');
11  * @author Matthieu Casanova
12  */
13 public class ArrayInitializer extends Expression {
14
15   public ArrayVariableDeclaration[] vars;
16
17   public ArrayInitializer(final ArrayVariableDeclaration[] vars,
18                           final int sourceStart,
19                           final int sourceEnd) {
20     super(sourceStart, sourceEnd);
21     this.vars = vars;
22   }
23
24   /**
25    * Return the expression as String.
26    * @return the expression
27    */
28   public String toStringExpression() {
29     final StringBuffer buff = new StringBuffer("array(");
30     for (int i = 0; i < vars.length; i++) {
31       final ArrayVariableDeclaration var = vars[i];
32       if (i != 0) {
33         buff.append(",");
34       }
35       buff.append(var.toStringExpression());
36     }
37     buff.append(")");
38     return buff.toString();
39   }
40
41              /**
42    * Get the variables from outside (parameters, globals ...)
43    * @return the variables from outside
44    */
45   public List getOutsideVariable() {
46     return new ArrayList(1);
47   }
48
49   /**
50    * get the modified variables.
51    * @return the variables from we change value
52    */
53   public List getModifiedVariable() {
54     final ArrayList list = new ArrayList();
55     for (int i = 0; i < vars.length; i++) {
56       list.addAll(vars[i].getModifiedVariable());
57     }
58     return list;
59   }
60
61   /**
62    * Get the variables used.
63    * @return the variables used
64    */
65   public List getUsedVariable() {
66     final ArrayList list = new ArrayList();
67     for (int i = 0; i < vars.length; i++) {
68       list.addAll(vars[i].getUsedVariable());
69     }
70     return list;
71   }
72 }