diff --git a/htroot/xml/bookmarks/tags_p.java b/htroot/xml/bookmarks/tags/get_p.java similarity index 91% rename from htroot/xml/bookmarks/tags_p.java rename to htroot/xml/bookmarks/tags/get_p.java index d13faabaf..4f6674612 100644 --- a/htroot/xml/bookmarks/tags_p.java +++ b/htroot/xml/bookmarks/tags/get_p.java @@ -1,4 +1,4 @@ -// /xml.bookmarks/tags_p.java +// /xml.bookmarks/tags/get_p.java // ------------------------------- // part of the AnomicHTTPD caching proxy // (C) by Michael Peter Christen; mc@anomic.de @@ -44,7 +44,7 @@ // javac -classpath .:../classes IndexCreate_p.java // if the shell's current path is HTROOT -//package xml.bookmarks; +//package xml.bookmarks.tags; import java.util.Iterator; @@ -54,15 +54,12 @@ import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; -public class tags_p { +public class get_p { public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { // return variable that accumulates replacements plasmaSwitchboard switchboard = (plasmaSwitchboard) env; serverObjects prop = new serverObjects(); - //rename tags - if(post != null && post.containsKey("old") && post.containsKey("new")){ - switchboard.bookmarksDB.renameTag((String)post.get("old"), (String)post.get("new")); - } + Iterator it=switchboard.bookmarksDB.tagIterator(true); int count=0; bookmarksDB.Tag tag; diff --git a/htroot/xml/bookmarks/tags_p.xml b/htroot/xml/bookmarks/tags/get_p.xml similarity index 100% rename from htroot/xml/bookmarks/tags_p.xml rename to htroot/xml/bookmarks/tags/get_p.xml diff --git a/htroot/xml/bookmarks/tags/rename_p.java b/htroot/xml/bookmarks/tags/rename_p.java new file mode 100644 index 000000000..5a35e67fb --- /dev/null +++ b/htroot/xml/bookmarks/tags/rename_p.java @@ -0,0 +1,75 @@ +// /xml.bookmarks/tags/rename_p.java +// ------------------------------- +// part of the AnomicHTTPD caching proxy +// (C) by Michael Peter Christen; mc@anomic.de +// first published on http://www.anomic.de +// Frankfurt, Germany, 2004, 2005 +// last major change: 28.12.2005 +// this file is contributed by Alexander Schier +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// Using this software in any meaning (reading, learning, copying, compiling, +// running) means that you agree that the Author(s) is (are) not responsible +// for cost, loss of data or any harm that may be caused directly or indirectly +// by usage of this softare or this documentation. The usage of this software +// is on your own risk. The installation and usage (starting/running) of this +// software may allow other people or application to access your computer and +// any attached devices and is highly dependent on the configuration of the +// software which must be done by the user of the software; the author(s) is +// (are) also not responsible for proper configuration and usage of the +// software, even if provoked by documentation provided together with +// the software. +// +// Any changes to this file according to the GPL as documented in the file +// gpl.txt aside this file in the shipment you received can be done to the +// lines that follows this copyright notice here, but changes must not be +// done inside the copyright notive above. A re-distribution must contain +// the intact and unchanged copyright notice. +// Contributions and changes to the program code must be marked as such. + +// You must compile this file with +// javac -classpath .:../classes IndexCreate_p.java +// if the shell's current path is HTROOT + +//package xml.bookmarks.tags; + +import java.util.Iterator; + +import de.anomic.data.bookmarksDB; +import de.anomic.http.httpHeader; +import de.anomic.plasma.plasmaSwitchboard; +import de.anomic.server.serverObjects; +import de.anomic.server.serverSwitch; + +public class rename_p { + public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { + // return variable that accumulates replacements + plasmaSwitchboard switchboard = (plasmaSwitchboard) env; + serverObjects prop = new serverObjects(); + prop.put("result",0);//error + //rename tags + if(post != null && post.containsKey("old") && post.containsKey("new")){ + if(switchboard.bookmarksDB.renameTag((String)post.get("old"), (String)post.get("new"))) + prop.put("result", 1);//success + } + // return rewrite properties + return prop; + } + +} + + + diff --git a/htroot/xml/bookmarks/tags/rename_p.xml b/htroot/xml/bookmarks/tags/rename_p.xml new file mode 100644 index 000000000..76dfc3b2f --- /dev/null +++ b/htroot/xml/bookmarks/tags/rename_p.xml @@ -0,0 +1,2 @@ + +#(result)#something went wrong::done#(/result)# \ No newline at end of file diff --git a/source/de/anomic/data/bookmarksDB.java b/source/de/anomic/data/bookmarksDB.java index 462d22d9d..06424fe14 100644 --- a/source/de/anomic/data/bookmarksDB.java +++ b/source/de/anomic/data/bookmarksDB.java @@ -178,25 +178,30 @@ public class bookmarksDB { return null; } } - public void renameTag(String oldName, String newName){ + public boolean renameTag(String oldName, String newName){ Tag tag=getTag(oldName); - Vector urlHashes=tag.getUrlHashes(); - try { - tagsTable.remove(oldName); - } catch (IOException e) {} - tag.tagName=newName; - tag.setTagsTable(); - Iterator it=urlHashes.iterator(); - Bookmark bookmark; - Vector tags; - while(it.hasNext()){ - bookmark=getBookmark((String) it.next()); - tags=string2vector(bookmark.getTags()); - tags.remove(oldName); - tags.add(newName); - bookmark.setTags(tags); - bookmark.setBookmarksTable(); + if (tag != null) { + Vector urlHashes = tag.getUrlHashes(); + try { + tagsTable.remove(oldName); + } catch (IOException e) { + } + tag.tagName = newName; + tag.setTagsTable(); + Iterator it = urlHashes.iterator(); + Bookmark bookmark; + Vector tags; + while (it.hasNext()) { + bookmark = getBookmark((String) it.next()); + tags = string2vector(bookmark.getTags()); + tags.remove(oldName); + tags.add(newName); + bookmark.setTags(tags); + bookmark.setBookmarksTable(); + } + return true; } + return false; } public void removeTag(String tagName){ try {