Some minor changes
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / ArgumentDeclaration.java
index e2fa5f4..c961dd1 100644 (file)
@@ -3,32 +3,32 @@ 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(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,
@@ -37,22 +37,32 @@ public class ArgumentDeclaration extends VariableDeclaration {
     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();
   }
 }