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