1
22
23 package com.liferay.portal.upgrade.v4_3_0.util;
24
25 import com.liferay.portal.kernel.upgrade.util.BaseUpgradeColumnImpl;
26 import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
27 import com.liferay.portal.kernel.upgrade.util.ValueMapper;
28 import com.liferay.portal.kernel.util.GetterUtil;
29 import com.liferay.portal.kernel.util.Validator;
30 import com.liferay.portlet.PortletPreferencesImpl;
31 import com.liferay.portlet.PortletPreferencesSerializer;
32
33 import javax.portlet.PortletPreferences;
34
35
40 public class PrefsXMLUpgradeColumnImpl extends BaseUpgradeColumnImpl {
41
42 public PrefsXMLUpgradeColumnImpl(
43 UpgradeColumn upgradePortletIdColumn, ValueMapper groupIdMapper,
44 ValueMapper pollsQuestionIdMapper, ValueMapper wikiNodeIdMapper) {
45
46 super("preferences");
47
48 _upgradePortletIdColumn = upgradePortletIdColumn;
49 _groupIdMapper = groupIdMapper;
50 _pollsQuestionIdMapper = pollsQuestionIdMapper;
51 _wikiNodeIdMapper = wikiNodeIdMapper;
52 }
53
54 public Object getNewValue(Object oldValue) throws Exception {
55 String xml = (String)oldValue;
56
57 String portletId = (String)_upgradePortletIdColumn.getOldValue();
58
59 PortletPreferences preferences =
60 PortletPreferencesSerializer.fromDefaultXML(xml);
61
62 processPreferences(portletId, preferences);
63
64 return PortletPreferencesSerializer.toXML(
65 (PortletPreferencesImpl)preferences);
66 }
67
68 protected void processPreferences(
69 String portletId, PortletPreferences preferences)
70 throws Exception {
71
72
74 String portletCSS = preferences.getValue("portlet-setup-css", null);
75
76 if (Validator.isNotNull(portletCSS)) {
77 preferences.reset("portlet-setup-css");
78 }
79
80
82 if (portletId.startsWith("62_INSTANCE_") ||
83 portletId.startsWith("56_INSTANCE_")) {
84
85 String groupId = preferences.getValue("group-id", null);
86
87 if (Validator.isNotNull(groupId)) {
88 groupId = String.valueOf(_groupIdMapper.getNewValue(
89 new Long(GetterUtil.getLong(groupId))));
90
91 preferences.setValue("group-id", groupId);
92 }
93 }
94
95
97 else if (portletId.startsWith("59_INSTANCE_")) {
98 String questionId = preferences.getValue("question-id", null);
99
100 if (Validator.isNotNull(questionId)) {
101 questionId = String.valueOf(_pollsQuestionIdMapper.getNewValue(
102 new Long(GetterUtil.getLong(questionId))));
103
104 preferences.setValue("question-id", questionId);
105 }
106 }
107
108
110 else if (portletId.startsWith("54_INSTANCE_")) {
111 String nodeId = preferences.getValue("node-id", null);
112
113 if (Validator.isNotNull(nodeId)) {
114 nodeId = String.valueOf(_wikiNodeIdMapper.getNewValue(
115 new Long(GetterUtil.getLong(nodeId))));
116
117 preferences.setValue("node-id", nodeId);
118 }
119 }
120 }
121
122 private UpgradeColumn _upgradePortletIdColumn;
123 private ValueMapper _groupIdMapper;
124 private ValueMapper _pollsQuestionIdMapper;
125 private ValueMapper _wikiNodeIdMapper;
126
127 }