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;
import java.util.ArrayList;
+import java.util.List;
/**
* A Method declaration.
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,
this.arguments = arguments;
this.parent = parent;
this.reference = reference;
+ position = new Position(sourceStart, sourceEnd);
}
/**
*/
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()) {
- ArgumentDeclaration o = (ArgumentDeclaration) values.nextElement();
- buff.append(o.toString(0));
- 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
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() {
+ 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;
+ }
}