*** empty log message ***
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / MethodDeclaration.java
index 1ee9990..e08010d 100644 (file)
@@ -1,11 +1,10 @@
 package net.sourceforge.phpdt.internal.compiler.ast;
 
-import net.sourceforge.phpdt.internal.compiler.ast.Block;
-import net.sourceforge.phpdt.internal.compiler.ast.ArgumentDeclaration;
 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.Hashtable;
 import java.util.Enumeration;
@@ -17,18 +16,27 @@ import java.util.ArrayList;
  */
 public class MethodDeclaration extends Statement implements OutlineableWithChildren {
 
+  /** The name of the method. */
   public char[] name;
   public Hashtable arguments;
+
+
   public Statement[] statements;
   public int bodyStart;
   public int bodyEnd = -1;
+  /** Tell if the method is a class constructor. */
   public boolean isConstructor;
+
+  /** The parent object. */
   private Object parent;
   /** The outlineable children (those will be in the node array too. */
   private ArrayList children = new ArrayList();
 
+  /** Tell if the method returns a reference. */
   public boolean reference;
 
+  private Position position;
+
   public MethodDeclaration(Object parent,
                            char[] name,
                            Hashtable arguments,
@@ -40,6 +48,7 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild
     this.arguments = arguments;
     this.parent = parent;
     this.reference = reference;
+    position = new Position(sourceStart, sourceEnd);
   }
 
   /**
@@ -49,6 +58,13 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild
    */
   public String toString(int tab) {
     StringBuffer buff = new StringBuffer(tabString(tab));
+    buff.append(toStringHeader());
+    buff.append(toStringStatements(tab + 1));
+    return buff.toString();
+  }
+
+  public String toStringHeader() {
+    StringBuffer buff = new StringBuffer();
     buff.append("function ");//$NON-NLS-1$
     if (reference) {
       buff.append('&');//$NON-NLS-1$
@@ -59,8 +75,8 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild
       Enumeration values = arguments.elements();
       int i = 0;
       while (values.hasMoreElements()) {
-        ArgumentDeclaration o = (ArgumentDeclaration) values.nextElement();
-        buff.append(o.toString(0));
+        VariableDeclaration o = (VariableDeclaration) values.nextElement();
+        buff.append(o.toStringExpression());
         if (i != (arguments.size() - 1)) {
           buff.append(", "); //$NON-NLS-1$
         }
@@ -68,8 +84,6 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild
       }
     }
     buff.append(")"); //$NON-NLS-1$
-
-   buff.append(toStringStatements(tab + 1));
     return buff.toString();
   }
 
@@ -100,6 +114,10 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild
     return PHPUiImages.DESC_FUN;
   }
 
+  public void setParent(Object parent) {
+    this.parent = parent;
+  }
+
   public Object getParent() {
     return parent;
   }
@@ -115,4 +133,12 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild
   public int size() {
     return children.size();
   }
+
+  public String toString() {
+    return toStringHeader();
+  }
+
+  public Position getPosition() {
+    return position;
+  }
 }