a lot of bugfixes
[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       if (i != 0) {
32         buff.append(",");
33       }
34       if (vars[i] != null) {
35         buff.append(vars[i].toStringExpression());
36       }
37     }
38     buff.append(")");
39     return buff.toString();
40   }
41
42   /**
43    * Get the variables from outside (parameters, globals ...)
44    * @return the variables from outside
45    */
46   public List getOutsideVariable() {
47     return new ArrayList(1);
48   }
49
50   /**
51    * get the modified variables.
52    * @return the variables from we change value
53    */
54   public List getModifiedVariable() {
55     final ArrayList list = new ArrayList();
56     for (int i = 0; i < vars.length; i++) {
57       if (vars[i] != null) {
58         list.addAll(vars[i].getModifiedVariable());
59       }
60     }
61     return list;
62   }
63
64   /**
65    * Get the variables used.
66    * @return the variables used
67    */
68   public List getUsedVariable() {
69     final ArrayList list = new ArrayList();
70     for (int i = 0; i < vars.length; i++) {
71       if (vars[i] != null) {
72         list.addAll(vars[i].getUsedVariable());
73       }
74     }
75     return list;
76   }
77 }