Author: toad
Date: 2007-09-14 14:36:49 +0000 (Fri, 14 Sep 2007)
New Revision: 15159

Modified:
   trunk/freenet/src/freenet/clients/http/bookmark/Bookmark.java
   trunk/freenet/src/freenet/clients/http/bookmark/BookmarkCategory.java
   trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
Log:
Don't allow the same bookmark to be added twice.

Modified: trunk/freenet/src/freenet/clients/http/bookmark/Bookmark.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/bookmark/Bookmark.java       
2007-09-14 14:20:04 UTC (rev 15158)
+++ trunk/freenet/src/freenet/clients/http/bookmark/Bookmark.java       
2007-09-14 14:36:49 UTC (rev 15159)
@@ -28,4 +28,14 @@
        public void setDesc(String s) {
                desc = s;
        }
+       
+       public boolean equals(Object o) {
+               if(o instanceof Bookmark) {
+                       Bookmark b = (Bookmark) o;
+                       if(!b.name.equals(name)) return false;
+                       if(!b.desc.equals(desc)) return false;
+                       if(b.privateBookmark != privateBookmark) return false;
+                       return true;
+               } else return false;
+       }
 }

Modified: trunk/freenet/src/freenet/clients/http/bookmark/BookmarkCategory.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/bookmark/BookmarkCategory.java       
2007-09-14 14:20:04 UTC (rev 15158)
+++ trunk/freenet/src/freenet/clients/http/bookmark/BookmarkCategory.java       
2007-09-14 14:36:49 UTC (rev 15159)
@@ -17,12 +17,14 @@
                setDesc(desc);
        }

-       protected Bookmark addBookmark(Bookmark b) {
+       protected synchronized Bookmark addBookmark(Bookmark b) {
+               int x = bookmarks.indexOf(b);
+               if(x >= 0) return (Bookmark) bookmarks.get(x);
                bookmarks.add(b);
                return b;
        }

-       protected void removeBookmark(Bookmark b) {
+       protected synchronized void removeBookmark(Bookmark b) {
                bookmarks.remove(b);
        }

@@ -123,4 +125,6 @@
                for (int i = 0; i < size(); i++)
                        subCategories.get(i).setPrivate(bool);
        }
+       
+       // Don't override equals(), two categories are equal if they have the 
same name and description.
 }

Modified: trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java   
2007-09-14 14:20:04 UTC (rev 15158)
+++ trunk/freenet/src/freenet/clients/http/bookmark/BookmarkItem.java   
2007-09-14 14:36:49 UTC (rev 15159)
@@ -153,4 +153,14 @@
        public USK getUSK() throws MalformedURLException {
                return USK.create(key);
        }
+       
+       public boolean equals(Object o) {
+               if(o instanceof BookmarkItem) {
+                       BookmarkItem b = (BookmarkItem) o;
+                       if(!super.equals(o)) return false;
+                       if(!b.key.equals(key)) return false;
+                       if(b.alerts != alerts) return false; // Belongs to a 
different node???
+                       return true;
+               } else return false;
+       }
 }


Reply via email to