Example usage for com.liferay.portal.kernel.util StringUtil shorten

List of usage examples for com.liferay.portal.kernel.util StringUtil shorten

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util StringUtil shorten.

Prototype

public static String shorten(String s, int length, String suffix) 

Source Link

Document

Returns a string representing the original string appended with the specified suffix and then shortened to the specified length.

Usage

From source file:com.liferay.blogs.service.impl.BlogsEntryServiceImpl.java

License:Open Source License

protected String exportToRSS(String name, String description, String type, double version, String displayStyle,
        String feedURL, String entryURL, List<BlogsEntry> blogsEntries, ThemeDisplay themeDisplay) {

    SyndFeed syndFeed = new SyndFeedImpl();

    syndFeed.setDescription(description);

    List<SyndEntry> syndEntries = new ArrayList<>();

    syndFeed.setEntries(syndEntries);/*  w  w  w.j a  v a  2  s.co  m*/

    for (BlogsEntry entry : blogsEntries) {
        SyndEntry syndEntry = new SyndEntryImpl();

        String author = PortalUtil.getUserName(entry);

        syndEntry.setAuthor(author);

        SyndContent syndContent = new SyndContentImpl();

        syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT);

        String value = null;

        if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) {
            String summary = entry.getDescription();

            if (Validator.isNull(summary)) {
                summary = entry.getContent();
            }

            value = StringUtil.shorten(HtmlUtil.extractText(summary), PropsValues.BLOGS_RSS_ABSTRACT_LENGTH,
                    StringPool.BLANK);
        } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) {
            value = StringPool.BLANK;
        } else {
            value = StringUtil.replace(entry.getContent(), new String[] { "href=\"/", "src=\"/" },
                    new String[] { "href=\"" + themeDisplay.getURLPortal() + "/",
                            "src=\"" + themeDisplay.getURLPortal() + "/" });
        }

        syndContent.setValue(value);

        syndEntry.setDescription(syndContent);

        StringBundler sb = new StringBundler(4);

        sb.append(entryURL);

        if (!entryURL.endsWith(StringPool.QUESTION)) {
            sb.append(StringPool.AMPERSAND);
        }

        sb.append("entryId=");
        sb.append(entry.getEntryId());

        String link = sb.toString();

        syndEntry.setLink(link);

        syndEntry.setPublishedDate(entry.getDisplayDate());
        syndEntry.setTitle(entry.getTitle());
        syndEntry.setUpdatedDate(entry.getModifiedDate());
        syndEntry.setUri(link);

        syndEntries.add(syndEntry);
    }

    syndFeed.setFeedType(RSSUtil.getFeedType(type, version));

    List<SyndLink> syndLinks = new ArrayList<>();

    syndFeed.setLinks(syndLinks);

    SyndLink selfSyndLink = new SyndLinkImpl();

    syndLinks.add(selfSyndLink);

    selfSyndLink.setHref(feedURL);
    selfSyndLink.setRel("self");

    syndFeed.setPublishedDate(new Date());
    syndFeed.setTitle(name);
    syndFeed.setUri(feedURL);

    try {
        return RSSUtil.export(syndFeed);
    } catch (FeedException fe) {
        throw new SystemException(fe);
    }
}

From source file:com.liferay.portlet.blogs.service.impl.BlogsEntryServiceImpl.java

License:Open Source License

