X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java index af701a8..5c3a64e 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/MethodDeclaration.java @@ -1,14 +1,15 @@ package net.sourceforge.phpdt.internal.compiler.ast; -import net.sourceforge.phpdt.internal.compiler.ast.Block; 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; import java.util.ArrayList; +import java.util.List; /** * A Method declaration. @@ -26,12 +27,17 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild 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, @@ -43,6 +49,7 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild this.arguments = arguments; this.parent = parent; this.reference = reference; + position = new Position(sourceStart, sourceEnd); } /** @@ -52,30 +59,15 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild */ public String toString(int tab) { StringBuffer buff = new StringBuffer(tabString(tab)); - buff.append("function ");//$NON-NLS-1$ - if (reference) { - buff.append('&');//$NON-NLS-1$ - } - buff.append(name).append("(");//$NON-NLS-1$ - - if (arguments != null) { - Enumeration values = arguments.elements(); - int i = 0; - while (values.hasMoreElements()) { - VariableDeclaration o = (VariableDeclaration) values.nextElement(); - buff.append(o.toStringExpression()); - if (i != (arguments.size() - 1)) { - buff.append(", "); //$NON-NLS-1$ - } - i++; - } - } - buff.append(")"); //$NON-NLS-1$ - - buff.append(toStringStatements(tab + 1)); + buff.append(toStringHeader()); + buff.append(toStringStatements(tab + 1)); return buff.toString(); } + public String toStringHeader() { + return "function " + toString(); + } + /** * Return the statements of the method into Strings * @param tab the number of tabs @@ -103,6 +95,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; } @@ -118,4 +114,35 @@ public class MethodDeclaration extends Statement implements OutlineableWithChild public int size() { return children.size(); } + + public String toString() { + StringBuffer buff = new StringBuffer(); + if (reference) { + buff.append("&");//$NON-NLS-1$ + } + buff.append(name).append("(");//$NON-NLS-1$ + + if (arguments != null) { + Enumeration values = arguments.elements(); + int i = 0; + while (values.hasMoreElements()) { + VariableDeclaration o = (VariableDeclaration) values.nextElement(); + buff.append(o.toStringExpression()); + if (i != (arguments.size() - 1)) { + buff.append(", "); //$NON-NLS-1$ + } + i++; + } + } + buff.append(")"); //$NON-NLS-1$ + return buff.toString(); + } + + public Position getPosition() { + return position; + } + + public List getList() { + return children; + } }