A lot of changes
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPVar.java
diff --git a/net.sourceforge.phpeclipse/src/test/PHPVar.java b/net.sourceforge.phpeclipse/src/test/PHPVar.java
new file mode 100644 (file)
index 0000000..aa2123c
--- /dev/null
@@ -0,0 +1,96 @@
+package test;
+
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+
+/**
+ * A Variable usage. It could be a first use, an in code use of an already declared var.
+ * In fact I'm not sure for the moment I will keep this
+ * @author Matthieu Casanova
+ */
+public class PHPVar {
+
+  /** The name of the variable. It couldn't be changed. */
+  private final String name;
+
+  /** The value. It could change. */
+  private String value;
+
+  private String prefix;
+
+  /**
+   * Does the variable have a value or not.
+   * If we don't know if it was initialized it should be set on true.
+   * (when we have a global keyword for example)
+   */
+  private boolean initialized;
+
+  /** This variable indicate if it is used or not in the code. */
+  private boolean used;
+
+  /**
+   * We initialize the name and the value of the variable.
+   * @param name the name of the variable
+   * @param value the value of the variable
+   */
+  public PHPVar(String name, String value) {
+    this.name = name;
+    this.value = value;
+    initialized = value != null;
+  }
+
+  /**
+   * We initialize the name of the variable. The value will be null
+   * @param name the name of the variable
+   */
+  public PHPVar(String name) {
+    this.name = name;
+  }
+
+  /**
+   * Initialize the variable name and set the initialization status.
+   * @param name the name of the variable
+   * @param initialized the initialization status (it should be true or it's unuseful)
+   */
+  public PHPVar(String name, boolean initialized) {
+    this(name);
+    this.initialized = initialized;
+  }
+
+  /**
+   * Give a prefix to the variable.
+   * @param prefix a prefix
+   */
+  public void setPrefix(String prefix) {
+    this.prefix = prefix;
+  }
+
+  public void setUsed(boolean used) {
+    PHPeclipsePlugin.log(1,name + " is used");
+    this.used = used;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public boolean isUsed() {
+    return used;
+  }
+
+  /**
+   * Return a human readable variable (:
+   * @return  a string representation of the object.
+   */
+  public String toString() {
+    if (value == null) {
+      if (prefix != null) {
+        return prefix + "$" + name;
+      }
+      return "$" + name;
+    }
+    if (prefix != null) {
+      return prefix + "$" + name + "=" + value;
+    }
+    return "$" + name + "=" + value;
+  }
+}