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;
*/
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;
public MethodDeclaration(Object parent,
*/
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$
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$
}
}
}
buff.append(")"); //$NON-NLS-1$
-
- buff.append(toStringStatements(tab + 1));
return buff.toString();
}
return PHPUiImages.DESC_FUN;
}
+ public void setParent(Object parent) {
+ this.parent = parent;
+ }
+
public Object getParent() {
return parent;
}
public int size() {
return children.size();
}
+
+ public String toString() {
+ return toStringHeader();
+ }
}