/**
* An argument declaration.
+ *
* @author Matthieu Casanova
*/
-public class ArgumentDeclaration extends VariableDeclaration {
-
- public boolean reference;
+public final class ArgumentDeclaration extends VariableDeclaration {
/**
* Create an argument.
+ *
+ * @param name the name
+ * @param reference the variable is a reference ?
* @param initialization the initialization
- * @param name the name
+ * @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);
+ this.reference = reference;
+ }
+
+ /**
+ * Create an argument.
+ *
+ * @param name the name
+ * @param reference the variable is a reference ?
* @param sourceStart the start point
*/
- public ArgumentDeclaration(char[] name,
- Expression initialization,
- int sourceStart,
- boolean reference) {
- super(name, initialization, 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();
}
}