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;
+ }
}