001
014
015 package com.liferay.portal.upgrade.v4_3_0.util;
016
017 import com.liferay.portal.kernel.upgrade.StagnantRowException;
018 import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
019 import com.liferay.portal.kernel.upgrade.util.ValueMapper;
020 import com.liferay.portal.kernel.upgrade.util.ValueMapperFactoryUtil;
021 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
022
023
026 public class LayoutPlidUpgradeColumnImpl extends PKUpgradeColumnImpl {
027
028 public LayoutPlidUpgradeColumnImpl(
029 UpgradeColumn upgradeLayoutOwnerIdColumn,
030 LayoutOwnerIdUpgradeColumnImpl groupIdColumn,
031 LayoutOwnerIdUpgradeColumnImpl privateLayoutColumn,
032 UpgradeColumn layoutIdColumn) {
033
034 super("plid", false);
035
036 _upgradeLayoutOwnerIdColumn = upgradeLayoutOwnerIdColumn;
037 _groupIdColumn = groupIdColumn;
038 _privateLayoutColumn = privateLayoutColumn;
039 _layoutIdColumn = layoutIdColumn;
040 _layoutPlidMapper = ValueMapperFactoryUtil.getValueMapper();
041 }
042
043 public Object getNewValue(Object oldValue) throws Exception {
044 Object newValue = super.getNewValue(oldValue);
045
046 Long groupId = _groupIdColumn.getGroupId();
047 Boolean privateLayout = _privateLayoutColumn.isPrivateLayout();
048 Long layoutId = (Long)_layoutIdColumn.getOldValue();
049
050 if ((groupId == null) || (privateLayout == null) ||
051 (layoutId == null)) {
052
053 throw new StagnantRowException(
054 "{groupId=" + groupId + ",privateLayout=" + privateLayout +
055 ",layoutId=" + layoutId + "}");
056 }
057
058 String oldOwnerId = (String)_upgradeLayoutOwnerIdColumn.getOldValue();
059
060 String oldPlidValue =
061 "{layoutId=" + layoutId + ", ownerId=" + oldOwnerId + "}";
062
063 _layoutPlidMapper.mapValue(oldPlidValue, newValue);
064
065 return newValue;
066 }
067
068 public ValueMapper getValueMapper() {
069 return _layoutPlidMapper;
070 }
071
072 private UpgradeColumn _upgradeLayoutOwnerIdColumn;
073 private LayoutOwnerIdUpgradeColumnImpl _groupIdColumn;
074 private LayoutOwnerIdUpgradeColumnImpl _privateLayoutColumn;
075 private UpgradeColumn _layoutIdColumn;
076 private ValueMapper _layoutPlidMapper;
077
078 }