001
014
015 package com.liferay.portal.service.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.kernel.model.BaseModelListener;
021 import com.liferay.portal.kernel.model.Group;
022 import com.liferay.portal.kernel.model.LayoutSet;
023 import com.liferay.portal.kernel.model.LayoutSetPrototype;
024 import com.liferay.portal.kernel.service.LayoutSetPrototypeLocalServiceUtil;
025 import com.liferay.portal.kernel.service.persistence.LayoutSetPrototypeUtil;
026 import com.liferay.portal.kernel.util.UnicodeProperties;
027
028 import java.util.Date;
029
030
033 public class LayoutSetPrototypeLayoutSetModelListener
034 extends BaseModelListener<LayoutSet> {
035
036 @Override
037 public void onAfterCreate(LayoutSet layoutSet) {
038 updateLayoutSetPrototype(layoutSet, layoutSet.getModifiedDate());
039 }
040
041 @Override
042 public void onAfterRemove(LayoutSet layoutSet) {
043 updateLayoutSetPrototype(layoutSet, new Date());
044 }
045
046 @Override
047 public void onAfterUpdate(LayoutSet layoutSet) {
048 updateLayoutSetPrototype(layoutSet, layoutSet.getModifiedDate());
049 }
050
051 protected void updateLayoutSetPrototype(
052 LayoutSet layoutSet, Date modifiedDate) {
053
054 if (layoutSet == null) {
055 return;
056 }
057
058 Group group = null;
059
060 try {
061 group = layoutSet.getGroup();
062
063 if (!group.isLayoutSetPrototype()) {
064 return;
065 }
066 }
067 catch (PortalException pe) {
068 return;
069 }
070
071 try {
072 LayoutSetPrototype layoutSetPrototype =
073 LayoutSetPrototypeLocalServiceUtil.getLayoutSetPrototype(
074 group.getClassPK());
075
076 layoutSetPrototype.setModifiedDate(modifiedDate);
077
078 UnicodeProperties settingsProperties =
079 layoutSet.getSettingsProperties();
080
081 settingsProperties.remove("merge-fail-count");
082
083 LayoutSetPrototypeUtil.update(layoutSetPrototype);
084 }
085 catch (Exception e) {
086 _log.error(e, e);
087 }
088 }
089
090 private static final Log _log = LogFactoryUtil.getLog(
091 LayoutSetPrototypeLayoutSetModelListener.class);
092
093 }