be35c1d790d0b7ee5c28e2eec38ecc8a1a65a64a
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / ArgumentDeclaration.java
1 package net.sourceforge.phpdt.internal.compiler.ast;
2
3
4 /**
5  * An argument declaration.
6  * @author Matthieu Casanova
7  */
8 public class ArgumentDeclaration extends VariableDeclaration {
9
10   /** The argument is a reference or not. */
11   public boolean reference;
12
13   /**
14    * Create an argument.
15    * @param name the name
16    * @param reference the variable is a reference ?
17    * @param initialization the initialization
18    * @param sourceStart the start point
19    */
20   public ArgumentDeclaration(final char[] name,
21                              final boolean reference,
22                              final Expression initialization,
23                              final int sourceStart) {
24     super(name, initialization,VariableDeclaration.EQUAL, sourceStart);
25     this.reference = reference;
26   }
27
28   /**
29    * Create an argument.
30    * @param name the name
31    * @param reference the variable is a reference ?
32    * @param sourceStart the start point
33    */
34   public ArgumentDeclaration(final char[] name,
35                              final boolean reference,
36                              final int sourceStart) {
37     super(name, sourceStart);
38     this.reference = reference;
39   }
40   /**
41    * Return the expression as String.
42    * @return the expression
43    */
44   public String toStringExpression() {
45     final StringBuffer buff;
46     if (reference) {
47       buff = new StringBuffer("&$");
48     } else {
49       buff = new StringBuffer("$");
50     }
51     buff.append(name);
52     if (initialization != null) {
53       buff.append(" = ");
54       buff.append(initialization.toStringExpression());
55     }
56     return buff.toString();
57   }
58 }