Example usage for com.liferay.portal.kernel.comment CommentManagerUtil deleteDiscussion

List of usage examples for com.liferay.portal.kernel.comment CommentManagerUtil deleteDiscussion

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.comment CommentManagerUtil deleteDiscussion.

Prototype

public static void deleteDiscussion(String className, long classPK) throws PortalException 

Source Link

Usage

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

License:Open Source License

protected void deleteDiscussion(BlogsEntry entry) throws PortalException {
    CommentManagerUtil.deleteDiscussion(BlogsEntry.class.getName(), entry.getEntryId());
}

From source file:com.liferay.blogs.service.impl.test.BlogsEntryLocalServiceImplTest.java

License:Open Source License

@Test
public void testDeleteDiscussion() throws Exception {
    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext();

    BlogsEntry blogsEntry = BlogsEntryLocalServiceUtil.addEntry(TestPropsValues.getUserId(),
            StringUtil.randomString(), StringUtil.randomString(), new Date(), serviceContext);

    _blogsEntries.add(blogsEntry);/*from   ww w  . j av a 2s  . c  o  m*/

    CommentManagerUtil.addComment(TestPropsValues.getUserId(), TestPropsValues.getGroupId(),
            BlogsEntry.class.getName(), blogsEntry.getEntryId(), StringUtil.randomString(),
            new IdentityServiceContextFunction(serviceContext));

    Assert.assertTrue(CommentManagerUtil.hasDiscussion(BlogsEntry.class.getName(), blogsEntry.getEntryId()));

    CommentManagerUtil.deleteDiscussion(BlogsEntry.class.getName(), blogsEntry.getEntryId());

    Assert.assertFalse(CommentManagerUtil.hasDiscussion(BlogsEntry.class.getName(), blogsEntry.getEntryId()));
}

From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java

License:Open Source License

/**
 * Deletes the web content article and its resources, optionally sending
 * email notifying denial of the article if it had not yet been approved.
 *
 * @param  article the web content article
 * @param  articleURL the web content article's accessible URL to include in
 *         email notifications (optionally <code>null</code>)
 * @param  serviceContext the service context to be applied (optionally
 *         <code>null</code>). Can set the portlet preferences that include
 *         email information to notify recipients of the unapproved web
 *         content's denial./*  w  w  w  . j av  a2 s  .co m*/
 * @return the deleted web content article
 */
@Indexable(type = IndexableType.DELETE)
@Override
@SystemEvent(action = SystemEventConstants.ACTION_SKIP, send = false, type = SystemEventConstants.TYPE_DELETE)
public JournalArticle deleteArticle(JournalArticle article, String articleURL, ServiceContext serviceContext)
        throws PortalException {

    JournalArticleResource articleResource = journalArticleResourceLocalService
            .fetchArticleResource(article.getGroupId(), article.getArticleId());

    if (article.isApproved() && isLatestVersion(article.getGroupId(), article.getArticleId(),
            article.getVersion(), WorkflowConstants.STATUS_APPROVED)) {

        updatePreviousApprovedArticle(article);
    }

    // Article localization

    journalArticleLocalizationPersistence.removeByArticlePK(article.getId());

    // Email

    if ((serviceContext != null) && Validator.isNotNull(articleURL)) {
        PortletPreferences preferences = ServiceContextUtil.getPortletPreferences(serviceContext);

        if ((preferences != null) && !article.isApproved()
                && isLatestVersion(article.getGroupId(), article.getArticleId(), article.getVersion())) {

            articleURL = buildArticleURL(articleURL, article.getGroupId(), article.getFolderId(),
                    article.getArticleId());

            sendEmail(article, articleURL, preferences, "denied", serviceContext);
        }
    }

    // Dynamic data mapping

    if (article.getClassNameId() != classNameLocalService.getClassNameId(DDMStructure.class)) {

        ddmStorageLinkLocalService.deleteClassStorageLink(article.getId());

        ddmTemplateLinkLocalService.deleteTemplateLink(
                classNameLocalService.getClassNameId(JournalArticle.class), article.getId());
    }

    // Expando

    expandoRowLocalService.deleteRows(article.getId());

    // Trash

    if (article.isInTrash()) {
        TrashEntry trashEntry = article.getTrashEntry();

        if (trashEntry != null) {
            trashVersionLocalService.deleteTrashVersion(JournalArticle.class.getName(), article.getId());
        }
    }

    // Workflow

    if (!article.isDraft()) {
        workflowInstanceLinkLocalService.deleteWorkflowInstanceLink(article.getCompanyId(),
                article.getGroupId(), JournalArticle.class.getName(), article.getId());
    }

    int articlesCount = journalArticlePersistence.countByG_A(article.getGroupId(), article.getArticleId());

    if (articlesCount == 1) {

        // Asset

        assetEntryLocalService.deleteEntry(JournalArticle.class.getName(), article.getResourcePrimKey());

        // Comment

        CommentManagerUtil.deleteDiscussion(JournalArticle.class.getName(), article.getResourcePrimKey());

        // Content searches

        journalContentSearchLocalService.deleteArticleContentSearches(article.getGroupId(),
                article.getArticleId());

        // Images

        long folderId = article.getImagesFolderId();

        if (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
            PortletFileRepositoryUtil.deletePortletFolder(folderId);
        }

        // Ratings

        ratingsStatsLocalService.deleteStats(JournalArticle.class.getName(), article.getResourcePrimKey());

        // Small image

        imageLocalService.deleteImage(article.getSmallImageId());

        // Trash

        trashEntryLocalService.deleteEntry(JournalArticle.class.getName(), article.getResourcePrimKey());

        // Resources

        resourceLocalService.deleteResource(article.getCompanyId(), JournalArticle.class.getName(),
                ResourceConstants.SCOPE_INDIVIDUAL, article.getResourcePrimKey());

        // Resource

        if (articleResource != null) {
            journalArticleResourceLocalService.deleteJournalArticleResource(articleResource);
        }
    }

    // Article

    journalArticlePersistence.remove(article);

    // System event

    if (articleResource != null) {
        JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject();

        extraDataJSONObject.put("uuid", article.getUuid());
        extraDataJSONObject.put("version", article.getVersion());

        systemEventLocalService.addSystemEvent(0, article.getGroupId(), article.getModelClassName(),
                article.getPrimaryKey(), articleResource.getUuid(), null, SystemEventConstants.TYPE_DELETE,
                extraDataJSONObject.toString());
    }

    return article;
}

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

