*** empty log message ***
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / PHPDocument.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
4 import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
5 import net.sourceforge.phpdt.internal.ui.PHPUiImages;
6 import org.eclipse.jface.resource.ImageDescriptor;
7
8 import java.util.ArrayList;
9
10 /**
11  * It's a php document.
12  * This class is an outlineable object
13  * It will contains html and php
14  * @author Matthieu Casanova
15  */
16 public class PHPDocument implements OutlineableWithChildren {
17
18   /**
19    * The nodes.
20    * It will include html nodes or php nodes
21    */
22   public AstNode[] nodes;
23
24   /** The parent of the object. */
25   public Object parent;
26
27   /** The outlineable children (those will be in the node array too. */
28   private ArrayList children = new ArrayList();
29
30   /**
31    * Create the PHPDocument.
32    * @param parent the parent object (it should be null isn't it ?)
33    */
34   public PHPDocument(Object parent) {
35     this.parent = parent;
36   }
37
38   /**
39    * Return the php document as String.
40    * @return  a string representation of the object.
41    */
42   public String toString() {
43     final StringBuffer buff = new StringBuffer();
44     AstNode node;
45     if (nodes != null) {
46       int i;
47       for (i = 0; i < nodes.length; i++) {
48         node = nodes[i];
49         if (node == null) {
50           break;
51         }
52         buff.append(node.toString(0));
53       }
54     }
55     return buff.toString();
56   }
57
58   /**
59    * Add an outlineable object.
60    * @param o the new outlineable
61    * @return does the addition worked ?
62    */
63   public boolean add(Outlineable o) {
64     return children.add(o);
65   }
66
67   /**
68    * Return the outlineable at the index.
69    * @param index the index
70    * @return an outlineable object
71    */
72   public Outlineable get(int index) {
73     return (Outlineable) children.get(index);
74   }
75
76   /**
77    * The number of outlineable children.
78    * @return the number of children that are outlineable
79    */
80   public int size() {
81     return children.size();
82   }
83
84   /**
85    * This will return the image for the outline of the object.
86    * @return an image
87    */
88   public ImageDescriptor getImage() {
89     return PHPUiImages.DESC_CLASS;
90   }
91
92   /**
93    * Get the parent of the object.
94    * @return the parent of the object
95    */
96   public Object getParent() {
97     return parent;
98   }
99 }