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
38 public class LayoutPlidUpgradeColumnImpl extends PKUpgradeColumnImpl {
39
40 public LayoutPlidUpgradeColumnImpl(
41 UpgradeColumn upgradeLayoutOwnerIdColumn,
42 LayoutOwnerIdUpgradeColumnImpl groupIdColumn,
43 LayoutOwnerIdUpgradeColumnImpl privateLayoutColumn,
44 UpgradeColumn layoutIdColumn) {
45
46 super("plid", false);
47
48 _upgradeLayoutOwnerIdColumn = upgradeLayoutOwnerIdColumn;
49 _groupIdColumn = groupIdColumn;
50 _privateLayoutColumn = privateLayoutColumn;
51 _layoutIdColumn = layoutIdColumn;
52 _layoutPlidMapper = ValueMapperFactory.getValueMapper();
53 }
54
55 public Object getNewValue(Object oldValue) throws Exception {
56 Object newValue = super.getNewValue(oldValue);
57
58 Long groupId = _groupIdColumn.getGroupId();
59 Boolean privateLayout = _privateLayoutColumn.isPrivateLayout();
60 Long layoutId = (Long)_layoutIdColumn.getOldValue();
61
62 if ((groupId == null) || (privateLayout == null) ||
63 (Validator.isNull(layoutId))) {
64
65 throw new StagnantRowException(
66 "{groupId=" + groupId + ",privateLayout=" + privateLayout +
67 ",layoutId=" + layoutId + "}");
68 }
69
70 String oldOwnerId = (String)_upgradeLayoutOwnerIdColumn.getOldValue();
71
72 String oldPlidValue =
73 "{layoutId=" + layoutId + ", ownerId=" + oldOwnerId + "}";
74
75 _layoutPlidMapper.mapValue(oldPlidValue, newValue);
76
77 return newValue;
78 }
79
80 public ValueMapper getValueMapper() {
81 return _layoutPlidMapper;
82 }
83
84 private UpgradeColumn _upgradeLayoutOwnerIdColumn;
85 private LayoutOwnerIdUpgradeColumnImpl _groupIdColumn;
86 private LayoutOwnerIdUpgradeColumnImpl _privateLayoutColumn;
87 private UpgradeColumn _layoutIdColumn;
88 private ValueMapper _layoutPlidMapper;
89
90 }