def _cloneBookmarkInSubfolder(self, folder, subfolderName, bookmarkModel, startId) : subfolder = folder.getChild(subfolderName) # Subfolder may not exist, create it if necessary if subfolder == None : subfolder = JSONBookmarksFolder(startId, subfolderName, startId) startId += 1 folder.addChild(subfolder) # We found the subfolder, clone the bookmark subfolder.addChild(bookmarkModel.clone(startId)) startId += 1 return startId
def build (self, bookmarksList, startId, timestamp) : # Bookmarks root root = JSONBookmarksFolder(startId, _PLACES_TITLE, timestamp) root.setRoot(_PLACES_ROOT) startId += 1 # Bookmarks menu folder bookmarksFolder = JSONBookmarksFolder(startId, _BOOKMARKS_MENU_FOLDER_TITLE, timestamp) bookmarksFolder.setRoot(_BOOKMARKS_MENU_FOLDER_ROOT) startId += 1 # Bookmarks tags folder tagsFolder = JSONBookmarksFolder(startId, _TAGS_FOLDER_TITLE, timestamp) tagsFolder.setRoot(_TAGS_FOLDER_ROOT) startId += 1 # Create base structure root.addChild(bookmarksFolder) root.addChild(tagsFolder) bookmarksFolder.setChilds(bookmarksList) # Parse tags for bookmark in bookmarksList : for tag in bookmark.tags.split(_TAGS_SEPARATOR) : startId = self._cloneBookmarkInSubfolder(tagsFolder, tag, bookmark, startId) return root