a junit Testcase to test the parser
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / PHPDocument.java
index 41200ae..92dccf0 100644 (file)
@@ -4,8 +4,10 @@ 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.
@@ -21,18 +23,24 @@ public class PHPDocument implements OutlineableWithChildren {
    */
   public AstNode[] nodes;
 
+  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);
   }
 
   /**
@@ -42,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.toString(0));
     }
     return buff.toString();
   }
@@ -58,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);
   }
 
@@ -67,7 +82,7 @@ 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);
   }
 
@@ -94,4 +109,12 @@ public class PHPDocument implements OutlineableWithChildren {
   public Object getParent() {
     return parent;
   }
+
+  public Position getPosition() {
+    return position;
+  }
+
+  public List getList() {
+    return children;
+  }
 }
\ No newline at end of file