/**
  * Deletes all privacy lists of a user. This may be necessary when a user is being deleted from
  * the system.
  *
  * @param username the username of the list owner.
  */
 public void deletePrivacyLists(String username) {
   for (String listName : provider.getPrivacyLists(username).keySet()) {
     // Remove the list from the cache
     listsCache.remove(getCacheKey(username, listName));
     // Trigger event that a privacy list is being deleted
     for (PrivacyListEventListener listener : listeners) {
       listener.privacyListDeleting(listName);
     }
   }
   // Delete user privacy lists from the DB
   provider.deletePrivacyLists(username);
 }
 /**
  * Creates a new privacy list for the specified user.
  *
  * @param username the username of the list owner.
  * @param listName the name of the new privacy list.
  * @param listElement the XML that specifies the list and its items.
  * @return the newly created PrivacyList.
  */
 public PrivacyList createPrivacyList(String username, String listName, Element listElement) {
   // Create new list
   PrivacyList list = new PrivacyList(username, listName, false, listElement);
   // Add new list to cache
   listsCache.put(getCacheKey(username, listName), list);
   // Save new  list to database
   provider.createPrivacyList(username, list);
   // Trigger event that a new privacy list has been created
   for (PrivacyListEventListener listener : listeners) {
     listener.privacyListCreated(list);
   }
   return list;
 }
 /**
  * Deletes an existing privacy list of a user. If the privacy list being deleted was the default
  * list then the user will end up with no default list. Therefore, the user will have to set a new
  * default list.
  *
  * @param username the username of the list owner.
  * @param listName the name of the list being deleted.
  */
 public void deletePrivacyList(String username, String listName) {
   // Trigger event that a privacy list is being deleted
   for (PrivacyListEventListener listener : listeners) {
     listener.privacyListDeleting(listName);
   }
   // Remove the list from the cache
   listsCache.remove(getCacheKey(username, listName));
   // Delete the privacy list from the DB
   provider.deletePrivacyList(username, listName);
   // Check if deleted list was the default list
   PrivacyList defaultList = listsCache.get(getDefaultCacheKey(username));
   if (defaultList != null && listName.equals(defaultList.getName())) {
     listsCache.remove(getDefaultCacheKey(username));
   }
 }
 void dispatchModifiedEvent(PrivacyList privacyList) {
   // Trigger event that a privacy list has been modified
   for (PrivacyListEventListener listener : listeners) {
     listener.privacyListModified(privacyList);
   }
 }