a junit Testcase to test the parser
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / PHPDocument.java
index c01d085..92dccf0 100644 (file)
@@ -4,11 +4,14 @@ import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
 import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
 import net.sourceforge.phpdt.internal.ui.PHPUiImages;
 import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.text.Position;
 
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * It's a php document.
+ * This class is an outlineable object
  * It will contains html and php
  * @author Matthieu Casanova
  */
@@ -20,17 +23,24 @@ public class PHPDocument implements OutlineableWithChildren {
    */
   public AstNode[] nodes;
 
-  /** The parent of the object */
+  public char[] name;
+
+  /** The parent of the object. */
   public Object parent;
 
   /** The outlineable children (those will be in the node array too. */
   private ArrayList children = new ArrayList();
 
+  private Position position;
   /**
    * Create the PHPDocument.
+   * @param parent the parent object (it should be null isn't it ?)
    */
-  public PHPDocument(Object parent) {
+  public PHPDocument(final Object parent,
+                     final char[] name) {
     this.parent = parent;
+    this.name = name;
+    position = new Position(1,name.length);
   }
 
   /**
@@ -40,13 +50,20 @@ public class PHPDocument implements OutlineableWithChildren {
   public String toString() {
     final StringBuffer buff = new StringBuffer();
     AstNode node;
-    int i;
-    for (i = 0; i < nodes.length; i++) {
-      node = nodes[i];
-      if (node == null) {
-        break;
+    if (nodes != null) {
+      int i;
+      for (i = 0; i < nodes.length; i++) {
+        node = nodes[i];
+        if (node == null) {
+          break;
+        }
+        buff.append(node.toString(0));
+        if (node instanceof HTMLCode) {
+          buff.append("\n");//$NON-NLS-1$
+        } else {
+          buff.append(";\n");//$NON-NLS-1$
+        }
       }
-      buff.append(node);
     }
     return buff.toString();
   }
@@ -56,7 +73,7 @@ public class PHPDocument implements OutlineableWithChildren {
    * @param o the new outlineable
    * @return does the addition worked ?
    */
-  public boolean add(Outlineable o) {
+  public boolean add(final Outlineable o) {
     return children.add(o);
   }
 
@@ -65,13 +82,13 @@ public class PHPDocument implements OutlineableWithChildren {
    * @param index the index
    * @return an outlineable object
    */
-  public Outlineable get(int index) {
+  public Outlineable get(final int index) {
     return (Outlineable) children.get(index);
   }
 
   /**
-   * The number of outlineable children
-   * @return
+   * The number of outlineable children.
+   * @return the number of children that are outlineable
    */
   public int size() {
     return children.size();
@@ -85,7 +102,19 @@ public class PHPDocument implements OutlineableWithChildren {
     return PHPUiImages.DESC_CLASS;
   }
 
+  /**
+   * Get the parent of the object.
+   * @return the parent of the object
+   */
   public Object getParent() {
     return parent;
   }
+
+  public Position getPosition() {
+    return position;
+  }
+
+  public List getList() {
+    return children;
+  }
 }
\ No newline at end of file