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