Class DefaultUserPropertyProvider

  • All Implemented Interfaces:
    UserPropertyProvider

    public class DefaultUserPropertyProvider
    extends Object
    implements UserPropertyProvider
    Default implementation of the UserPropertyProvider interface, which reads and writes data from the ofUserProp database table. This implementation will not explicitly verify if a user exists, when operating on its properties. The methods of this implementation will not throw UserNotFoundException. Warning: in virtually all cases a user property provider should not be used directly. Instead, use the Map returned by User.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 Detail

      • DefaultUserPropertyProvider

        public DefaultUserPropertyProvider()
    • 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 interface UserPropertyProvider
        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 interface UserPropertyProvider
        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 interface UserPropertyProvider
        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 interface UserPropertyProvider
        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 interface UserPropertyProvider
        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 an UnsupportedOperationException.
        Specified by:
        isReadOnly in interface UserPropertyProvider
        Returns:
        true if the user provider is read-only.