1
14
15 package com.liferay.portal.upgrade.v4_3_0.util;
16
17 import com.liferay.portal.kernel.upgrade.StagnantRowException;
18 import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
19 import com.liferay.portal.kernel.upgrade.util.ValueMapper;
20 import com.liferay.portal.kernel.upgrade.util.ValueMapperFactoryUtil;
21 import com.liferay.portal.kernel.util.Validator;
22 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
23
24
29 public class LayoutPlidUpgradeColumnImpl extends PKUpgradeColumnImpl {
30
31 public LayoutPlidUpgradeColumnImpl(
32 UpgradeColumn upgradeLayoutOwnerIdColumn,
33 LayoutOwnerIdUpgradeColumnImpl groupIdColumn,
34 LayoutOwnerIdUpgradeColumnImpl privateLayoutColumn,
35 UpgradeColumn layoutIdColumn) {
36
37 super("plid", false);
38
39 _upgradeLayoutOwnerIdColumn = upgradeLayoutOwnerIdColumn;
40 _groupIdColumn = groupIdColumn;
41 _privateLayoutColumn = privateLayoutColumn;
42 _layoutIdColumn = layoutIdColumn;
43 _layoutPlidMapper = ValueMapperFactoryUtil.getValueMapper();
44 }
45
46 public Object getNewValue(Object oldValue) throws Exception {
47 Object newValue = super.getNewValue(oldValue);
48
49 Long groupId = _groupIdColumn.getGroupId();
50 Boolean privateLayout = _privateLayoutColumn.isPrivateLayout();
51 Long layoutId = (Long)_layoutIdColumn.getOldValue();
52
53 if ((groupId == null) || (privateLayout == null) ||
54 (Validator.isNull(layoutId))) {
55
56 throw new StagnantRowException(
57 "{groupId=" + groupId + ",privateLayout=" + privateLayout +
58 ",layoutId=" + layoutId + "}");
59 }
60
61 String oldOwnerId = (String)_upgradeLayoutOwnerIdColumn.getOldValue();
62
63 String oldPlidValue =
64 "{layoutId=" + layoutId + ", ownerId=" + oldOwnerId + "}";
65
66 _layoutPlidMapper.mapValue(oldPlidValue, newValue);
67
68 return newValue;
69 }
70
71 public ValueMapper getValueMapper() {
72 return _layoutPlidMapper;
73 }
74
75 private UpgradeColumn _upgradeLayoutOwnerIdColumn;
76 private LayoutOwnerIdUpgradeColumnImpl _groupIdColumn;
77 private LayoutOwnerIdUpgradeColumnImpl _privateLayoutColumn;
78 private UpgradeColumn _layoutIdColumn;
79 private ValueMapper _layoutPlidMapper;
80
81 }