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