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