protected String exportToRSS(String name, String description, String type, double version, String displayStyle,
        String feedURL, String entryURL, List<BlogsEntry> blogsEntries, ThemeDisplay themeDisplay)
        throws SystemException {

    SyndFeed syndFeed = new SyndFeedImpl();

    syndFeed.setFeedType(RSSUtil.getFeedType(type, version));
    syndFeed.setTitle(name);/*from   w w  w  .  j  a  v a 2  s .c o m*/
    syndFeed.setLink(feedURL);
    syndFeed.setDescription(description);

    List<SyndEntry> syndEntries = new ArrayList<SyndEntry>();

    syndFeed.setEntries(syndEntries);

    for (BlogsEntry entry : blogsEntries) {
        String author = HtmlUtil.escape(PortalUtil.getUserName(entry.getUserId(), entry.getUserName()));

        StringBundler link = new StringBundler(4);

        if (entryURL.endsWith("/blogs/rss")) {
            link.append(entryURL.substring(0, entryURL.length() - 3));
            link.append(entry.getUrlTitle());
        } else {
            link.append(entryURL);

            if (!entryURL.endsWith(StringPool.QUESTION)) {
                link.append(StringPool.AMPERSAND);
            }

            link.append("entryId=");
            link.append(entry.getEntryId());
        }

        String value = null;

        if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) {
            value = StringUtil.shorten(HtmlUtil.extractText(entry.getDescription()),
                    PropsValues.BLOGS_RSS_ABSTRACT_LENGTH, StringPool.BLANK);
        } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) {
            value = StringPool.BLANK;
        } else {
            value = StringUtil.replace(entry.getContent(), new String[] { "href=\"/", "src=\"/" },
                    new String[] { "href=\"" + themeDisplay.getURLPortal() + "/",
                            "src=\"" + themeDisplay.getURLPortal() + "/" });
        }

        SyndEntry syndEntry = new SyndEntryImpl();

        syndEntry.setAuthor(author);
        syndEntry.setTitle(entry.getTitle());
        syndEntry.setLink(link.toString());
        syndEntry.setUri(syndEntry.getLink());
        syndEntry.setPublishedDate(entry.getCreateDate());
        syndEntry.setUpdatedDate(entry.getModifiedDate());

        SyndContent syndContent = new SyndContentImpl();

        syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT);
        syndContent.setValue(value);

        syndEntry.setDescription(syndContent);

        syndEntries.add(syndEntry);
    }

    try {
        return RSSUtil.export(syndFeed);
    } catch (FeedException fe) {
        throw new SystemException(fe);
    }
}

From source file:com.liferay.portlet.messageboards.service.impl.MBMessageServiceImpl.java

License:Open Source License

protected String exportToRSS(String name, String description, String type, double version, String displayStyle,
        String feedURL, String entryURL, List<MBMessage> messages, ThemeDisplay themeDisplay)
        throws SystemException {

    SyndFeed syndFeed = new SyndFeedImpl();

    syndFeed.setFeedType(RSSUtil.getFeedType(type, version));
    syndFeed.setTitle(name);//from  w  w  w .j  a v a 2s .  com
    syndFeed.setLink(feedURL);
    syndFeed.setDescription(description);

    List<SyndEntry> syndEntries = new ArrayList<SyndEntry>();

    syndFeed.setEntries(syndEntries);

    Iterator<MBMessage> itr = messages.iterator();

    while (itr.hasNext()) {
        MBMessage message = itr.next();

        String author = HtmlUtil.escape(PortalUtil.getUserName(message.getUserId(), message.getUserName()));

        String value = null;

        if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) {
            value = StringUtil.shorten(HtmlUtil.extractText(message.getBody()),
                    PropsValues.MESSAGE_BOARDS_RSS_ABSTRACT_LENGTH, StringPool.BLANK);
        } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) {
            value = StringPool.BLANK;
        } else {
            value = BBCodeTranslatorUtil.getHTML(message.getBody());

            value = StringUtil.replace(value, new String[] { "@theme_images_path@", "href=\"/", "src=\"/" },
                    new String[] { themeDisplay.getURLPortal() + themeDisplay.getPathThemeImages(),
                            "href=\"" + themeDisplay.getURLPortal() + "/",
                            "src=\"" + themeDisplay.getURLPortal() + "/" });
        }

        SyndEntry syndEntry = new SyndEntryImpl();

        if (!message.isAnonymous()) {
            syndEntry.setAuthor(author);
        }

        syndEntry.setTitle(message.getSubject());
        syndEntry.setLink(entryURL + "&messageId=" + message.getMessageId());
        syndEntry.setUri(syndEntry.getLink());
        syndEntry.setPublishedDate(message.getCreateDate());
        syndEntry.setUpdatedDate(message.getModifiedDate());

        SyndContent syndContent = new SyndContentImpl();

        syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT);
        syndContent.setValue(value);

        syndEntry.setDescription(syndContent);

        syndEntries.add(syndEntry);
    }

    try {
        return RSSUtil.export(syndFeed);
    } catch (FeedException fe) {
        throw new SystemException(fe);
    }
}

