public interface PortletPreferences
PortletPreferences
interface allows the portlet to store
configuration data. It is not the
purpose of this interface to replace general purpose databases.
There are two different types of preferences:
EDIT, HELP, VIEW
).
Per default every preference is modifiable.
read-only
set to true
,
or if the portlet container restricts write access.
Changes are persisted when the store
method is called. The store
method
can only be invoked within the scope of a processAction
call.
Changes that are not persisted are discarded when the
processAction
or render
method ends.
Modifier and Type | Method and Description |
---|---|
Map<String,String[]> |
getMap()
Returns a
Map of the preferences. |
Enumeration<String> |
getNames()
Returns all of the keys that have an associated value,
or an empty
Enumeration if no keys are
available. |
String |
getValue(String key,
String def)
Returns the first String value associated with the specified key of this preference.
|
String[] |
getValues(String key,
String[] def)
Returns the String array value associated with the specified key in this preference.
|
boolean |
isReadOnly(String key)
Returns true, if the value of this key is defined as read-only and thus
cannot be modified by the user.
|
void |
reset(String key)
Resets or removes the value associated with the specified key.
|
void |
setValue(String key,
String value)
Associates the specified String value with the specified key in this
preference.
|
void |
setValues(String key,
String... values)
Sets a
multi-valued String preference for the specified key.
|
void |
store()
Commits all changes made to the preferences via the
set methods in the persistent store. |
boolean isReadOnly(String key)
Modifiable preferences can be changed by the
portlet in any standard portlet mode (EDIT, HELP, VIEW
).
Per default every preference is modifiable.
Read-only preferences cannot be changed by the
portlet in any standard portlet mode, but inside of custom modes,
like the CONFIG
mode, it may be allowed changing them.
Preferences are read-only, if they are defined in the
deployment descriptor with read-only
set to true
,
or if the portlet container restricts write access.
Note that even if this call returns false
and the
preference key is modifiable in general it does not mean that it
is modifiable in the scope of the current request, e.g. if this
request is a render request.
IllegalArgumentException
- if key
is null
.String getValue(String key, String def)
null
value is treated as a non-existent value.key
- key for which the associated value is to be returneddef
- the value to be returned in the event that there is no
value available associated with this key
.key
, or def
if no value is associated with key
, or the backing
store is inaccessible.IllegalArgumentException
- if key
is null
. (A
null
value for def
is permitted.)getValues(String, String[])
String[] getValues(String key, String[] def)
Returns the specified default if there is no value
associated with the key, or if the backing store is inaccessible.
A null
value is treated as a non-existent value.
If the implementation supports stored defaults and such a default exists and is accessible, it is used in favor of the specified default.
key
- key for which associated value is to be returned.def
- the value to be returned in the event that this
preference node has no value associated with key
or the associated value cannot be interpreted as a String array,
or the backing store is inaccessible.key
, or def
if the
associated value does not exist.IllegalArgumentException
- if key
is null
. (A
null
value for def
is permitted.)getValue(String,String)
void setValue(String key, String value) throws ReadOnlyException
The key cannot be null
, but null
values
for the value parameter are allowed.
If the same key contained already a String
or String[]
value it must be replaced by the new value.
key
- key with which the specified value is to be associated.value
- value to be associated with the specified key.ReadOnlyException
- if this preference cannot be modified for this requestIllegalArgumentException
- if key is null
,
or key.length()
or value.length
are to long. The maximum length
for key and value are implementation specific.setValues(String, String[])
void setValues(String key, String... values) throws ReadOnlyException
The key cannot be null
, but null
values
in the values parameter are allowed.
If the same key contained already a String
or String[]
value it must be replaced by the new value.
key
- key with which the value is to be associatedvalues
- values to be associated with keyIllegalArgumentException
- if key is null
, or
key.length()
is to long or value.size
is to large. The maximum
length for key and maximum size for value are implementation specific.ReadOnlyException
- if this preference cannot be modified for this requestsetValue(String,String)
Enumeration<String> getNames()
Enumeration
if no keys are
available.Enumeration
if no keys are
available.Map<String,String[]> getMap()
Map
of the preferences.
The values in the returned Map
are from type
String array (String[]
).
If no preferences exist this method returns an empty Map
.
Map
containing preference names as
keys and preference values as map values, or an empty Map
if no preference exist. The keys in the preference
map are of type String. The values in the preference map are of type
String array (String[]
).void reset(String key) throws ReadOnlyException
If this implementation supports stored defaults, and there is such a default for the specified preference, the given key will be reset to the stored default.
If there is no default available the key will be removed.
key
- to resetIllegalArgumentException
- if key is null
.ReadOnlyException
- if this preference cannot be modified for this requestvoid store() throws IOException, ValidatorException
set
methods in the persistent store.
If this call returns successful, all changes are made persistent. If this call fails, no changes are made in the persistent store. This call is an atomic operation regardless of how many preference attributes have been modified.
All changes made to preferences not followed by a call
to the store
method are discarded when the
portlet finishes the processAction
method.
If a validator is defined for this preferences in the
deployment descriptor, this validator is called before
the actual store is performed to check whether the given
preferences are valid. If this check fails a
ValidatorException
is thrown.
IOException
- if changes cannot be written into
the backend storeValidatorException
- if the validation performed by the
associated validator failsIllegalStateException
- if this method is called inside a render callPreferencesValidator
Java Portlet 3.0 API Specification. See the Copyright and License provided with this distribution. Use is subject to license terms.