001
014
015 package com.liferay.portal.model;
016
017 import com.liferay.portal.ModelListenerException;
018 import com.liferay.portal.kernel.exception.PortalException;
019 import com.liferay.portal.kernel.exception.SystemException;
020 import com.liferay.portal.kernel.staging.LayoutStagingUtil;
021 import com.liferay.portal.service.LayoutRevisionLocalServiceUtil;
022 import com.liferay.portal.servlet.filters.cache.CacheUtil;
023
024
028 public class LayoutListener extends BaseModelListener<Layout> {
029
030 @Override
031 public void onAfterCreate(Layout layout) {
032 clearCache(layout);
033 }
034
035 @Override
036 public void onAfterRemove(Layout layout) {
037 clearCache(layout);
038 }
039
040 @Override
041 public void onBeforeRemove(Layout layout) throws ModelListenerException {
042 try {
043 if (!LayoutStagingUtil.isBranchingLayout(layout)) {
044 return;
045 }
046
047 LayoutRevisionLocalServiceUtil.deleteLayoutLayoutRevisions(
048 layout.getPlid());
049 }
050 catch (IllegalStateException ise) {
051
052
053
054
055 }
056 catch (PortalException pe) {
057 throw new ModelListenerException(pe);
058 }
059 catch (SystemException se) {
060 throw new ModelListenerException(se);
061 }
062 }
063
064 @Override
065 public void onAfterUpdate(Layout layout) {
066 clearCache(layout);
067 }
068
069 protected void clearCache(Layout layout) {
070 if (!layout.isPrivateLayout()) {
071 CacheUtil.clearCache(layout.getCompanyId());
072 }
073 }
074
075 }