From source file:com.liferay.portlet.tags.service.impl.TagsAssetLocalServiceImpl.java

License:Open Source License

public TagsAsset updateAsset(long userId, long groupId, String className, long classPK, String[] categoryNames,
        String[] entryNames, boolean visible, Date startDate, Date endDate, Date publishDate,
        Date expirationDate, String mimeType, String title, String description, String summary, String url,
        int height, int width, Integer priority, boolean sync) throws PortalException, SystemException {

    // Asset/*from www  . ja  v  a2 s  . c o m*/

    User user = userPersistence.findByPrimaryKey(userId);
    long classNameId = PortalUtil.getClassNameId(className);

    if (entryNames == null) {
        entryNames = new String[0];
    }

    if (categoryNames == null) {
        categoryNames = new String[0];
    }

    title = StringUtil.shorten(title, 300, StringPool.BLANK);
    Date now = new Date();

    validate(className, entryNames);

    TagsAsset asset = tagsAssetPersistence.fetchByC_C(classNameId, classPK);

    boolean isNewAssetEntry = false;

    if (asset == null) {
        isNewAssetEntry = true;
        long assetId = counterLocalService.increment();

        asset = tagsAssetPersistence.create(assetId);

        asset.setCompanyId(user.getCompanyId());
        asset.setUserId(user.getUserId());
        asset.setUserName(user.getFullName());
        asset.setCreateDate(now);
        asset.setClassNameId(classNameId);
        asset.setClassPK(classPK);
        asset.setVisible(visible);
        asset.setPublishDate(publishDate);
        asset.setExpirationDate(expirationDate);

        if (priority == null) {
            asset.setPriority(0);
        }

        asset.setViewCount(0);
    }

    asset.setGroupId(groupId);
    asset.setModifiedDate(now);
    asset.setVisible(visible);
    asset.setStartDate(startDate);
    asset.setEndDate(endDate);
    asset.setPublishDate(publishDate);
    asset.setExpirationDate(expirationDate);
    asset.setMimeType(mimeType);
    asset.setTitle(title);
    asset.setDescription(description);
    asset.setSummary(summary);
    asset.setUrl(url);
    asset.setHeight(height);
    asset.setWidth(width);

    if (priority != null) {
        asset.setPriority(priority.intValue());
    }

    // Entries

    List<TagsEntry> tagsEntriesList = TagsEntryLocalServiceUtil.getEntries(asset.getClassNameId(),
            asset.getClassPK());
    List<TagsEntry> entries = new ArrayList<TagsEntry>(entryNames.length);

    /** start extend code */

    // check if user has moderator or admin role
    boolean isModerator = false;

    List<Role> roleList = RoleLocalServiceUtil.getUserRoles(userId);
    for (Role role : roleList) {
        if (role.getName().equals(SCYCOM_MODERATOR)) {
            isModerator = true;
        } else if (role.getName().equals(RoleConstants.ADMINISTRATOR)) {
            isModerator = true;
        }
    }

    // check if user want to add or delete moderator tags and has not the rights
    if (!isModerator) {
        boolean isApprovedBefore = false;
        boolean isUnderConBefore = false;
        boolean isApprovedAfter = false;
        boolean isUnderConAfter = false;

        for (TagsEntry tagsEntry : tagsEntriesList) {
            if (tagsEntry.getName().equals(APPROVED)) {
                isApprovedBefore = true;
            } else if (tagsEntry.getName().equals(UNDER_CONSTRUCTION)) {
                isUnderConBefore = true;
            }
        }

        for (String entryName : entryNames) {
            if (entryName.equals(APPROVED)) {
                isApprovedAfter = true;
            } else if (entryName.equals(UNDER_CONSTRUCTION)) {
                isUnderConAfter = true;
            }
        }

        List<String> bewareOldEntriesList = new ArrayList<String>();

        for (String oldNames : entryNames) {
            boolean addName = true;
            if (oldNames.equals(APPROVED) && !isApprovedBefore && isApprovedAfter) {
                addName = false;
            } else if (oldNames.equals(UNDER_CONSTRUCTION) && !isUnderConBefore && isUnderConAfter) {
                addName = false;
            }

            if (addName) {
                bewareOldEntriesList.add(oldNames);
            }
        }

        if (isApprovedBefore && !isApprovedAfter) {
            bewareOldEntriesList.add(APPROVED);
        }
        if (isUnderConBefore && !isUnderConAfter) {
            bewareOldEntriesList.add(UNDER_CONSTRUCTION);
        }

        for (String entryName : bewareOldEntriesList) {

            TagsEntry entry = null;

            try {
                entry = tagsEntryLocalService.getEntry(groupId, entryName, TagsEntryConstants.FOLKSONOMY_TAG);
            } catch (NoSuchEntryException nsee) {
                ServiceContext serviceContext = new ServiceContext();

                serviceContext.setAddCommunityPermissions(true);
                serviceContext.setAddGuestPermissions(true);
                serviceContext.setScopeGroupId(groupId);

                entry = tagsEntryLocalService.addEntry(user.getUserId(), null, entryName, null,
                        PropsValues.TAGS_PROPERTIES_DEFAULT, serviceContext);
                tagsPropertyLocalService.addProperty(
                        userId, entry.getEntryId(), String.valueOf(user.getUserId())
                                + String.valueOf(asset.getAssetId()) + String.valueOf(entry.getEntryId()),
                        String.valueOf(asset.getAssetId()));
            }

            if (entry != null) {
                entries.add(entry);
            }
        }

        /** end extend code */
    } else {
        for (int i = 0; i < entryNames.length; i++) {
            TagsEntry entry = null;

            try {
                entry = tagsEntryLocalService.getEntry(groupId, entryNames[i],
                        TagsEntryConstants.FOLKSONOMY_TAG);
            } catch (NoSuchEntryException nsee) {
                ServiceContext serviceContext = new ServiceContext();

                serviceContext.setAddCommunityPermissions(true);
                serviceContext.setAddGuestPermissions(true);
                serviceContext.setScopeGroupId(groupId);

                entry = tagsEntryLocalService.addEntry(user.getUserId(), null, entryNames[i], null,
                        PropsValues.TAGS_PROPERTIES_DEFAULT, serviceContext);
                tagsPropertyLocalService.addProperty(
                        userId, entry.getEntryId(), String.valueOf(user.getUserId())
                                + String.valueOf(asset.getAssetId()) + String.valueOf(entry.getEntryId()),
                        String.valueOf(asset.getAssetId()));
            }

            if (entry != null) {
                entries.add(entry);
            }
        }
    }

    /** start extend code */
    // add UNDER_CONSTRUCTION tag to new files
    if (isNewAssetEntry) {

        TagsEntry entry = null;
        try {
            entry = tagsEntryLocalService.getEntry(groupId, UNDER_CONSTRUCTION,
                    TagsEntryConstants.FOLKSONOMY_TAG);
        } catch (NoSuchEntryException nsee) {
            long defaultUserId = UserLocalServiceUtil.getDefaultUser(user.getCompanyId()).getUserId();
            ServiceContext serviceContext = new ServiceContext();

            serviceContext.setAddCommunityPermissions(true);
            serviceContext.setAddGuestPermissions(true);
            serviceContext.setScopeGroupId(groupId);

            entry = tagsEntryLocalService.addEntry(defaultUserId, null, UNDER_CONSTRUCTION, null,
                    PropsValues.TAGS_PROPERTIES_DEFAULT, serviceContext);
            tagsPropertyLocalService.addProperty(
                    defaultUserId, entry.getEntryId(), String.valueOf(defaultUserId)
                            + String.valueOf(asset.getAssetId()) + String.valueOf(entry.getEntryId()),
                    String.valueOf(asset.getAssetId()));
        }

        if (entry != null) {
            entries.add(entry);
        }
    }
    /** end extend code */

    // Categories

    for (int i = 0; i < categoryNames.length; i++) {
        try {
            TagsEntry entry = tagsEntryLocalService.getEntry(groupId, categoryNames[i],
                    TagsEntryConstants.FOLKSONOMY_CATEGORY);

            entries.add(entry);
        } catch (NoSuchEntryException nsee) {
        }
    }

    tagsAssetPersistence.setTagsEntries(asset.getAssetId(), entries);

    // Update asset after entries so that asset listeners have access the
    // saved entries

    tagsAssetPersistence.update(asset, false);

    // Synchronize

    if (!sync) {
        return asset;
    }

    if (className.equals(BlogsEntry.class.getName())) {
        BlogsEntry entry = blogsEntryPersistence.findByPrimaryKey(classPK);

        entry.setTitle(title);

        blogsEntryPersistence.update(entry, false);
    } else if (className.equals(BookmarksEntry.class.getName())) {
        BookmarksEntry entry = bookmarksEntryPersistence.findByPrimaryKey(classPK);

        entry.setName(title);
        entry.setComments(description);
        entry.setUrl(url);

        bookmarksEntryPersistence.update(entry, false);
    } else if (className.equals(DLFileEntry.class.getName())) {
        DLFileEntry fileEntry = dlFileEntryPersistence.findByPrimaryKey(classPK);

        fileEntry.setTitle(title);
        fileEntry.setDescription(description);

        dlFileEntryPersistence.update(fileEntry, false);
    } else if (className.equals(JournalArticle.class.getName())) {
        JournalArticle article = journalArticlePersistence.findByPrimaryKey(classPK);

        article.setTitle(title);
        article.setDescription(description);

        journalArticlePersistence.update(article, false);
    } else if (className.equals(MBMessage.class.getName())) {
        MBMessage message = mbMessagePersistence.findByPrimaryKey(classPK);

        message.setSubject(title);

        mbMessagePersistence.update(message, false);
    } else if (className.equals(WikiPage.class.getName())) {
        WikiPage page = wikiPagePersistence.findByPrimaryKey(classPK);

        page.setTitle(title);

        wikiPagePersistence.update(page, false);
    }

    return asset;
}