License:Open Source License

@Override
@SystemEvent(action = SystemEventConstants.ACTION_SKIP, send = false, type = SystemEventConstants.TYPE_DELETE)
public void deletePage(WikiPage page) throws PortalException {

    // Child pages

    List<WikiPage> childPages = wikiPagePersistence.findByN_P(page.getNodeId(), page.getTitle());

    for (WikiPage childPage : childPages) {
        if (childPage.isApproved() || childPage.isInTrashImplicitly()) {
            wikiPageLocalService.deletePage(childPage);
        } else {//w  ww  .j av  a  2s. c o m
            childPage.setParentTitle(StringPool.BLANK);

            wikiPagePersistence.update(childPage);
        }
    }

    List<WikiPage> redirectorPages = getRedirectorPages(page.getNodeId(), page.getTitle());

    for (WikiPage redirectorPage : redirectorPages) {
        if (redirectorPage.isApproved() || redirectorPage.isInTrashImplicitly()) {

            wikiPageLocalService.deletePage(redirectorPage);
        } else {
            redirectorPage.setRedirectTitle(StringPool.BLANK);

            wikiPagePersistence.update(redirectorPage);
        }
    }

    List<WikiPage> versionPages = wikiPagePersistence.findByN_T(page.getNodeId(), page.getTitle());

    wikiPagePersistence.removeByN_T(page.getNodeId(), page.getTitle());

    // References

    wikiPagePersistence.removeByN_R(page.getNodeId(), page.getTitle());

    // Resources

    resourceLocalService.deleteResource(page.getCompanyId(), WikiPage.class.getName(),
            ResourceConstants.SCOPE_INDIVIDUAL, page.getResourcePrimKey());

    // Resource

    WikiPageResource pageResource = wikiPageResourceLocalService.fetchPageResource(page.getNodeId(),
            page.getTitle());

    if (pageResource != null) {
        wikiPageResourceLocalService.deleteWikiPageResource(pageResource);
    }

    // Attachments

    long folderId = page.getAttachmentsFolderId();

    if (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
        PortletFileRepositoryUtil.deletePortletFolder(folderId);
    }

    // Subscriptions

    subscriptionLocalService.deleteSubscriptions(page.getCompanyId(), WikiPage.class.getName(),
            page.getResourcePrimKey());

    // Asset

    SystemEventHierarchyEntryThreadLocal.pop(page.getModelClass(), page.getPageId());

    try {
        for (WikiPage versionPage : versionPages) {
            assetEntryLocalService.deleteEntry(WikiPage.class.getName(), versionPage.getPrimaryKey());
        }
    } finally {
        SystemEventHierarchyEntryThreadLocal.push(page.getModelClass(), page.getPageId());
    }

    assetEntryLocalService.deleteEntry(WikiPage.class.getName(), page.getResourcePrimKey());

    // Comment

    CommentManagerUtil.deleteDiscussion(WikiPage.class.getName(), page.getResourcePrimKey());

    // Expando

    expandoRowLocalService.deleteRows(page.getPrimaryKey());

    // Ratings

    ratingsStatsLocalService.deleteStats(WikiPage.class.getName(), page.getResourcePrimKey());

    // Trash

    if (page.isInTrash()) {
        if (page.isInTrashExplicitly()) {
            page.setTitle(TrashUtil.getOriginalTitle(page.getTitle()));

            trashEntryLocalService.deleteEntry(WikiPage.class.getName(), page.getResourcePrimKey());
        } else {
            for (WikiPage versionPage : versionPages) {
                trashVersionLocalService.deleteTrashVersion(WikiPage.class.getName(), versionPage.getPageId());
            }
        }
    }

    // Indexer

    Indexer<WikiPage> indexer = IndexerRegistryUtil.nullSafeGetIndexer(WikiPage.class);

    indexer.delete(page);

    // Cache

    clearPageCache(page);

    // Version pages

    for (WikiPage versionPage : versionPages) {

        // Workflow

        workflowInstanceLinkLocalService.deleteWorkflowInstanceLinks(versionPage.getCompanyId(),
                versionPage.getGroupId(), WikiPage.class.getName(), versionPage.getPageId());
    }

    if (pageResource != null) {
        systemEventLocalService.addSystemEvent(0, page.getGroupId(), page.getModelClassName(),
                page.getPrimaryKey(), pageResource.getUuid(), null, SystemEventConstants.TYPE_DELETE,
                StringPool.BLANK);
    }
}