1
22
23 package com.liferay.portlet;
24
25 import com.liferay.portal.kernel.log.Log;
26 import com.liferay.portal.kernel.log.LogFactoryUtil;
27 import com.liferay.portal.kernel.util.StringPool;
28 import com.liferay.portal.kernel.util.Validator;
29
30
36 public class PortalPreferencesImpl implements PortalPreferences {
37
38 public PortalPreferencesImpl(
39 PortletPreferencesImpl preferences, boolean signedIn) {
40
41 _preferences = preferences;
42 _signedIn = signedIn;
43 }
44
45 public String getValue(String namespace, String key) {
46 return getValue(namespace, key, null);
47 }
48
49 public String getValue(String namespace, String key, String defaultValue) {
50 key = _encodeKey(namespace, key);
51
52 return _preferences.getValue(key, defaultValue);
53 }
54
55 public String[] getValues(String namespace, String key) {
56 return getValues(namespace, key, null);
57 }
58
59 public String[] getValues(
60 String namespace, String key, String[] defaultValue) {
61
62 key = _encodeKey(namespace, key);
63
64 return _preferences.getValues(key, defaultValue);
65 }
66
67 public void setValue(String namespace, String key, String value) {
68 if (Validator.isNull(key) || (key.equals(_RANDOM_KEY))) {
69 return;
70 }
71
72 key = _encodeKey(namespace, key);
73
74 try {
75 if (value != null) {
76 _preferences.setValue(key, value);
77 }
78 else {
79 _preferences.reset(key);
80 }
81
82 if (_signedIn) {
83 _preferences.store();
84 }
85 }
86 catch (Exception e) {
87 _log.error(e, e);
88 }
89 }
90
91 public void setValues(String namespace, String key, String[] values) {
92 if (Validator.isNull(key) || (key.equals(_RANDOM_KEY))) {
93 return;
94 }
95
96 key = _encodeKey(namespace, key);
97
98 try {
99 if (values != null) {
100 _preferences.setValues(key, values);
101 }
102 else {
103 _preferences.reset(key);
104 }
105
106 if (_signedIn) {
107 _preferences.store();
108 }
109 }
110 catch (Exception e) {
111 _log.error(e, e);
112 }
113 }
114
115 private String _encodeKey(String namespace, String key) {
116 return namespace + StringPool.POUND + key;
117 }
118
119 private static final String _RANDOM_KEY = "r";
120
121 private static Log _log = LogFactoryUtil.getLog(PortalPreferences.class);
122
123 private PortletPreferencesImpl _preferences;
124 private boolean _signedIn;
125
126 }