From source file:com.liferay.portlet.wiki.service.impl.WikiPageServiceImpl.java

License:Open Source License

protected String exportToRSS(long companyId, String name, String description, String type, double version,
        String displayStyle, String feedURL, String entryURL, List<WikiPage> pages, boolean diff, Locale locale)
        throws SystemException {

    SyndFeed syndFeed = new SyndFeedImpl();

    syndFeed.setFeedType(RSSUtil.getFeedType(type, version));
    syndFeed.setTitle(name);/*from   w  w w  .j  av a  2  s  .  c  o  m*/
    syndFeed.setLink(feedURL);
    syndFeed.setDescription(description);

    List<SyndEntry> syndEntries = new ArrayList<SyndEntry>();

    syndFeed.setEntries(syndEntries);

    WikiPage latestPage = null;

    StringBundler link = new StringBundler(7);

    for (WikiPage page : pages) {
        String author = HtmlUtil.escape(PortalUtil.getUserName(page.getUserId(), page.getUserName()));

        String title = page.getTitle() + StringPool.SPACE + page.getVersion();

        if (page.isMinorEdit()) {
            title += StringPool.SPACE + StringPool.OPEN_PARENTHESIS + LanguageUtil.get(locale, "minor-edit")
                    + StringPool.CLOSE_PARENTHESIS;
        }

        link.setIndex(0);

        link.append(entryURL);
        link.append(StringPool.AMPERSAND);
        link.append(HttpUtil.encodeURL(page.getTitle()));

        SyndEntry syndEntry = new SyndEntryImpl();

        syndEntry.setAuthor(author);
        syndEntry.setTitle(title);
        syndEntry.setPublishedDate(page.getCreateDate());
        syndEntry.setUpdatedDate(page.getModifiedDate());

        SyndContent syndContent = new SyndContentImpl();

        syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT);

        if (diff) {
            if (latestPage != null) {
                link.append(StringPool.QUESTION);
                link.append(PortalUtil.getPortletNamespace(PortletKeys.WIKI));
                link.append("version=");
                link.append(page.getVersion());

                String value = getPageDiff(companyId, latestPage, page, locale);

                syndContent.setValue(value);

                syndEntry.setDescription(syndContent);

                syndEntries.add(syndEntry);
            }
        } else {
            String value = null;

            if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) {
                value = StringUtil.shorten(HtmlUtil.extractText(page.getContent()),
                        PropsValues.WIKI_RSS_ABSTRACT_LENGTH, StringPool.BLANK);
            } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) {
                value = StringPool.BLANK;
            } else {
                value = page.getContent();
            }

            syndContent.setValue(value);

            syndEntry.setDescription(syndContent);

            syndEntries.add(syndEntry);
        }

        syndEntry.setLink(link.toString());
        syndEntry.setUri(syndEntry.getLink());

        latestPage = page;
    }

    try {
        return RSSUtil.export(syndFeed);
    } catch (FeedException fe) {
        throw new SystemException(fe);
    }
}

