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