First submit for debug plugin
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / InclusionStatement.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.ui.PHPUiImages;
5 import org.eclipse.jface.resource.ImageDescriptor;
6 import org.eclipse.jface.text.Position;
7
8 /**
9  * @author Matthieu Casanova
10  */
11 public class InclusionStatement extends Statement implements Outlineable {
12
13   public static final int INCLUDE = 0;
14   public static final int INCLUDE_ONCE = 1;
15   public static final int REQUIRE = 2;
16   public static final int REQUIRE_ONCE = 3;
17   public boolean silent;
18   /** The kind of include. */
19   public int keyword;
20   public Expression expression;
21
22   private Object parent;
23
24   private Position position;
25   public InclusionStatement(Object parent,
26                             int keyword,
27                             Expression expression,
28                             int sourceStart) {
29     super(sourceStart, expression.sourceEnd);
30     this.keyword = keyword;
31     this.expression = expression;
32     this.parent = parent;
33     position = new Position(sourceStart, sourceEnd);
34   }
35
36   public String keywordToString() {
37     switch (keyword) {
38       case INCLUDE:
39         return "include";       //$NON-NLS-1$
40       case INCLUDE_ONCE:
41         return "include_once";  //$NON-NLS-1$
42       case REQUIRE:
43         return "require";       //$NON-NLS-1$
44       case REQUIRE_ONCE:
45         return "require_once";  //$NON-NLS-1$
46     }
47     return "unknown keyword";//$NON-NLS-1$
48   }
49
50   /**
51    * Return the object into String.
52    * @param tab how many tabs (not used here
53    * @return a String
54    */
55   public String toString(int tab) {
56     final StringBuffer buffer = new StringBuffer(tabString(tab));
57     buffer.append(toString());
58     return buffer.toString();
59   }
60
61   public String toString() {
62     final StringBuffer buffer = new StringBuffer();
63     if (silent) {
64       buffer.append('@');
65     }
66     buffer.append(keywordToString());
67     buffer.append(" ");
68     buffer.append(expression.toStringExpression());
69     return buffer.toString();
70   }
71
72   /**
73    * Get the image of a variable.
74    * @return the image that represents a php variable
75    */
76   public ImageDescriptor getImage() {
77     return PHPUiImages.DESC_INC;
78   }
79
80   public Object getParent() {
81     return parent;
82   }
83
84   public Position getPosition() {
85     return position;
86   }
87 }