From source file:com.liferay.wiki.service.impl.WikiPageServiceImpl.java

License:Open Source License

protected String exportToRSS(String name, String description, String type, double version, String displayStyle,
        String feedURL, String entryURL, String attachmentURLPrefix, List<WikiPage> pages, boolean diff,
        Locale locale) throws PortalException {

    SyndFeed syndFeed = new SyndFeedImpl();

    syndFeed.setDescription(description);

    List<SyndEntry> syndEntries = new ArrayList<>();

    syndFeed.setEntries(syndEntries);//from  ww  w  .  j  ava 2s .  co m

    WikiPage latestPage = null;

    StringBundler sb = new StringBundler(6);

    for (WikiPage page : pages) {
        SyndEntry syndEntry = new SyndEntryImpl();

        String author = PortalUtil.getUserName(page);

        syndEntry.setAuthor(author);

        SyndContent syndContent = new SyndContentImpl();

        syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT);

        sb.setIndex(0);

        sb.append(entryURL);

        if (entryURL.endsWith(StringPool.SLASH)) {
            sb.append(HttpUtil.encodeURL(page.getTitle()));
        }

        if (diff) {
            if ((latestPage != null) || (pages.size() == 1)) {
                sb.append(StringPool.QUESTION);
                sb.append(PortalUtil.getPortletNamespace(WikiPortletKeys.WIKI));
                sb.append("version=");
                sb.append(page.getVersion());

                String value = null;

                if (latestPage == null) {
                    value = wikiEngineRenderer.convert(page, null, null, attachmentURLPrefix);
                } else {
                    try {
                        value = wikiEngineRenderer.diffHtml(latestPage, page, null, null, attachmentURLPrefix);
                    } catch (PortalException pe) {
                        throw pe;
                    } catch (SystemException se) {
                        throw se;
                    } catch (Exception e) {
                        throw new SystemException(e);
                    }
                }

                syndContent.setValue(value);

                syndEntry.setDescription(syndContent);

                syndEntries.add(syndEntry);
            }
        } else {
            String value = null;

            WikiGroupServiceOverriddenConfiguration wikiGroupServiceOverriddenConfiguration = configurationProvider
                    .getConfiguration(WikiGroupServiceOverriddenConfiguration.class,
                            new GroupServiceSettingsLocator(page.getGroupId(), WikiConstants.SERVICE_NAME));

            if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) {
                value = StringUtil.shorten(HtmlUtil.extractText(page.getContent()),
                        wikiGroupServiceOverriddenConfiguration.rssAbstractLength(), StringPool.BLANK);
            } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) {
                value = StringPool.BLANK;
            } else {
                value = wikiEngineRenderer.convert(page, null, null, attachmentURLPrefix);
            }

            syndContent.setValue(value);

            syndEntry.setDescription(syndContent);

            syndEntries.add(syndEntry);
        }

        syndEntry.setLink(sb.toString());
        syndEntry.setPublishedDate(page.getCreateDate());

        String title = page.getTitle() + StringPool.SPACE + page.getVersion();

        if (page.isMinorEdit()) {
            title += StringPool.SPACE + StringPool.OPEN_PARENTHESIS + LanguageUtil.get(locale, "minor-edit")
                    + StringPool.CLOSE_PARENTHESIS;
        }

        syndEntry.setTitle(title);

        syndEntry.setUpdatedDate(page.getModifiedDate());
        syndEntry.setUri(sb.toString());

        latestPage = page;
    }

    syndFeed.setFeedType(RSSUtil.getFeedType(type, version));

    List<SyndLink> syndLinks = new ArrayList<>();

    syndFeed.setLinks(syndLinks);

    SyndLink syndLinkSelf = new SyndLinkImpl();

    syndLinks.add(syndLinkSelf);

    syndLinkSelf.setHref(feedURL);
    syndLinkSelf.setRel("self");

    syndFeed.setPublishedDate(new Date());
    syndFeed.setTitle(name);
    syndFeed.setUri(feedURL);

    try {
        return RSSUtil.export(syndFeed);
    } catch (FeedException fe) {
        throw new SystemException(fe);
    }
}

