a junit Testcase to test the parser
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / GlobalStatement.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
4 import net.sourceforge.phpdt.internal.compiler.ast.declarations.VariableUsage;
5 import net.sourceforge.phpdt.internal.ui.PHPUiImages;
6 import org.eclipse.jface.resource.ImageDescriptor;
7 import org.eclipse.jface.text.Position;
8
9 import java.util.List;
10 import java.util.ArrayList;
11
12 /**
13  * A GlobalStatement statement in php.
14  * @author Matthieu Casanova
15  */
16 public class GlobalStatement extends Statement implements Outlineable {
17
18   /** An array of the variables called by this global statement. */
19   public String[] variables;
20
21   private Object parent;
22
23   private Position position;
24
25   public GlobalStatement(final Object parent,
26                          final String[] variables,
27                          final int sourceStart,
28                          final int sourceEnd) {
29     super(sourceStart, sourceEnd);
30     this.variables = variables;
31     this.parent = parent;
32     position = new Position(sourceStart, sourceEnd);
33   }
34
35   public String toString() {
36     final StringBuffer buff = new StringBuffer("global ");//$NON-NLS-1$
37     for (int i = 0; i < variables.length; i++) {
38       if (i != 0) {
39         buff.append(", ");//$NON-NLS-1$
40       }
41       buff.append(variables[i]);
42     }
43     return buff.toString();
44   }
45
46   public String toString(final int tab) {
47     return tabString(tab) + toString();
48   }
49
50   /**
51    * This will return the image for the outline of the object.
52    * @return an image
53    */
54   public ImageDescriptor getImage() {
55     return PHPUiImages.DESC_INC;
56   }
57
58   public Object getParent() {
59     return parent;
60   }
61
62   public Position getPosition() {
63     return position;
64   }
65
66   /**
67    * Get the variables from outside (parameters, globals ...)
68    * @return the variables from outside
69    */
70   public List getOutsideVariable() {
71     final ArrayList list = new ArrayList(variables.length);
72     for (int i = 0; i < variables.length; i++) {
73       list.add(new VariableUsage(variables[i],sourceStart));
74     }
75     return list;
76   }
77
78   /**
79    * get the modified variables.
80    * @return the variables modified
81    */
82   public List getModifiedVariable() {
83     return new ArrayList();
84   }
85
86   /**
87    * Get the variables used.
88    * @return the variables used
89    */
90   public List getUsedVariable() {
91     return new ArrayList();
92   }
93 }