List of usage examples for com.liferay.portal.kernel.systemevent SystemEventHierarchyEntryThreadLocal pop
public static SystemEventHierarchyEntry pop(String className, long classPK)
From source file:com.liferay.assetlayouts.service.impl.AssetLayoutsLayoutLocalServiceImpl.java
License:Open Source License
@Override public void deleteLayout(Layout layout, boolean updateLayoutSet, ServiceContext serviceContext) throws PortalException, SystemException { super.deleteLayout(layout, updateLayoutSet, serviceContext); // Asset/*w w w .jav a2 s .co m*/ SystemEventHierarchyEntryThreadLocal.pop(Layout.class, layout.getPrimaryKey()); try { AssetEntryLocalServiceUtil.deleteEntry(Layout.class.getName(), layout.getPrimaryKey()); } finally { SystemEventHierarchyEntryThreadLocal.push(Layout.class, layout.getPrimaryKey()); } }
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 {//from w w w. 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); } }