From source file:com.vportal.portlet.vcms.service.impl.VcmsCategoryServiceImpl.java

License:Open Source License

protected String exportToRSS(String name, String description, String type, double version, String displayStyle,
        String feedURL, String entryURL, List<VcmsArticle> vcmsArticle, ThemeDisplay themeDisplay)
        throws SystemException {

    SyndFeed syndFeed = new SyndFeedImpl();

    syndFeed.setFeedType(RSSUtil.getFeedType(type, version));
    syndFeed.setTitle(name);//from  w  ww . ja v  a 2 s.  co  m
    syndFeed.setLink(feedURL);
    syndFeed.setDescription(description);

    List<SyndEntry> entries = new ArrayList<SyndEntry>();

    syndFeed.setEntries(entries);

    for (VcmsArticle entry : vcmsArticle) {
        String author = "";
        try {
            author = UserServiceUtil.getUserById(Long.parseLong(entry.getPublishedByUser())).getFullName();
        } catch (Exception e) {
            // TODO: handle exception
        }
        String link = entryURL;
        link += "&articleId=" + entry.getArticleId();

        String value = null;

        if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) {
            value = StringUtil.shorten(HtmlUtil.extractText(entry.getContent()), _RSS_ABSTRACT_LENGTH,
                    StringPool.BLANK);
        } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) {
            value = StringPool.BLANK;
        } else {
            value = StringUtil.replace(entry.getContent(), new String[] { "href=\"/", "src=\"/" },
                    new String[] { "href=\"" + themeDisplay.getURLPortal() + "/",
                            "src=\"" + themeDisplay.getURLPortal() + "/" });
        }

        SyndEntry syndEntry = new SyndEntryImpl();

        syndEntry.setAuthor(author);
        syndEntry.setTitle(entry.getTitle());
        syndEntry.setLink(link);
        syndEntry.setPublishedDate(entry.getCreatedDate());

        SyndContent syndContent = new SyndContentImpl();

        syndContent.setType(RSSUtil.DEFAULT_ENTRY_TYPE);
        syndContent.setValue(value);

        syndEntry.setDescription(syndContent);

        entries.add(syndEntry);
    }

    try {
        return RSSUtil.export(syndFeed);
    } catch (FeedException fe) {
        throw new SystemException(fe);
    }
}

