A lot of changes
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPVar.java
1 package test;
2
3 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
4
5 /**
6  * A Variable usage. It could be a first use, an in code use of an already declared var.
7  * In fact I'm not sure for the moment I will keep this
8  * @author Matthieu Casanova
9  */
10 public class PHPVar {
11
12   /** The name of the variable. It couldn't be changed. */
13   private final String name;
14
15   /** The value. It could change. */
16   private String value;
17
18   private String prefix;
19
20   /**
21    * Does the variable have a value or not.
22    * If we don't know if it was initialized it should be set on true.
23    * (when we have a global keyword for example)
24    */
25   private boolean initialized;
26
27   /** This variable indicate if it is used or not in the code. */
28   private boolean used;
29
30   /**
31    * We initialize the name and the value of the variable.
32    * @param name the name of the variable
33    * @param value the value of the variable
34    */
35   public PHPVar(String name, String value) {
36     this.name = name;
37     this.value = value;
38     initialized = value != null;
39   }
40
41   /**
42    * We initialize the name of the variable. The value will be null
43    * @param name the name of the variable
44    */
45   public PHPVar(String name) {
46     this.name = name;
47   }
48
49   /**
50    * Initialize the variable name and set the initialization status.
51    * @param name the name of the variable
52    * @param initialized the initialization status (it should be true or it's unuseful)
53    */
54   public PHPVar(String name, boolean initialized) {
55     this(name);
56     this.initialized = initialized;
57   }
58
59   /**
60    * Give a prefix to the variable.
61    * @param prefix a prefix
62    */
63   public void setPrefix(String prefix) {
64     this.prefix = prefix;
65   }
66
67   public void setUsed(boolean used) {
68     PHPeclipsePlugin.log(1,name + " is used");
69     this.used = used;
70   }
71
72   public String getName() {
73     return name;
74   }
75
76   public boolean isUsed() {
77     return used;
78   }
79
80   /**
81    * Return a human readable variable (:
82    * @return  a string representation of the object.
83    */
84   public String toString() {
85     if (value == null) {
86       if (prefix != null) {
87         return prefix + "$" + name;
88       }
89       return "$" + name;
90     }
91     if (prefix != null) {
92       return prefix + "$" + name + "=" + value;
93     }
94     return "$" + name + "=" + value;
95   }
96 }