/**
* 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(final Variable name,
final boolean reference,
final Expression initialization,
final int sourceStart) {
- super(name, initialization,VariableDeclaration.EQUAL, 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(final Variable name,
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(variable.toStringExpression());
- 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();
}
}