From source file:de.olafkock.liferay.blogs.PodcastingUtil.java

License:Open Source License

public static String exportToRSS(String name, String description, String type, double version,
        String displayStyle, String feedURL, String entryURL, List<BlogsEntry> blogsEntries,
        ThemeDisplay themeDisplay) throws SystemException, PortalException {

    SyndFeed syndFeed = new SyndFeedImpl();

    syndFeed.setFeedType(RSSUtil.getFeedType(type, version));
    syndFeed.setTitle(name);//from   w w  w .  j a  v a  2 s .c o m
    syndFeed.setLink(feedURL);
    syndFeed.setDescription(description);

    List<SyndEntry> syndEntries = new ArrayList<SyndEntry>();

    syndFeed.setEntries(syndEntries);

    for (BlogsEntry entry : blogsEntries) {
        String author = HtmlUtil.escape(PortalUtil.getUserName(entry.getUserId(), entry.getUserName()));

        StringBundler link = new StringBundler(4);

        if (entryURL.endsWith("/blogs/rss")) {
            link.append(entryURL.substring(0, entryURL.length() - 3));
            link.append(entry.getUrlTitle());
        } else {
            link.append(entryURL);

            if (!entryURL.endsWith(StringPool.QUESTION)) {
                link.append(StringPool.AMPERSAND);
            }

            link.append("entryId=");
            link.append(entry.getEntryId());
        }

        String value = null;

        if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) {
            String summary = entry.getDescription();

            if (Validator.isNull(summary)) {
                summary = entry.getContent();
            }

            value = StringUtil.shorten(HtmlUtil.extractText(summary),
                    200 /* PropsValues.BLOGS_RSS_ABSTRACT_LENGTH */, StringPool.BLANK);
        } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) {
            value = StringPool.BLANK;
        } else {
            value = StringUtil.replace(entry.getContent(), new String[] { "href=\"/", "src=\"/" },
                    new String[] { "href=\"" + themeDisplay.getURLPortal() + "/",
                            "src=\"" + themeDisplay.getURLPortal() + "/" });
        }

        SyndEntry syndEntry = new SyndEntryImpl();

        syndEntry.setAuthor(author);
        syndEntry.setTitle(entry.getTitle());
        syndEntry.setLink(link.toString());
        syndEntry.setUri(syndEntry.getLink());
        syndEntry.setPublishedDate(entry.getCreateDate());
        syndEntry.setUpdatedDate(entry.getModifiedDate());

        SyndEnclosure enclosure = getEnclosure(entry.getCompanyId(), entry.getPrimaryKey());
        if (enclosure != null) {
            List<SyndEnclosure> enclosures = new LinkedList<SyndEnclosure>();
            enclosures.add(enclosure);
            syndEntry.setEnclosures(enclosures);
            EntryInformation info = getItunesInfo(entry);
            ArrayList<EntryInformation> modules = new ArrayList<EntryInformation>();
            modules.add(info);
            syndEntry.setModules(modules);
        }

        SyndContent syndContent = new SyndContentImpl();

        syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT);
        syndContent.setValue(value);

        syndEntry.setDescription(syndContent);

        syndEntries.add(syndEntry);
    }

    try {
        return RSSUtil.export(syndFeed);
    } catch (FeedException fe) {
        throw new SystemException(fe);
    }
}