Class DefaultUserPropertyProvider
- java.lang.Object
-
- org.jivesoftware.openfire.user.property.DefaultUserPropertyProvider
-
- All Implemented Interfaces:
UserPropertyProvider
public class DefaultUserPropertyProvider extends Object implements UserPropertyProvider
Default implementation of the UserPropertyProvider interface, which reads and writes data from theofUserProp
database table. This implementation will not explicitly verify if a user exists, when operating on its properties. The methods of this implementation will not throwUserNotFoundException
. Warning: in virtually all cases a user property provider should not be used directly. Instead, use the Map returned byUser.getProperties()
to create, read, update or delete user properties. Failure to do so is likely to result in inconsistent data behavior and race conditions. Direct access to the user property provider is only provided for special-case logic.- Author:
- Guus der Kinderen, guus@goodbytes.nl
- See Also:
User.getProperties()
-
-
Constructor Summary
Constructors Constructor Description DefaultUserPropertyProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
deleteProperty(String username, String propName)
Removes one particular property for a particular user.void
insertProperty(String username, String propName, String propValue)
Adds a property for an user.boolean
isReadOnly()
Returns true if this UserPropertyProvider is read-only.Map<String,String>
loadProperties(String username)
Retrieves all properties for a particular user.String
loadProperty(String username, String propertyName)
Retrieves a property value for a user.void
updateProperty(String username, String propName, String propValue)
Changes a property value for an user.
-
-
-
Method Detail
-
loadProperties
public Map<String,String> loadProperties(String username)
Description copied from interface:UserPropertyProvider
Retrieves all properties for a particular user.- Specified by:
loadProperties
in interfaceUserPropertyProvider
- Parameters:
username
- The identifier of the user (cannot be null or empty).- Returns:
- A collection, possibly empty, but never null.
-
loadProperty
public String loadProperty(String username, String propertyName)
Description copied from interface:UserPropertyProvider
Retrieves a property value for a user. This method will return null when the desired property was not defined for the user (null values are not supported).- Specified by:
loadProperty
in interfaceUserPropertyProvider
- Parameters:
username
- The identifier of the user (cannot be null or empty).propertyName
- The property name (cannot be null or empty).- Returns:
- The property value (possibly null).
-
insertProperty
public void insertProperty(String username, String propName, String propValue)
Description copied from interface:UserPropertyProvider
Adds a property for an user. The behavior of inserting a duplicate property name is not defined by this interface.- Specified by:
insertProperty
in interfaceUserPropertyProvider
- Parameters:
username
- The identifier of the user (cannot be null or empty).propName
- The property name (cannot be null or empty).propValue
- The property value (cannot be null).
-
updateProperty
public void updateProperty(String username, String propName, String propValue)
Description copied from interface:UserPropertyProvider
Changes a property value for an user. The behavior of updating a non-existing property is not defined by this interface.- Specified by:
updateProperty
in interfaceUserPropertyProvider
- Parameters:
username
- The identifier of the user (cannot be null or empty).propName
- The property name (cannot be null or empty).propValue
- The property value (cannot be null).
-
deleteProperty
public void deleteProperty(String username, String propName)
Description copied from interface:UserPropertyProvider
Removes one particular property for a particular user. The behavior of deleting a non-existing property is not defined by this interface.- Specified by:
deleteProperty
in interfaceUserPropertyProvider
- Parameters:
username
- The identifier of the user (cannot be null or empty).propName
- The property name (cannot be null or empty).
-
isReadOnly
public boolean isReadOnly()
Description copied from interface:UserPropertyProvider
Returns true if this UserPropertyProvider is read-only. When read-only, properties can not be created, deleted or modified. Invocation of the corresponding methods should result in anUnsupportedOperationException
.- Specified by:
isReadOnly
in interfaceUserPropertyProvider
- Returns:
- true if the user provider is read-only.
-
-