//# 0 errors, 480 messages
//#
/*
    //#Bookmarks.java:1:1: class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$1
    //#Bookmarks.java:1:1: method: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$1.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$1__static_init
    //#Bookmarks.java:1:1: class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator
    //#Bookmarks.java:1:1: method: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator__static_init
    //#Bookmarks.java:1:1: class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
 * Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  The ASF licenses this file to You
 * under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */

package org.apache.roller.weblogger.ui.struts2.editor;

import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.BookmarkManager;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.pojos.WeblogBookmark;
import org.apache.roller.weblogger.pojos.WeblogBookmarkFolder;
import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.roller.weblogger.util.cache.CacheManager;


/**
 * List bookmarks and folders and allow for moving them around and deleting them.
 */
public class Bookmarks extends UIAction {
    
    private static Log log = LogFactory.getLog(Bookmarks.class);
    //#Bookmarks.java:45: method: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init
    //#Bookmarks.java:45: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks]
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.delete()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.execute()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getAllFolders()Ljava/util/Set;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getFolder()Lorg/apache/roller/weblogger/pojos/WeblogBookmarkFolder;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getFolderId()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getFolderPath()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getSelectedBookmarks()[Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getSelectedFolders()[Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getTargetFolderId()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.move()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.myPrepare()V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.requiredWeblogPermissions()S
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setAllFolders(Ljava/util/Set;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setFolder(Lorg/apache/roller/weblogger/pojos/WeblogBookmarkFolder;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setFolderId(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setFolderPath(Ljava/util/List;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setSelectedBookmarks([Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setSelectedFolders([Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setTargetFolderId(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): log
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.delete()Ljava/lang/String; == &delete
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.execute()Ljava/lang/String; == &execute
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getAllFolders()Ljava/util/Set; == &getAllFolders
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getFolder()Lorg/apache/roller/weblogger/pojos/WeblogBookmarkFolder; == &getFolder
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getFolderId()Ljava/lang/String; == &getFolderId
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getFolderPath()Ljava/util/List; == &getFolderPath
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getSelectedBookmarks()[Ljava/lang/String; == &getSelectedBookmarks
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getSelectedFolders()[Ljava/lang/String; == &getSelectedFolders
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.getTargetFolderId()Ljava/lang/String; == &getTargetFolderId
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.move()Ljava/lang/String; == &move
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.myPrepare()V == &myPrepare
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.requiredWeblogPermissions()S == &requiredWeblogPermissions
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setAllFolders(Ljava/util/Set;)V == &setAllFolders
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setFolder(Lorg/apache/roller/weblogger/pojos/WeblogBookmarkFolder;)V == &setFolder
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setFolderId(Ljava/lang/String;)V == &setFolderId
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setFolderPath(Ljava/util/List;)V == &setFolderPath
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setSelectedBookmarks([Ljava/lang/String;)V == &setSelectedBookmarks
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setSelectedFolders([Ljava/lang/String;)V == &setSelectedFolders
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): __Dispatch_Table.setTargetFolderId(Ljava/lang/String;)V == &setTargetFolderId
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init): init'ed(log)
    //#Bookmarks.java:45: end of method: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks__static_init
    
    // the id of folder being viewed
    private String folderId = null;
    
    // the folder being viewed
    private WeblogBookmarkFolder folder = null;
    
    // the list of folders to move/delete
    private String[] selectedFolders = null;
    
    // the list of bookmarks to move/delete
    private String[] selectedBookmarks = null;
    
    // the target folder to move items to
    private String targetFolderId = null;
    
    // all folders from the action weblog
    private Set allFolders = Collections.EMPTY_SET;
    
    // path of folders representing selected folders hierarchy
    private List folderPath = Collections.EMPTY_LIST;
    
    
    public Bookmarks() {
    //#Bookmarks.java:69: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()
    //#Bookmarks.java:69: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.UIAction()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.UIAction()
    //#input(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): java.util.Collections.EMPTY_LIST
    //#input(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): java.util.Collections.EMPTY_SET
    //#input(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.actionName
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.allFolders
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.desiredMenu
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.folder
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.folderId
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.folderPath
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.pageTitle
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.selectedBookmarks
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.selectedFolders
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.targetFolderId
    //#presumption(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): init'ed(java.util.Collections.EMPTY_LIST)
    //#presumption(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): init'ed(java.util.Collections.EMPTY_SET)
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.actionName == &"bookmarks"
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.allFolders == java.util.Collections.EMPTY_SET
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): (soft) init'ed(this.allFolders)
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.desiredMenu == &"editor"
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.folder == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.folderId == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.selectedBookmarks == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.selectedFolders == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.targetFolderId == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.folderPath == java.util.Collections.EMPTY_LIST
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): (soft) init'ed(this.folderPath)
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()): this.pageTitle == &"bookmarksForm.rootTitle"
        this.actionName = "bookmarks";
        this.desiredMenu = "editor";
        this.pageTitle = "bookmarksForm.rootTitle";
    }
    //#Bookmarks.java:73: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks()
    
    
    // admin perms required
    public short requiredWeblogPermissions() {
        return WeblogPermission.ADMIN;
    //#Bookmarks.java:78: method: short org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.requiredWeblogPermissions()
    //#input(short requiredWeblogPermissions()): org.apache.roller.weblogger.pojos.WeblogPermission.ADMIN
    //#output(short requiredWeblogPermissions()): return_value
    //#presumption(short requiredWeblogPermissions()): init'ed(org.apache.roller.weblogger.pojos.WeblogPermission.ADMIN)
    //#post(short requiredWeblogPermissions()): return_value == org.apache.roller.weblogger.pojos.WeblogPermission.ADMIN
    //#post(short requiredWeblogPermissions()): (soft) init'ed(return_value)
    //#Bookmarks.java:78: end of method: short org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.requiredWeblogPermissions()
    }
    
    
    public void myPrepare() {
        try {
            BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
    //#Bookmarks.java:84: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.myPrepare()
    //#Bookmarks.java:84: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: void myPrepare()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Bookmarks.java:84: Warning: method not available
    //#    -- call on BookmarkManager org.apache.roller.weblogger.business.Weblogger:getBookmarkManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: void myPrepare()
    //#    unanalyzed callee: BookmarkManager org.apache.roller.weblogger.business.Weblogger:getBookmarkManager()
    //#input(void myPrepare()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks]
    //#input(void myPrepare()): __Descendant_Table[others]
    //#input(void myPrepare()): __Dispatch_Table.getFolderId()Ljava/lang/String;
    //#input(void myPrepare()): __Dispatch_Table.setFolder(Lorg/apache/roller/weblogger/pojos/WeblogBookmarkFolder;)V
    //#input(void myPrepare()): log
    //#input(void myPrepare()): this
    //#input(void myPrepare()): this.__Tag
    //#input(void myPrepare()): this.folderId
    //#output(void myPrepare()): this.folder
    //#pre[1] (void myPrepare()): (soft) log != null
    //#pre[4] (void myPrepare()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/Bookmarks
    //#pre[5] (void myPrepare()): (soft) init'ed(this.folderId)
    //#presumption(void myPrepare()): org.apache.roller.weblogger.business.Weblogger:getBookmarkManager(...)@84 != null
    //#presumption(void myPrepare()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@84 != null
    //#post(void myPrepare()): possibly_updated(this.folder)
    //#test_vector(void myPrepare()): java.lang.String:equals(...)@85: {1}, {0}
    //#test_vector(void myPrepare()): org.apache.commons.lang.StringUtils:isEmpty(...)@85: {1}, {0}
            if(!StringUtils.isEmpty(getFolderId()) && 
    //#Bookmarks.java:85: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: void myPrepare()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
                    !"/".equals(getFolderId())) {
                setFolder(bmgr.getFolder(getFolderId()));
    //#Bookmarks.java:87: Warning: method not available
    //#    -- call on WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getFolder(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: void myPrepare()
    //#    unanalyzed callee: WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getFolder(String)
            } else {
                setFolder(bmgr.getRootFolder(getActionWeblog()));
    //#Bookmarks.java:89: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: void myPrepare()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog()
    //#Bookmarks.java:89: Warning: method not available
    //#    -- call on WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getRootFolder(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: void myPrepare()
    //#    unanalyzed callee: WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getRootFolder(Weblog)
            }
        } catch (WebloggerException ex) {
            log.error("Error looking up folder", ex);
    //#Bookmarks.java:92: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: void myPrepare()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
    }
    //#Bookmarks.java:94: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.myPrepare()
    
    
    /**
     * Present the bookmarks and subfolders available in the folder specified
     * by the request.
     */
    public String execute() {
        
        // build list of folders for display
        TreeSet allFolders = new TreeSet(new FolderPathComparator());
    //#Bookmarks.java:104: method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.execute()
    //#input(String execute()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks]
    //#input(String execute()): __Descendant_Table[others]
    //#input(String execute()): __Dispatch_Table.getFolder()Lorg/apache/roller/weblogger/pojos/WeblogBookmarkFolder;
    //#input(String execute()): __Dispatch_Table.getFolderId()Ljava/lang/String;
    //#input(String execute()): __Dispatch_Table.setAllFolders(Ljava/util/Set;)V
    //#input(String execute()): __Dispatch_Table.setFolderPath(Ljava/util/List;)V
    //#input(String execute()): log
    //#input(String execute()): this
    //#input(String execute()): this.__Tag
    //#input(String execute()): this.folder
    //#input(String execute()): this.folderId
    //#output(String execute()): new LinkedList(execute#3) num objects
    //#output(String execute()): new TreeSet(execute#1) num objects
    //#output(String execute()): return_value
    //#output(String execute()): this.allFolders
    //#output(String execute()): this.folderPath
    //#new obj(String execute()): new LinkedList(execute#3)
    //#new obj(String execute()): new TreeSet(execute#1)
    //#pre[1] (String execute()): (soft) log != null
    //#pre[5] (String execute()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/Bookmarks
    //#pre[6] (String execute()): (soft) this.folder != null
    //#pre[7] (String execute()): (soft) init'ed(this.folderId)
    //#presumption(String execute()): java.util.Iterator:next(...)@110 != null
    //#presumption(String execute()): org.apache.roller.weblogger.business.BookmarkManager:getAllFolders(...)@109 != null
    //#presumption(String execute()): org.apache.roller.weblogger.business.Weblogger:getBookmarkManager(...)@108 != null
    //#presumption(String execute()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@108 != null
    //#presumption(String execute()): org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getId(...)@111 != null
    //#post(String execute()): return_value == &"list"
    //#post(String execute()): this.allFolders == One-of{old this.allFolders, &new TreeSet(execute#1)}
    //#post(String execute()): this.folderPath == One-of{old this.folderPath, &new LinkedList(execute#3)}
    //#post(String execute()): new LinkedList(execute#3) num objects <= 1
    //#post(String execute()): new TreeSet(execute#1) num objects == 1
    //#test_vector(String execute()): java.lang.String:equals(...)@111: {1}, {0}
    //#test_vector(String execute()): java.util.Iterator:hasNext(...)@110: {0}, {1}
    //#test_vector(String execute()): java.util.TreeSet:size(...)@133: {-2_147_483_648..0}, {1..4_294_967_295}
    //#test_vector(String execute()): org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getParent(...)@117: Addr_Set{null}, Inverse{null}
        
        try {
            // Build list of all folders, except for current one, sorted by path.
            BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
    //#Bookmarks.java:108: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Bookmarks.java:108: Warning: method not available
    //#    -- call on BookmarkManager org.apache.roller.weblogger.business.Weblogger:getBookmarkManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: BookmarkManager org.apache.roller.weblogger.business.Weblogger:getBookmarkManager()
            List<WeblogBookmarkFolder> folders = bmgr.getAllFolders(getActionWeblog());
    //#Bookmarks.java:109: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog()
    //#Bookmarks.java:109: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.BookmarkManager:getAllFolders(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.BookmarkManager:getAllFolders(Weblog)
            for(WeblogBookmarkFolder fd : folders) {
                if (!fd.getId().equals(getFolderId())) {
    //#Bookmarks.java:111: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getId()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getId()
                    allFolders.add(fd);
                }
            }
            
            // build folder path
            WeblogBookmarkFolder parent = getFolder().getParent();
    //#Bookmarks.java:117: Warning: method not available
    //#    -- call on WeblogBookmarkFolder org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getParent()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: WeblogBookmarkFolder org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getParent()
            if(parent != null) {
                List folderPath = new LinkedList();
                folderPath.add(0, getFolder());
                while (parent != null) {
                    folderPath.add(0, parent);
                    parent = parent.getParent();
    //#Bookmarks.java:123: Warning: method not available
    //#    -- call on WeblogBookmarkFolder org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getParent()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: WeblogBookmarkFolder org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getParent()
                }
                setFolderPath(folderPath);
            }
        } catch (WebloggerException ex) {
            log.error("Error building folders list", ex);
    //#Bookmarks.java:128: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("Error building folders list");
    //#Bookmarks.java:130: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String execute()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addError(String)
        }
        
        if (allFolders.size() > 0) {
            setAllFolders(allFolders);
        }

        return LIST;
    //#Bookmarks.java:137: end of method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.execute()
    }
    
    
    /**
     * Delete folders and bookmarks.
     */
    public String delete() {
        
        BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
    //#Bookmarks.java:146: method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.delete()
    //#Bookmarks.java:146: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Bookmarks.java:146: Warning: method not available
    //#    -- call on BookmarkManager org.apache.roller.weblogger.business.Weblogger:getBookmarkManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: BookmarkManager org.apache.roller.weblogger.business.Weblogger:getBookmarkManager()
    //#input(String delete()): " bookmarks."._tainted
    //#input(String delete()): " folders."._tainted
    //#input(String delete()): "Deleting bookmark - "._tainted
    //#input(String delete()): "Deleting folder - "._tainted
    //#input(String delete()): "Processing delete of "._tainted
    //#input(String delete()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks]
    //#input(String delete()): __Descendant_Table[others]
    //#input(String delete()): __Dispatch_Table.execute()Ljava/lang/String;
    //#input(String delete()): __Dispatch_Table.getFolder()Lorg/apache/roller/weblogger/pojos/WeblogBookmarkFolder;
    //#input(String delete()): __Dispatch_Table.getFolderId()Ljava/lang/String;
    //#input(String delete()): __Dispatch_Table.getSelectedBookmarks()[Ljava/lang/String;
    //#input(String delete()): __Dispatch_Table.getSelectedFolders()[Ljava/lang/String;
    //#input(String delete()): __Dispatch_Table.setAllFolders(Ljava/util/Set;)V
    //#input(String delete()): __Dispatch_Table.setFolderPath(Ljava/util/List;)V
    //#input(String delete()): log
    //#input(String delete()): this
    //#input(String delete()): this.__Tag
    //#input(String delete()): this.folder
    //#input(String delete()): this.folderId
    //#input(String delete()): this.selectedBookmarks
    //#input(String delete()): this.selectedBookmarks.length
    //#input(String delete()): this.selectedBookmarks[0..4_294_967_295]
    //#input(String delete()): this.selectedBookmarks[0..4_294_967_295]._tainted
    //#input(String delete()): this.selectedFolders
    //#input(String delete()): this.selectedFolders.length
    //#input(String delete()): this.selectedFolders[0..4_294_967_295]
    //#input(String delete()): this.selectedFolders[0..4_294_967_295]._tainted
    //#output(String delete()): new LinkedList(execute#3) num objects
    //#output(String delete()): new TreeSet(execute#1) num objects
    //#output(String delete()): return_value
    //#output(String delete()): this.allFolders
    //#output(String delete()): this.folderPath
    //#new obj(String delete()): new LinkedList(execute#3)
    //#new obj(String delete()): new TreeSet(execute#1)
    //#pre[1] (String delete()): log != null
    //#pre[5] (String delete()): this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/Bookmarks
    //#pre[6] (String delete()): (soft) this.folder != null
    //#pre[7] (String delete()): (soft) init'ed(this.folderId)
    //#pre[8] (String delete()): (soft) init'ed(this.selectedBookmarks)
    //#pre[9] (String delete()): (soft) this.selectedBookmarks.length <= 4_294_967_295
    //#pre[10] (String delete()): (soft) init'ed(this.selectedBookmarks[0..4_294_967_295])
    //#pre[12] (String delete()): (soft) init'ed(this.selectedFolders)
    //#pre[13] (String delete()): (soft) this.selectedFolders.length <= 4_294_967_295
    //#pre[14] (String delete()): (soft) init'ed(this.selectedFolders[0..4_294_967_295])
    //#presumption(String delete()): org.apache.roller.weblogger.business.Weblogger:getBookmarkManager(...)@146 != null
    //#presumption(String delete()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@146 != null
    //#presumption(String delete()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@173 != null
    //#post(String delete()): return_value == &"list"
    //#post(String delete()): this.allFolders == One-of{old this.allFolders, &new TreeSet(execute#1)}
    //#post(String delete()): this.folderPath == One-of{old this.folderPath, &new LinkedList(execute#3)}
    //#post(String delete()): new LinkedList(execute#3) num objects <= 1
    //#post(String delete()): new TreeSet(execute#1) num objects == 1
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getBookmarkManager
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog
    //#unanalyzed(String delete()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addError
    //#unanalyzed(String delete()): Effects-of-calling:java.util.TreeSet
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.business.BookmarkManager:getAllFolders
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String delete()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String delete()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getId
    //#unanalyzed(String delete()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(String delete()): Effects-of-calling:java.util.TreeSet:add
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getParent
    //#unanalyzed(String delete()): Effects-of-calling:java.util.LinkedList
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:add
    //#unanalyzed(String delete()): Effects-of-calling:java.util.TreeSet:size
    //#test_vector(String delete()): this.selectedBookmarks: Addr_Set{null}, Inverse{null}
    //#test_vector(String delete()): this.selectedFolders: Addr_Set{null}, Inverse{null}
        
        log.debug("Deleting selected folders and bookmarks.");
    //#Bookmarks.java:148: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
        
        try {
            String folders[] = getSelectedFolders();
            if (null != folders) {
                log.debug("Processing delete of "+folders.length+" folders.");
    //#Bookmarks.java:153: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                for (int i = 0; i < folders.length; i++) {
                    log.debug("Deleting folder - "+folders[i]);
    //#Bookmarks.java:155: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                    WeblogBookmarkFolder fd = bmgr.getFolder(folders[i]);
    //#Bookmarks.java:156: Warning: method not available
    //#    -- call on WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getFolder(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getFolder(String)
                    bmgr.removeFolder(fd); // removes child folders and bookmarks too
    //#Bookmarks.java:157: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.BookmarkManager:removeFolder(WeblogBookmarkFolder)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.BookmarkManager:removeFolder(WeblogBookmarkFolder)
                }
            }
            
            WeblogBookmark bookmark = null;
    //#Bookmarks.java:161: Warning: unused assignment
    //#    unused assignment into bookmark
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    Attribs:  Uncertain
            String bookmarks[] = getSelectedBookmarks();
            if (null != bookmarks) {
                log.debug("Processing delete of "+bookmarks.length+" bookmarks.");
    //#Bookmarks.java:164: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                for (int j = 0; j < bookmarks.length; j++) {
                    log.debug("Deleting bookmark - "+bookmarks[j]);
    //#Bookmarks.java:166: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                    bookmark = bmgr.getBookmark(bookmarks[j]);
    //#Bookmarks.java:167: Warning: method not available
    //#    -- call on WeblogBookmark org.apache.roller.weblogger.business.BookmarkManager:getBookmark(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: WeblogBookmark org.apache.roller.weblogger.business.BookmarkManager:getBookmark(String)
                    bmgr.removeBookmark(bookmark);
    //#Bookmarks.java:168: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.BookmarkManager:removeBookmark(WeblogBookmark)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.BookmarkManager:removeBookmark(WeblogBookmark)
                }
            }
            
            // flush changes
            WebloggerFactory.getWeblogger().flush();
    //#Bookmarks.java:173: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Bookmarks.java:173: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
            
            // notify caches
            CacheManager.invalidate(getActionWeblog());
    //#Bookmarks.java:176: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog()
    //#Bookmarks.java:176: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
            
        } catch (WebloggerException ex) {
            log.error("Error doing folder/bookmark deletes", ex);
    //#Bookmarks.java:179: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("Error doing folder/bookmark deletes");
    //#Bookmarks.java:181: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addError(String)
        }
        
        return execute();
    //#Bookmarks.java:184: end of method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.delete()
    }
    
    
    /**
     * Move folders and bookmarks to a new folder.
     */
    public String move() {
        
        try {
            BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
    //#Bookmarks.java:194: method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.move()
    //#Bookmarks.java:194: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Bookmarks.java:194: Warning: method not available
    //#    -- call on BookmarkManager org.apache.roller.weblogger.business.Weblogger:getBookmarkManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: BookmarkManager org.apache.roller.weblogger.business.Weblogger:getBookmarkManager()
    //#input(String move()): "Moving folders and bookmarks to folder - "._tainted
    //#input(String move()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks]
    //#input(String move()): __Descendant_Table[others]
    //#input(String move()): __Dispatch_Table.execute()Ljava/lang/String;
    //#input(String move()): __Dispatch_Table.getFolder()Lorg/apache/roller/weblogger/pojos/WeblogBookmarkFolder;
    //#input(String move()): __Dispatch_Table.getFolderId()Ljava/lang/String;
    //#input(String move()): __Dispatch_Table.getSelectedBookmarks()[Ljava/lang/String;
    //#input(String move()): __Dispatch_Table.getSelectedFolders()[Ljava/lang/String;
    //#input(String move()): __Dispatch_Table.getTargetFolderId()Ljava/lang/String;
    //#input(String move()): __Dispatch_Table.setAllFolders(Ljava/util/Set;)V
    //#input(String move()): __Dispatch_Table.setFolderPath(Ljava/util/List;)V
    //#input(String move()): log
    //#input(String move()): this
    //#input(String move()): this.__Tag
    //#input(String move()): this.folder
    //#input(String move()): this.folderId
    //#input(String move()): this.selectedBookmarks
    //#input(String move()): this.selectedBookmarks.length
    //#input(String move()): this.selectedBookmarks[0..4_294_967_295]
    //#input(String move()): this.selectedFolders
    //#input(String move()): this.selectedFolders.length
    //#input(String move()): this.selectedFolders[0..4_294_967_295]
    //#input(String move()): this.targetFolderId
    //#input(String move()): this.targetFolderId._tainted
    //#output(String move()): new LinkedList(execute#3) num objects
    //#output(String move()): new TreeSet(execute#1) num objects
    //#output(String move()): return_value
    //#output(String move()): this.allFolders
    //#output(String move()): this.folderPath
    //#new obj(String move()): new LinkedList(execute#3)
    //#new obj(String move()): new TreeSet(execute#1)
    //#pre[1] (String move()): log != null
    //#pre[5] (String move()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/Bookmarks
    //#pre[6] (String move()): (soft) this.folder != null
    //#pre[7] (String move()): (soft) init'ed(this.folderId)
    //#pre[8] (String move()): (soft) init'ed(this.selectedBookmarks)
    //#pre[9] (String move()): (soft) this.selectedBookmarks.length <= 4_294_967_295
    //#pre[10] (String move()): (soft) init'ed(this.selectedBookmarks[0..4_294_967_295])
    //#pre[11] (String move()): (soft) init'ed(this.selectedFolders)
    //#pre[12] (String move()): (soft) this.selectedFolders.length <= 4_294_967_295
    //#pre[13] (String move()): (soft) init'ed(this.selectedFolders[0..4_294_967_295])
    //#pre[14] (String move()): (soft) init'ed(this.targetFolderId)
    //#presumption(String move()): org.apache.roller.weblogger.business.BookmarkManager:getBookmark(...)@220 != null
    //#presumption(String move()): org.apache.roller.weblogger.business.BookmarkManager:getFolder(...)@200 != null
    //#presumption(String move()): org.apache.roller.weblogger.business.BookmarkManager:getFolder(...)@203 != null
    //#presumption(String move()): org.apache.roller.weblogger.business.Weblogger:getBookmarkManager(...)@194 != null
    //#presumption(String move()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@194 != null
    //#presumption(String move()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@227 != null
    //#presumption(String move()): org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getId(...)@206 != null
    //#post(String move()): return_value == &"list"
    //#post(String move()): this.allFolders == One-of{old this.allFolders, &new TreeSet(execute#1)}
    //#post(String move()): this.folderPath == One-of{old this.folderPath, &new LinkedList(execute#3)}
    //#post(String move()): new LinkedList(execute#3) num objects <= 1
    //#post(String move()): new TreeSet(execute#1) num objects == 1
    //#unanalyzed(String move()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String move()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getBookmarkManager
    //#unanalyzed(String move()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog
    //#unanalyzed(String move()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String move()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String move()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addError
    //#unanalyzed(String move()): Effects-of-calling:java.util.TreeSet
    //#unanalyzed(String move()): Effects-of-calling:org.apache.roller.weblogger.business.BookmarkManager:getAllFolders
    //#unanalyzed(String move()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String move()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String move()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String move()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getId
    //#unanalyzed(String move()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(String move()): Effects-of-calling:java.util.TreeSet:add
    //#unanalyzed(String move()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getParent
    //#unanalyzed(String move()): Effects-of-calling:java.util.LinkedList
    //#unanalyzed(String move()): Effects-of-calling:java.util.List:add
    //#unanalyzed(String move()): Effects-of-calling:java.util.TreeSet:size
    //#test_vector(String move()): this.selectedBookmarks: Addr_Set{null}, Inverse{null}
    //#test_vector(String move()): this.selectedFolders: Addr_Set{null}, Inverse{null}
    //#test_vector(String move()): java.lang.String:equals(...)@206: {1}, {0}
    //#test_vector(String move()): org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:descendentOf(...)@206: {1}, {0}
            
            log.debug("Moving folders and bookmarks to folder - "+getTargetFolderId());
    //#Bookmarks.java:196: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
            
            // Move folders to new parent folder.
            String folders[] = getSelectedFolders();
            WeblogBookmarkFolder parent = bmgr.getFolder(getTargetFolderId());
    //#Bookmarks.java:200: Warning: method not available
    //#    -- call on WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getFolder(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getFolder(String)
            if (null != folders) {
                for (int i = 0; i < folders.length; i++) {
                    WeblogBookmarkFolder fd = bmgr.getFolder(folders[i]);
    //#Bookmarks.java:203: Warning: method not available
    //#    -- call on WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getFolder(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: WeblogBookmarkFolder org.apache.roller.weblogger.business.BookmarkManager:getFolder(String)
                    
                    // Don't move folder into itself.
                    if (!fd.getId().equals(parent.getId()) && 
    //#Bookmarks.java:206: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getId()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getId()
    //#Bookmarks.java:206: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:descendentOf(WeblogBookmarkFolder)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:descendentOf(WeblogBookmarkFolder)
                            !parent.descendentOf(fd)) {
                        bmgr.moveFolder(fd, parent);
    //#Bookmarks.java:208: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.BookmarkManager:moveFolder(WeblogBookmarkFolder, WeblogBookmarkFolder)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.BookmarkManager:moveFolder(WeblogBookmarkFolder, WeblogBookmarkFolder)
                    } else {
                        addMessage("bookmarksForm.warn.notMoving", fd.getName());
    //#Bookmarks.java:210: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getName()
    //#Bookmarks.java:210: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addMessage(String, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addMessage(String, String)
                    }
                }
            }
            
            // Move bookmarks to new parent folder.
            String bookmarks[] = getSelectedBookmarks();
            if (null != bookmarks) {
                for (int j = 0; j < bookmarks.length; j++) {
                    // maybe we should be using folder.addBookmark()?
                    WeblogBookmark bd = bmgr.getBookmark(bookmarks[j]);
    //#Bookmarks.java:220: Warning: method not available
    //#    -- call on WeblogBookmark org.apache.roller.weblogger.business.BookmarkManager:getBookmark(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: WeblogBookmark org.apache.roller.weblogger.business.BookmarkManager:getBookmark(String)
                    bd.setFolder(parent);
    //#Bookmarks.java:221: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.WeblogBookmark:setFolder(WeblogBookmarkFolder)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.WeblogBookmark:setFolder(WeblogBookmarkFolder)
                    bmgr.saveBookmark(bd);
    //#Bookmarks.java:222: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.BookmarkManager:saveBookmark(WeblogBookmark)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.BookmarkManager:saveBookmark(WeblogBookmark)
                }
            }
            
            // flush changes
            WebloggerFactory.getWeblogger().flush();
    //#Bookmarks.java:227: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Bookmarks.java:227: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
            
            // notify caches
            CacheManager.invalidate(getActionWeblog());
    //#Bookmarks.java:230: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:getActionWeblog()
    //#Bookmarks.java:230: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
            
        } catch (WebloggerException e) {
            log.error("Error doing folder/bookmark move", e);
    //#Bookmarks.java:233: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            addError("bookmarksForm.error.move");
    //#Bookmarks.java:234: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
    //#    method: String move()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks:addError(String)
        }
        
        return execute();
    //#Bookmarks.java:237: end of method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.move()
    }
    
    
    private static final class FolderPathComparator implements Comparator {
    //#Bookmarks.java:241: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator()
    //#Bookmarks.java:241: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator()
    //#Bookmarks.java:241: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator(Bookmarks$1)
    //#input(void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator(Bookmarks$1)): this
    //#Bookmarks.java:241: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator(Bookmarks$1)
        public int compare(Object o1, Object o2) {
            WeblogBookmarkFolder f1 = (WeblogBookmarkFolder)o1;
    //#Bookmarks.java:243: method: int org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator.compare(Object, Object)
    //#input(int compare(Object, Object)): o1
    //#input(int compare(Object, Object)): o2
    //#output(int compare(Object, Object)): return_value
    //#pre[1] (int compare(Object, Object)): o1 != null
    //#pre[2] (int compare(Object, Object)): o2 != null
    //#presumption(int compare(Object, Object)): org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getPath(...)@245 != null
    //#post(int compare(Object, Object)): init'ed(return_value)
            WeblogBookmarkFolder f2 = (WeblogBookmarkFolder)o2;
            return f1.getPath().compareTo(f2.getPath());
    //#Bookmarks.java:245: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getPath()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator
    //#    method: int compare(Object, Object)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogBookmarkFolder:getPath()
    //#Bookmarks.java:245: end of method: int org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator.compare(Object, Object)
        }
    }
    

    public String getFolderId() {
        return folderId;
    //#Bookmarks.java:251: method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getFolderId()
    //#input(String getFolderId()): this
    //#input(String getFolderId()): this.folderId
    //#output(String getFolderId()): return_value
    //#pre[2] (String getFolderId()): init'ed(this.folderId)
    //#post(String getFolderId()): return_value == this.folderId
    //#post(String getFolderId()): init'ed(return_value)
    //#Bookmarks.java:251: end of method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getFolderId()
    }

    public void setFolderId(String folderId) {
        this.folderId = folderId;
    //#Bookmarks.java:255: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setFolderId(String)
    //#input(void setFolderId(String)): folderId
    //#input(void setFolderId(String)): this
    //#output(void setFolderId(String)): this.folderId
    //#post(void setFolderId(String)): this.folderId == folderId
    //#post(void setFolderId(String)): init'ed(this.folderId)
    }
    //#Bookmarks.java:256: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setFolderId(String)

    public String[] getSelectedFolders() {
        return selectedFolders;
    //#Bookmarks.java:259: method: String[] org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getSelectedFolders()
    //#input(String[] getSelectedFolders()): this
    //#input(String[] getSelectedFolders()): this.selectedFolders
    //#output(String[] getSelectedFolders()): return_value
    //#pre[2] (String[] getSelectedFolders()): init'ed(this.selectedFolders)
    //#post(String[] getSelectedFolders()): return_value == this.selectedFolders
    //#post(String[] getSelectedFolders()): init'ed(return_value)
    //#Bookmarks.java:259: end of method: String[] org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getSelectedFolders()
    }

    public void setSelectedFolders(String[] folders) {
        this.selectedFolders = folders;
    //#Bookmarks.java:263: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setSelectedFolders(String[])
    //#input(void setSelectedFolders(String[])): folders
    //#input(void setSelectedFolders(String[])): this
    //#output(void setSelectedFolders(String[])): this.selectedFolders
    //#post(void setSelectedFolders(String[])): this.selectedFolders == folders
    //#post(void setSelectedFolders(String[])): init'ed(this.selectedFolders)
    }
    //#Bookmarks.java:264: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setSelectedFolders(String[])

    public String[] getSelectedBookmarks() {
        return selectedBookmarks;
    //#Bookmarks.java:267: method: String[] org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getSelectedBookmarks()
    //#input(String[] getSelectedBookmarks()): this
    //#input(String[] getSelectedBookmarks()): this.selectedBookmarks
    //#output(String[] getSelectedBookmarks()): return_value
    //#pre[2] (String[] getSelectedBookmarks()): init'ed(this.selectedBookmarks)
    //#post(String[] getSelectedBookmarks()): return_value == this.selectedBookmarks
    //#post(String[] getSelectedBookmarks()): init'ed(return_value)
    //#Bookmarks.java:267: end of method: String[] org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getSelectedBookmarks()
    }

    public void setSelectedBookmarks(String[] bookmarks) {
        this.selectedBookmarks = bookmarks;
    //#Bookmarks.java:271: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setSelectedBookmarks(String[])
    //#input(void setSelectedBookmarks(String[])): bookmarks
    //#input(void setSelectedBookmarks(String[])): this
    //#output(void setSelectedBookmarks(String[])): this.selectedBookmarks
    //#post(void setSelectedBookmarks(String[])): this.selectedBookmarks == bookmarks
    //#post(void setSelectedBookmarks(String[])): init'ed(this.selectedBookmarks)
    }
    //#Bookmarks.java:272: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setSelectedBookmarks(String[])

    public String getTargetFolderId() {
        return targetFolderId;
    //#Bookmarks.java:275: method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getTargetFolderId()
    //#input(String getTargetFolderId()): this
    //#input(String getTargetFolderId()): this.targetFolderId
    //#output(String getTargetFolderId()): return_value
    //#pre[2] (String getTargetFolderId()): init'ed(this.targetFolderId)
    //#post(String getTargetFolderId()): return_value == this.targetFolderId
    //#post(String getTargetFolderId()): init'ed(return_value)
    //#Bookmarks.java:275: end of method: String org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getTargetFolderId()
    }

    public void setTargetFolderId(String targetFolderId) {
        this.targetFolderId = targetFolderId;
    //#Bookmarks.java:279: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setTargetFolderId(String)
    //#input(void setTargetFolderId(String)): targetFolderId
    //#input(void setTargetFolderId(String)): this
    //#output(void setTargetFolderId(String)): this.targetFolderId
    //#post(void setTargetFolderId(String)): this.targetFolderId == targetFolderId
    //#post(void setTargetFolderId(String)): init'ed(this.targetFolderId)
    }
    //#Bookmarks.java:280: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setTargetFolderId(String)

    public Set getAllFolders() {
        return allFolders;
    //#Bookmarks.java:283: method: Set org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getAllFolders()
    //#input(Set getAllFolders()): this
    //#input(Set getAllFolders()): this.allFolders
    //#output(Set getAllFolders()): return_value
    //#pre[2] (Set getAllFolders()): init'ed(this.allFolders)
    //#post(Set getAllFolders()): return_value == this.allFolders
    //#post(Set getAllFolders()): init'ed(return_value)
    //#Bookmarks.java:283: end of method: Set org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getAllFolders()
    }

    public void setAllFolders(Set allFolders) {
        this.allFolders = allFolders;
    //#Bookmarks.java:287: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setAllFolders(Set)
    //#input(void setAllFolders(Set)): allFolders
    //#input(void setAllFolders(Set)): this
    //#output(void setAllFolders(Set)): this.allFolders
    //#post(void setAllFolders(Set)): this.allFolders == allFolders
    //#post(void setAllFolders(Set)): init'ed(this.allFolders)
    }
    //#Bookmarks.java:288: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setAllFolders(Set)

    public WeblogBookmarkFolder getFolder() {
        return folder;
    //#Bookmarks.java:291: method: WeblogBookmarkFolder org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getFolder()
    //#input(WeblogBookmarkFolder getFolder()): this
    //#input(WeblogBookmarkFolder getFolder()): this.folder
    //#output(WeblogBookmarkFolder getFolder()): return_value
    //#pre[2] (WeblogBookmarkFolder getFolder()): init'ed(this.folder)
    //#post(WeblogBookmarkFolder getFolder()): return_value == this.folder
    //#post(WeblogBookmarkFolder getFolder()): init'ed(return_value)
    //#Bookmarks.java:291: end of method: WeblogBookmarkFolder org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getFolder()
    }

    public void setFolder(WeblogBookmarkFolder folder) {
        this.folder = folder;
    //#Bookmarks.java:295: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setFolder(WeblogBookmarkFolder)
    //#input(void setFolder(WeblogBookmarkFolder)): folder
    //#input(void setFolder(WeblogBookmarkFolder)): this
    //#output(void setFolder(WeblogBookmarkFolder)): this.folder
    //#post(void setFolder(WeblogBookmarkFolder)): this.folder == folder
    //#post(void setFolder(WeblogBookmarkFolder)): init'ed(this.folder)
    }
    //#Bookmarks.java:296: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setFolder(WeblogBookmarkFolder)

    public List getFolderPath() {
        return folderPath;
    //#Bookmarks.java:299: method: List org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getFolderPath()
    //#input(List getFolderPath()): this
    //#input(List getFolderPath()): this.folderPath
    //#output(List getFolderPath()): return_value
    //#pre[2] (List getFolderPath()): init'ed(this.folderPath)
    //#post(List getFolderPath()): return_value == this.folderPath
    //#post(List getFolderPath()): init'ed(return_value)
    //#Bookmarks.java:299: end of method: List org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.getFolderPath()
    }

    public void setFolderPath(List folderPath) {
        this.folderPath = folderPath;
    //#Bookmarks.java:303: method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setFolderPath(List)
    //#input(void setFolderPath(List)): folderPath
    //#input(void setFolderPath(List)): this
    //#output(void setFolderPath(List)): this.folderPath
    //#post(void setFolderPath(List)): this.folderPath == folderPath
    //#post(void setFolderPath(List)): init'ed(this.folderPath)
    }
    //#Bookmarks.java:304: end of method: void org.apache.roller.weblogger.ui.struts2.editor.Bookmarks.setFolderPath(List)
    
}
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$1__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks$1]
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$1__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks$1] == &__Dispatch_Table
    //#Bookmarks.java:: end of method: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$1.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$1__static_init
    //#Bookmarks.java:: end of class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$1
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks$FolderPathComparator]
    //#output(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator__static_init): __Dispatch_Table.compare(Ljava/lang/Object;Ljava/lang/Object;)I
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/Bookmarks$FolderPathComparator] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator__static_init): __Dispatch_Table.compare(Ljava/lang/Object;Ljava/lang/Object;)I == &compare
    //#Bookmarks.java:: end of method: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator.org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator__static_init
    //#Bookmarks.java:: end of class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks$FolderPathComparator
    //#Bookmarks.java:: end of class: org.apache.roller.weblogger.ui.struts2.editor.Bookmarks
