changes.
[IRC.git] / Robust / src / Util / Lattice.java
index aea74773d7ca8936c00105a61a8d6cd6283423bd..b76b7bb0185f4ca7ee3fef7031f7792843d99e09 100644 (file)
@@ -66,10 +66,15 @@ public class Lattice<T> {
   }
 
   public boolean put(T key, T value) {
+    
+    if(isGreaterThan(key, value)){
+      // this relation already exists
+      return false;
+    }
+    
     Set<T> s;
 
     Set<T> topNeighbor = table.get(top);
-
     if (table.containsKey(key)) {
       s = table.get(key);
     } else {
@@ -90,7 +95,10 @@ public class Lattice<T> {
       }
 
       // if value is already connected with top, it is no longer to be
-      topNeighbor.remove(value);
+      if(!key.equals(top)){
+        topNeighbor.remove(value);  
+      }
+      
 
       // if key is already connected with bottom,, it is no longer to be
       if (!value.equals(getBottomItem())) {