exo6: add the full implementation.
[Project_POO.git] / exo6 / Variable.java
index 30b7830a2b239517fcd0041c973229fe40c304ae..807ec8dceb6bc3e8bdeba59e730a0e137267c395 100644 (file)
@@ -1,24 +1,32 @@
 import java.util.TreeMap;
+import java.util.Map.Entry;
 
 class Variable extends Terme {
-    TreeMap<Character, Double> v;
+    //TODO: TreeMap might look overkill
+    TreeMap<Integer, Double> v;
 
-    Variable(Character c) throws NotCharacterException {
-        v = new TreeMap<Character, Double>();
-        //TODO?: remove extragenous whitespace
-        if (Character.isLetterOrDigit(c)) {
-            v.put(c, 0.0); // we suppose the default variable value is 0
-        } else {
-            throw new NotCharacterException(c + " is not a character type");
+    Variable() {
+        v = new TreeMap<Integer, Double>();
+        fill();
+    }
+
+    private void fill() {
+        int i = 0;
+        for (double d = -5.0; d <= 5.0; d = d + 0.25) {
+            v.put(i, d);
+            i++;
         }
     }
 
-    private boolean isVariable() {
-        //FIXME: this cover more than latin alphabet
-        return Character.isLetter(v.firstKey());
+    public Entry<Integer, Double> getFirstEntry() {
+        return v.firstEntry();
+    }
+
+    public Integer size() {
+        return v.size();
     }
 
     public double evaluer() {
-        return 0.0;
+        return v.pollFirstEntry().getValue();
     }
 }