X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArgumentDeclaration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArgumentDeclaration.java index 2d6f723..c961dd1 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArgumentDeclaration.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ArgumentDeclaration.java @@ -3,56 +3,66 @@ package net.sourceforge.phpdt.internal.compiler.ast; /** * An argument declaration. + * * @author Matthieu Casanova */ -public class ArgumentDeclaration extends VariableDeclaration { - - /** The argument is a reference or not. */ - public boolean reference; +public final class ArgumentDeclaration extends VariableDeclaration { /** * Create an argument. - * @param name the name - * @param reference the variable is a reference ? + * + * @param name the name + * @param reference the variable is a reference ? * @param initialization the initialization - * @param sourceStart the start point + * @param sourceStart the start point */ - public ArgumentDeclaration(char[] name, - boolean reference, - Expression initialization, - int sourceStart) { - super(name, initialization, sourceStart); + public ArgumentDeclaration(final Variable name, + final boolean reference, + final Expression initialization, + final int sourceStart) { + super(name, initialization, VariableDeclaration.EQUAL, sourceStart); this.reference = reference; } /** * Create an argument. - * @param name the name - * @param reference the variable is a reference ? + * + * @param name the name + * @param reference the variable is a reference ? * @param sourceStart the start point */ - public ArgumentDeclaration(char[] name, - boolean reference, - int sourceStart) { + public ArgumentDeclaration(final Variable name, + final boolean reference, + final int sourceStart) { super(name, sourceStart); this.reference = reference; } + /** * Return the expression as String. + * * @return the expression */ public String toStringExpression() { - final StringBuffer buff; - if (reference) { - buff = new StringBuffer("&$"); + if (initialization == null) { + if (reference) { + return '&' + variable.toStringExpression(); + } else { + return variable.toStringExpression(); + } } else { - buff = new StringBuffer("$"); - } - buff.append(name); - if (initialization != null) { + final String variableString = variable.toStringExpression(); + final String initializationString = initialization.toStringExpression(); + final StringBuffer buff = new StringBuffer(4 + + variableString.length() + + initializationString.length()); + if (reference) { + buff.append('&'); + } + buff.append(variableString); buff.append(" = "); - buff.append(initialization.toStringExpression()); + buff.append(initializationString); + return buff.toString(); } - return buff.toString(); } }