# com.bea.p13n.controls.profile
PropertyControl Interface

public interface PropertyControl
extends `Control`

Control to access and modify the user profile. The methods all use the ProfileWrapper as the object for which the profile will be associated.

Using ProfileWrapper, as opposed to the user name, allows the default properties to be retrieved, if they are set. The ProfileWrapper is available in every Session, regardless of wheter the user is registered. In addition to the username, it also provides APIs for determining the user type (eg, registered, anonymous, or tracked).

Using EntityPropertyCache as the container for the returned properties, as opposed to a Map, makes it clear to the user how the properties should be extracted from the cache. The EntityPropertyCache stores properties as a HashMap of PropertySetKey/propertyValue, where PropertySetKey is the propertySet/propertyName pair.

You may get the backing HashMap of the EntityPropertyCache by calling its getMap() method, then step through it as follows:

     if ( ! cache.isEmpty())
     {
     		Iterator = cache.getMap().entrySet().iterator();
     		while ( iter.hasNext())
     		{
     			Map.Entry entry = (Map.Entry)iter.next();
      		PropertyMapKey pmKey = (PropertyMapKey)entry.getKey();
       		String propertySetName = pmKey.getPropertySetName();
       		String propertyName = pmKey.getPropertyName();
       		Object value = entry.getValue();
    		 }
     }

Security requirements: The caller must be in the role of "PortalSystemAdministrator" to invoke method 'getAllUserNames()

Related Topics

``SessionHelper``
``PropertyMapKey``
``EntityPropertyCache``
``ProfileWrapper``
``ProfileFactory``

All Superinterfaces
  `Control`, `Control`, `Serializable`

## Method Summary

`public `EntityPropertyCache`` | `getProperties`(`ProfileWrapper` pw) Get all properties for this profile, and return as an EntityPropertyCache.
`public `EntityPropertyCache`` | `getPropertiesFromKeys`(`ProfileWrapper` pw, `Set` propertyMapKeys) Get all properties that match the set of PropertyMapKeys for this profile A PropertyMapKey is a 'propertySet/propertyName' pair.
`public `EntityPropertyCache`` | `getPropertiesFromSet`(`ProfileWrapper` pw, `String` propertySetName) Get all properties for named property set for this profile, and return as an EntityPropertyCache.
`public `Object`` | `getProperty`(`ProfileWrapper` pw, `String` propertySet, `String` property) Get an individual property.
`public `Object`` | `removeProperty`(`ProfileWrapper` pw, `String` propertySet, `String` propertyName) Remove a property from the profile
`public void` | `setProperties`(`ProfileWrapper` pw, `EntityPropertyCache` cache) Set properties in this EntityPropertyCache back into the user's profile.
`public void` | `setProperty`(`ProfileWrapper` pw, `String` propertySet, `String` property, `Object` value) Set an individual property.

## Method Detail

### getProperties(ProfileWrapper) Method

    public EntityPropertyCache getProperties(ProfileWrapper pw)
         throws ProfileNotFoundException, P13nControlException

Get all properties for this profile, and return as an EntityPropertyCache.

#### Parameters

pw
  The ProfileWrapper representing the user profile for which the properties are to be retrieved

#### Returns

an EntityPropertyCache of the retrieved properties, or null if there are no properties

#### Exceptions

``ProfileNotFoundException``
  if profile not found
``P13nControlException``
  if remote exceptions are encounterd while trying to retrieve the properties

### getPropertiesFromKeys(ProfileWrapper, Set) Method

    public EntityPropertyCache getPropertiesFromKeys(ProfileWrapper pw,
                                                     Set propertyMapKeys)
         throws ProfileNotFoundException, P13nControlException

Get all properties that match the set of PropertyMapKeys for this profile A PropertyMapKey is a 'propertySet/propertyName' pair. Use this API when you have access to the HttpSession; eg, in Page Groups and JSP. `String propertySet = "BogusProperties" String propertyName = "ColorPreference" PropertyMapKey pmk = new PropertyMapKeyImpl(propertySet, propertyName); Set set = new HashSet(); set.add(pmk);`

#### Parameters

pw
  The ProfileWrapper representing the user profile for which the properties are to be retrieved

propertyMapKeys
  Set of PropertyMapKeys for which all properties will be retrieved

#### Returns

an EntityPropertyCache of the retrieved properties or null if there are no properties

#### Exceptions

``ProfileNotFoundException``
``P13nControlException``
  if profile not found, or if remote exceptions are encounterd while trying to retrieve the properties

### getPropertiesFromSet(ProfileWrapper, String) Method

    public EntityPropertyCache getPropertiesFromSet(ProfileWrapper pw,
                                                    String propertySetName)
         throws ProfileNotFoundException, P13nControlException

Get all properties for named property set for this profile, and return as an EntityPropertyCache.

#### Parameters

pw
  The ProfileWrapper representing the user profile for which the properties are to be retrieved

propertySetName

#### Returns

an EntityPropertyCache of the retrieved properties, or null if there are no properties

#### Exceptions

``ProfileNotFoundException``
  if profile not found
``P13nControlException``
  if remote exceptions are encounterd while trying to retrieve the properties

### getProperty(ProfileWrapper, String, String) Method

    public Object getProperty(ProfileWrapper pw,
                              String propertySet,
                              String property)
         throws ProfileNotFoundException, P13nControlException

Get an individual property.

#### Parameters

pw
  The ProfileWrapper representing the user profile for which the properties are to be retrieved

propertySet
  name of the property set containing the property to retrieve

property
  name of the property to retrieve

#### Returns

the retrieved property, or null if not found

#### Exceptions

``ProfileNotFoundException``
  if profile not found
``P13nControlException``
  if remote exceptions are encounterd while trying to retrieve the properties

### removeProperty(ProfileWrapper, String, String) Method

    public Object removeProperty(ProfileWrapper pw,
                                 String propertySet,
                                 String propertyName)
         throws ProfileNotFoundException, P13nControlException

Remove a property from the profile

#### Parameters

pw
  The ProfileWrapper representing the user profile for which the properties are to be retrieved

propertySet
  the property set containing the property

propertyName
  the name of the property to retrieve

#### Returns

the old value of the property

#### Exceptions

``ProfileNotFoundException``
  if profile not found
``P13nControlException``
  if remote exceptions are encontered while trying to remove the property

### setProperties(ProfileWrapper, EntityPropertyCache) Method

    public void setProperties(ProfileWrapper pw,
                              EntityPropertyCache cache)
         throws ProfileNotFoundException, PropertyValidationException, P13nControlException

Set properties in this EntityPropertyCache back into the user's profile.

#### Parameters

pw
  The ProfileWrapper representing the user profile for which the properties are to be retrieved

cache
  the cache containing the properties to set. See javadocs at the top of this class for more info on the EntityPropertyCache

#### Exceptions

``ProfileNotFoundException``
  if profile not found
``PropertyValidationException``
  if property is invalid
``P13nControlException``
  if profile not found, or if remote exceptions are encounterd while trying to set the properties

### setProperty(ProfileWrapper, String, String, Object) Method

    public void setProperty(ProfileWrapper pw,
                            String propertySet,
                            String property,
                            Object value)
         throws ProfileNotFoundException, PropertyValidationException, P13nControlException

Set an individual property.

#### Parameters

pw
  The ProfileWrapper representing the user profile for which the properties are to be retrieved

propertySet
  name of the property set containing the property to set

property
  name of the property to set

value
  value of the property to set

#### Exceptions

``ProfileNotFoundException``
  if profile not found
``PropertyValidationException``
  if property is invalid
``P13nControlException``
  if remote exceptions are encounterd while trying to set the property