Package org.apache.roller.pojos

Examples of org.apache.roller.pojos.BookmarkData


    {
        Iterator bookmarks = folder.getBookmarks().iterator();
        String workingText = text;
        while (bookmarks.hasNext())
        {
            BookmarkData bookmark = (BookmarkData)bookmarks.next();
            String bkDescription = bookmark.getDescription();
            if (bkDescription == null) bkDescription = "";
            String bookmarkLink = "<a href=\"" +
                bookmark.getUrl() + "\" title=\"" +
                bkDescription + "\">" +
                bookmark.getName() + "</a>";
            try
            {
                // Replace all occurrences of bookmark name that don't occur within the bounds of an anchor tag
                // Notes:
                // - use reluctant quantifiers on the tags to avoid gobbling more than desired
                // - use non-capturing groups for boundaries to avoid replacing the boundary as well as the bookmark name.
                // - we depend on the numbering of the specific groups in this expression in the replacement code below.
                // TODO: should escape the bookmark name
                String regEx = "(<a(?:\\s.*?)??/>)|(<a(?:\\s.*?)??>)|(</a(?:\\s.*?)??>)|(?:\\b)(" + bookmark.getName() + ")(?:\\b)";
                Matcher m = Pattern.compile(regEx).matcher(workingText);
                StringBuffer textBuf = new StringBuffer(workingText.length());
                int inLink = 0;
                while (m.find())
                {
                    if (m.group(1) != null)
                    {
                        // self-closed anchor tag <a  ... /> -- ignore
                    }
                    else if (m.group(2) != null)
                    {
                        // matched opening anchor tag <a ...>
                        inLink++;
                    }
                    else if (m.group(3) != null)
                    {
                        // closing anchor tag </a>, but ignore nonmatching ones
                        if (inLink > 0) inLink--;
                    }
                    else if (m.group(4) != null)
                    {
                        // matched the bookmark -- replace, but only if not within a link tag.
                        if (inLink == 0) m.appendReplacement(textBuf, bookmarkLink);
                    }
                    // Any remaining case indicates a bug.  One could add an else with assertion here.  Conservatively don't substitute.
                }
                m.appendTail(textBuf);
                workingText = textBuf.toString();
            }
            catch (PatternSyntaxException e)
            {
                // Can happen since we don't escape pattern the bookmark name to protect pattern characters.
                mLogger.warn("Failed to substitute for bookmark [" + bookmark.getName() + "] due to regular expression characters.");
            }
        }
        return workingText.toString();
    }
View Full Code Here


        if (blogroll != null) {
            String[] splitroll = blogroll.split(",");
            for (int i=0; i<splitroll.length; i++) {
                String[] rollitems = splitroll[i].split("\\|");
                if (rollitems != null && rollitems.length > 1) {
                    BookmarkData b = new BookmarkData(
                            root,                // parent
                            rollitems[0],        // name
                            "",                  // description
                            rollitems[1].trim(), // url
                            null,                // feedurl
View Full Code Here

        this.strategy.store(bookmark);
    }
   
   
    public BookmarkData getBookmark(String id) throws RollerException {
        BookmarkData bd = (BookmarkData)
        strategy.load(id, BookmarkData.class);
        // TODO: huh?  why do we do this?
        if (bd != null) bd.setBookmarkManager(this);
        return bd;
    }
View Full Code Here

            // Currently bookmarks must have at least a name and HTML url to be stored. Previous logic was
            // trying to skip invalid ones, but was letting ones with an xml url and no html url through
            // which could result in a db exception.
            // TODO: Consider providing error feedback instead of silently skipping the invalid bookmarks here.
            if (null != title && null != url) {
                BookmarkData bd = new BookmarkData(parent,
                        title,
                        desc,
                        url,
                        xmlUrl,
                        new Integer(0),
View Full Code Here

        try {
            // Add to destination folder
            LinkedList deleteList = new LinkedList();
            Iterator srcBookmarks = src.getBookmarks().iterator();
            while (srcBookmarks.hasNext()) {
                BookmarkData bd = (BookmarkData)srcBookmarks.next();
                deleteList.add(bd);
               
                BookmarkData movedBd = new BookmarkData();
                movedBd.setData(bd);
                movedBd.setId(null);
               
                dest.addBookmark(movedBd);
                this.strategy.store(movedBd);
            }
           
            // Remove from source folder
            Iterator deleteIter = deleteList.iterator();
            while (deleteIter.hasNext()) {
                BookmarkData bd = (BookmarkData)deleteIter.next();
                src.removeBookmark(bd);
                // TODO: this won't conflict with the bookmark we store above right?
                this.strategy.remove(bd);
            }
           
View Full Code Here

    public void removeFolderContents(FolderData src) throws RollerException {
       
        // just go through the folder and remove each bookmark
        Iterator srcBookmarks = src.getBookmarks().iterator();
        while (srcBookmarks.hasNext()) {
            BookmarkData bd = (BookmarkData)srcBookmarks.next();
            this.strategy.remove(bd);
        }
    }
View Full Code Here

                            .createCriteria(BookmarkData.class);
                    bookmarksQuery.add(Expression.eq("folder", assoc
                            .getFolder()));
                    Iterator bookmarkIter = bookmarksQuery.list().iterator();
                    while (bookmarkIter.hasNext()) {
                        BookmarkData entry = (BookmarkData) bookmarkIter.next();
                        bookmarks.add(entry);
                    }
                }
            }
           
            // get bookmarks in folder
            Criteria bookmarksQuery = session
                    .createCriteria(BookmarkData.class);
            bookmarksQuery.add(Expression.eq("folder", folder));
            Iterator bookmarkIter = bookmarksQuery.list().iterator();
            while (bookmarkIter.hasNext()) {
                BookmarkData bookmark = (BookmarkData) bookmarkIter.next();
                bookmarks.add(bookmark);
            }
            return bookmarks;
        } catch (HibernateException e) {
            throw new RollerException(e);
View Full Code Here

        // Build map of the user's bookmarks
        userBookmarks = buildBookmarkMap(website);

        // Determine default topic site from bookmark if present
        BookmarkData defaultTopicBookmark = (BookmarkData) userBookmarks.get(defaultTopicBookmarkName);
        if (defaultTopicBookmark != null) defaultTopicSite = defaultTopicBookmark.getUrl();

        // Append / to defaultTopicSite if it doesn't have it
        if (!defaultTopicSite.endsWith("/"))
        {
            defaultTopicSite += "/";
View Full Code Here

     * @return String form of the URL from the bookmark by that name from any of the user's folders, or null if not
     *         found.
     */
    protected String getBookmarkSite(String bookmarkName)
    {
        BookmarkData bookmark = (BookmarkData) getUserBookmarks().get(bookmarkName);
        return bookmark == null ? null : bookmark.getUrl();
    }
View Full Code Here

            BookmarkManager bMgr = RollerFactory.getRoller().getBookmarkManager();
            List bookmarks = bMgr.getBookmarks(bMgr.getRootFolder(website), true);

            for (Iterator i = bookmarks.iterator(); i.hasNext();)
            {
                BookmarkData b = (BookmarkData) i.next();
                bookmarkMap.put(b.getName(), b);
            }
        }
        return bookmarkMap;
    }
View Full Code Here

TOP

Related Classes of org.apache.roller.pojos.BookmarkData

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.