Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/DataBackendException.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/DataBackendException.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/DataBackendException.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/DataBackendException.java
 Tue Aug 14 15:19:40 2012
@@ -27,7 +27,7 @@ package org.apache.fulcrum.security.util
  * @version $Id$
  */
 public class DataBackendException
-    extends TurbineSecurityException
+    extends FulcrumSecurityException
 {
     /**
      * Serial number

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/EntityExistsException.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/EntityExistsException.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/EntityExistsException.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/EntityExistsException.java
 Tue Aug 14 15:19:40 2012
@@ -27,7 +27,7 @@ package org.apache.fulcrum.security.util
  * @version $Id$
  */
 public class EntityExistsException
-    extends TurbineSecurityException
+    extends FulcrumSecurityException
 {
     /**
      * Serial number

Copied: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/FulcrumSecurityException.java
 (from r1361057, 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/TurbineSecurityException.java)
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/FulcrumSecurityException.java?p2=turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/FulcrumSecurityException.java&p1=turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/TurbineSecurityException.java&r1=1361057&r2=1372918&rev=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/TurbineSecurityException.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/FulcrumSecurityException.java
 Tue Aug 14 15:19:40 2012
@@ -25,7 +25,7 @@ package org.apache.fulcrum.security.util
  * @author <a href="mailto:[email protected]";>Rafal Krzewski</a>
  * @version $Id$
  */
-public class TurbineSecurityException
+public class FulcrumSecurityException
     extends Exception
 {
     /**
@@ -38,7 +38,7 @@ public class TurbineSecurityException
      *
      * @param msg The detail message.
      */
-    public TurbineSecurityException(String msg)
+    public FulcrumSecurityException(String msg)
     {
         super(msg);
     }
@@ -51,7 +51,7 @@ public class TurbineSecurityException
      * @param nested the exception or error that caused this exception
      *               to be thrown.
      */
-    public TurbineSecurityException(String msg, Throwable nested)
+    public FulcrumSecurityException(String msg, Throwable nested)
     {
         super(msg, nested);
     }

Propchange: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/FulcrumSecurityException.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.2

Propchange: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/FulcrumSecurityException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/FulcrumSecurityException.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/GroupSet.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/GroupSet.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/GroupSet.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/GroupSet.java
 Tue Aug 14 15:19:40 2012
@@ -20,7 +20,6 @@ package org.apache.fulcrum.security.util
  */
 
 import java.util.Collection;
-import java.util.Iterator;
 
 import org.apache.fulcrum.security.entity.Group;
 
@@ -37,7 +36,7 @@ import org.apache.fulcrum.security.entit
  * @version $Id$
  */
 public class GroupSet
-        extends SecuritySet
+        extends SecuritySet<Group>
 {
     /**
      * Serial number
@@ -60,128 +59,24 @@ public class GroupSet
      *
      * @param groups A collection of groups to be contained in the set.
      */
-    public GroupSet(Collection groups)
+    public GroupSet(Collection<? extends Group> groups)
     {
-        super();
-        add(groups);
-    }
-
-    /**
-     * Adds a Group to this GroupSet.
-     *
-     * @param group A Group.
-     * @return True if Group was added; false if GroupSet
-     * already contained the Group.
-     */
-    public boolean add(Group group)
-    {
-        if (contains(group)){
-            return false;
-        }
-        else {
-            idMap.put(group.getId(), group);
-            return true;
-        }
-    }
-
-    /**
-     * Adds a Group to this GroupSet.
-     *
-     * @param obj A Group.
-     * @return True if Group was added; false if GroupSet already
-     * contained the Group.
-     */
-    public boolean add(Object obj) {
-        if(obj instanceof Group){
-            return add((Group)obj);
-        }
-        else {
-            throw new ClassCastException("Object passed to add to GroupSet is 
not of type Group");
-        }
-    }
-
-    /**
-     * Adds the Groups in a Collection to this GroupSet.
-     *
-     * @param groups A Collection of Groups.
-     * @return True if this GroupSet changed as a result; false
-     * if no change to this GroupSet occurred (this GroupSet
-     * already contained all members of the added GroupSet).
-     */
-    public boolean add(Collection groups)
-    {
-        boolean res = false;
-        for (Iterator it = groups.iterator(); it.hasNext();)
-        {
-            Group g = (Group) it.next();
-            res |= add(g);
-        }
-        return res;
-    }
-
-    /**
-     * Adds the Groups in another GroupSet to this GroupSet.
-     *
-     * @param groupSet A GroupSet.
-     * @return True if this GroupSet changed as a result; false
-     * if no change to this GroupSet occurred (this GroupSet
-     * already contained all members of the added GroupSet).
-     */
-    public boolean add(GroupSet groupSet)
-    {
-        boolean res = false;
-        for( Iterator it = groupSet.iterator(); it.hasNext();)
-        {
-            Group g = (Group) it.next();
-            res |= add(g);
-        }
-        return res;
+        this();
+        addAll(groups);
     }
 
     /**
-     * Removes a Group from this GroupSet.
-     *
-     * @param group A Group.
-     * @return True if this GroupSet contained the Group
-     * before it was removed.
-     */
-    public boolean remove(Group group)
-    {
-        boolean res = contains(group);
-        //nameMap.remove(group.getName());
-        idMap.remove(group.getId());
-        return res;
-    }
-
-    /**
-     * Checks whether this GroupSet contains a Group.
-     *
-     * @param group A Group.
-     * @return True if this GroupSet contains the Group,
-     * false otherwise.
-     */
-    public boolean contains(Group group)
-    {
-        return super.contains(group);
-    }
-
-
-
-    /**
      * Returns a Group with the given name, if it is contained in
      * this GroupSet.
      *
      * @param groupName Name of Group.
      * @return Group if argument matched a Group in this
      * GroupSet; null if no match.
+     * @deprecated Use getByName()
      */
     public Group getGroupByName(String groupName)
     {
-       /*groupName=groupName.toLowerCase();
-        return (StringUtils.isNotEmpty(groupName))
-                ? (Group) nameMap.get(groupName) : null;
-                */
-               return (Group)getByName(groupName);
+               return getByName(groupName);
     }
 
     /**
@@ -191,21 +86,11 @@ public class GroupSet
      * @param groupId Id of the group
      * @return Group if argument matched a Group in this
      * GroupSet; null if no match.
+     * @deprecated Use getById()
      */
     public Group getGroupById(Object groupId)
     {
-        return (groupId != null)
-                ? (Group) idMap.get(groupId) : null;
-    }
-
-    /**
-     * Returns an Array of Groups in this GroupSet.
-     *
-     * @return An Array of Group objects.
-     */
-    public Group[] getGroupsArray()
-    {
-        return (Group[]) getSet().toArray(new Group[0]);
+       return getById(groupId);
     }
 
     /**
@@ -218,23 +103,8 @@ public class GroupSet
     {
         StringBuffer sb = new StringBuffer();
         sb.append("GroupSet: ");
-
-        for(Iterator it = iterator(); it.hasNext();)
-        {
-            Group g = (Group) it.next();
-            sb.append('[');
-            sb.append(g.getName());
-            sb.append(" -> ");
-            sb.append(g.getId());
-            sb.append(']');
-            if (it.hasNext())
-            {
-                sb.append(", ");
-            }
-        }
+        sb.append(super.toString());
 
         return sb.toString();
     }
-
-
 }

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/PasswordMismatchException.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/PasswordMismatchException.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/PasswordMismatchException.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/PasswordMismatchException.java
 Tue Aug 14 15:19:40 2012
@@ -26,7 +26,7 @@ package org.apache.fulcrum.security.util
  * @version $Id$
  */
 public class PasswordMismatchException
-    extends TurbineSecurityException
+    extends FulcrumSecurityException
 {
     /**
      * Serial number

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/PermissionSet.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/PermissionSet.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/PermissionSet.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/PermissionSet.java
 Tue Aug 14 15:19:40 2012
@@ -19,7 +19,6 @@ package org.apache.fulcrum.security.util
  * under the License.
  */
 import java.util.Collection;
-import java.util.Iterator;
 
 import org.apache.fulcrum.security.entity.Permission;
 
@@ -37,7 +36,7 @@ import org.apache.fulcrum.security.entit
  * @version $Id$
  */
 public class PermissionSet
-    extends SecuritySet
+    extends SecuritySet<Permission>
 {
     /**
      * Serial number
@@ -60,114 +59,12 @@ public class PermissionSet
      *
      * @param permissions A collection of permissions to be contained in the 
set.
      */
-    public PermissionSet(Collection permissions)
+    public PermissionSet(Collection<? extends Permission> permissions)
     {
-        super();
-        add(permissions);
-    }
-
-    /**
-     * Adds a Permission to this PermissionSet.
-     *
-     * @param permission A Permission.
-     * @return True if Permission was added; false if PermissionSet
-     * already contained the Permission.
-     */
-    public boolean add(Permission permission)
-    {
-        if (contains(permission)){
-            return false;
-        }
-        else {
-            idMap.put(permission.getId(), permission);
-            return true;
-        }
-    }
-
-    /**
-     * Adds a Permission to this PermissionSet.
-     *
-     * @param obj A Permission.
-     * @return True if Permission was added; false if PermissionSet already
-     * contained the Permission.
-     */
-    public boolean add(Object obj) {
-        if(obj instanceof Permission){
-            return add((Permission)obj);
-        }
-        else {
-            throw new ClassCastException("Object passed to add to 
PermissionSet is not of type Permission");
-        }
-    }
-
-    /**
-     * Adds the Permissions in a Collection to this PermissionSet.
-     *
-     * @param permissions A Collection of Permissions.
-     * @return True if this PermissionSet changed as a result; false
-     * if no change to this PermissionSet occurred (this PermissionSet
-     * already contained all members of the added PermissionSet).
-     */
-    public boolean add(Collection permissions)
-    {
-        boolean res = false;
-        for (Iterator it = permissions.iterator(); it.hasNext();)
-        {
-            Permission p = (Permission) it.next();
-            res |= add(p);
-        }
-        return res;
-    }
-
-    /**
-     * Adds the Permissions in another PermissionSet to this
-     * PermissionSet.
-     *
-     * @param permissionSet A PermissionSet.
-     * @return True if this PermissionSet changed as a result; false
-     * if no change to this PermissionSet occurred (this PermissionSet
-     * already contained all members of the added PermissionSet).
-     */
-    public boolean add(PermissionSet permissionSet)
-    {
-        boolean res = false;
-        for( Iterator it = permissionSet.iterator(); it.hasNext();)
-        {
-            Permission p = (Permission) it.next();
-            res |= add(p);
-        }
-        return res;
-    }
-
-    /**
-     * Removes a Permission from this PermissionSet.
-     *
-     * @param permission A Permission.
-     * @return True if this PermissionSet contained the Permission
-     * before it was removed.
-     */
-    public boolean remove(Permission permission)
-    {
-        boolean res = contains(permission);
-        //nameMap.remove(permission.getName());
-        idMap.remove(permission.getId());
-        return res;
-    }
-
-    /**
-     * Checks whether this PermissionSet contains a Permission.
-     *
-     * @param permission A Permission.
-     * @return True if this PermissionSet contains the Permission,
-     * false otherwise.
-     */
-    public boolean contains(Permission permission)
-    {
-               return super.contains(permission);
+        this();
+        addAll(permissions);
     }
 
-
-
     /**
      * Returns a Permission with the given name, if it is contained in
      * this PermissionSet.
@@ -175,13 +72,11 @@ public class PermissionSet
      * @param permissionName Name of Permission.
      * @return Permission if argument matched a Permission in this
      * PermissionSet; null if no match.
+     * @deprecated use getByName()
      */
     public Permission getPermissionByName(String permissionName)
     {
-               return (Permission)getByName(permissionName);
-               //permissionName=permissionName.toLowerCase();
-        //return (StringUtils.isNotEmpty(permissionName))
-         //       ? (Permission) nameMap.get(permissionName) : null;
+               return getByName(permissionName);
     }
 
     /**
@@ -191,21 +86,11 @@ public class PermissionSet
      * @param permissionId Id of the Permission.
      * @return Permission if argument matched a Permission in this
      * PermissionSet; null if no match.
+     * @deprecated Use getById()
      */
     public Permission getPermissionById(Object permissionId)
     {
-        return (permissionId != null)
-                ? (Permission) idMap.get(permissionId) : null;
-    }
-
-    /**
-     * Returns an Array of Permissions in this PermissionSet.
-     *
-     * @return An Array of Permission Objects.
-     */
-    public Permission[] getPermissionsArray()
-    {
-        return (Permission[]) getSet().toArray(new Permission[0]);
+       return getById(permissionId);
     }
 
     /**
@@ -218,20 +103,7 @@ public class PermissionSet
     {
         StringBuffer sb = new StringBuffer();
         sb.append("PermissionSet: ");
-
-        for(Iterator it = iterator(); it.hasNext();)
-        {
-            Permission p = (Permission) it.next();
-            sb.append('[');
-            sb.append(p.getName());
-            sb.append(" -> ");
-            sb.append(p.getId());
-            sb.append(']');
-            if (it.hasNext())
-            {
-                sb.append(", ");
-            }
-        }
+        sb.append(super.toString());
 
         return sb.toString();
     }

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/RoleSet.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/RoleSet.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/RoleSet.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/RoleSet.java
 Tue Aug 14 15:19:40 2012
@@ -20,7 +20,6 @@ package org.apache.fulcrum.security.util
  */
 
 import java.util.Collection;
-import java.util.Iterator;
 
 import org.apache.fulcrum.security.entity.Role;
 
@@ -37,7 +36,7 @@ import org.apache.fulcrum.security.entit
  * @version $Id$
  */
 public class RoleSet
-        extends SecuritySet
+        extends SecuritySet<Role>
 {
     /**
      * Serial number
@@ -60,126 +59,24 @@ public class RoleSet
      *
      * @param roles A collection of roles to be contained in the set.
      */
-    public RoleSet(Collection roles)
+    public RoleSet(Collection<? extends Role> roles)
     {
-        super();
-        add(roles);
-    }
-
-    /**
-     * Adds a Role to this RoleSet.
-     *
-     * @param role A Role.
-     * @return True if Role was added; false if RoleSet already
-     * contained the Role.
-     */
-    public boolean add(Role role)
-    {
-        if (contains(role)){
-            return false;
-        }
-        else {
-            idMap.put(role.getId(), role);
-            return true;
-        }
-    }
-
-    /**
-     * Adds a Role to this RoleSet.
-     *
-     * @param obj A Role.
-     * @return True if Role was added; false if RoleSet already
-     * contained the Role.
-     */
-    public boolean add(Object obj) {
-        if(obj instanceof Role){
-            return add((Role)obj);
-        }
-        else {
-            throw new ClassCastException("Object passed to add to RoleSet is 
not of type Role");
-        }
-    }
-
-    /**
-     * Adds the Roles in a Collection to this RoleSet.
-     *
-     * @param roles A Collection of Roles.
-     * @return True if this RoleSet changed as a result; false
-     * if no change to this RoleSet occurred (this RoleSet
-     * already contained all members of the added RoleSet).
-     */
-    public boolean add(Collection roles)
-    {
-        boolean res = false;
-        for (Iterator it = roles.iterator(); it.hasNext();)
-        {
-            Role r = (Role) it.next();
-            res |= add(r);
-        }
-        return res;
-    }
-
-    /**
-     * Adds the Roles in another RoleSet to this RoleSet.
-     *
-     * @param roleSet A RoleSet.
-     * @return True if this RoleSet changed as a result; false
-     * if no change to this RoleSet occurred (this RoleSet
-     * already contained all members of the added RoleSet).
-     */
-    public boolean add(RoleSet roleSet)
-    {
-        boolean res = false;
-        for( Iterator it = roleSet.iterator(); it.hasNext();)
-        {
-            Role r = (Role) it.next();
-            res |= add(r);
-        }
-        return res;
+        this();
+        addAll(roles);
     }
 
     /**
-     * Removes a Role from this RoleSet.
-     *
-     * @param role A Role.
-     * @return True if this RoleSet contained the Role
-     * before it was removed.
-     */
-    public boolean remove(Role role)
-    {
-        boolean res = contains(role);
-      //  nameMap.remove(role.getName());
-        idMap.remove(role.getId());
-        return res;
-    }
-
-    /**
-     * Checks whether this RoleSet contains a Role.
-     *
-     * @param role A Role.
-     * @return True if this RoleSet contains the Role,
-     * false otherwise.
-     */
-    public boolean contains(Role role)
-    {
-               return super.contains(role);
-    }
-
-
-    /**
      * Returns a Role with the given name, if it is contained in
      * this RoleSet.
      *
      * @param roleName Name of Role.
      * @return Role if argument matched a Role in this
      * RoleSet; null if no match.
+     * @deprecated use getByName()
      */
     public Role getRoleByName(String roleName)
     {
-               return (Role)getByName(roleName);
-               /*roleName=roleName.toLowerCase();
-        return (StringUtils.isNotEmpty(roleName))
-                ? (Role) nameMap.get(roleName) : null;*/
+               return getByName(roleName);
     }
 
     /**
@@ -189,21 +86,11 @@ public class RoleSet
      * @param roleId id of the Role.
      * @return Role if argument matched a Role in this RoleSet; null
      * if no match.
+     * @deprecated Use getById()
      */
     public Role getRoleById(Object roleId)
     {
-        return (roleId != null)
-                ? (Role) idMap.get(roleId) : null;
-    }
-
-    /**
-     * Returns an Array of Roles in this RoleSet.
-     *
-     * @return An Array of Role objects.
-     */
-    public Role[] getRolesArray()
-    {
-        return (Role[]) getSet().toArray(new Role[0]);
+       return getById(roleId);
     }
 
     /**
@@ -216,23 +103,8 @@ public class RoleSet
     {
         StringBuffer sb = new StringBuffer();
         sb.append("RoleSet: ");
-
-        for(Iterator it = iterator(); it.hasNext();)
-        {
-            Role r = (Role) it.next();
-            sb.append('[');
-            sb.append(r.getName());
-            sb.append(" -> ");
-            sb.append(r.getId());
-            sb.append(']');
-            if (it.hasNext())
-            {
-                sb.append(", ");
-            }
-        }
+        sb.append(super.toString());
 
         return sb.toString();
     }
-
-
 }

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/SecuritySet.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/SecuritySet.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/SecuritySet.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/SecuritySet.java
 Tue Aug 14 15:19:40 2012
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.fulcrum.security.entity.SecurityEntity;
 /**
@@ -43,71 +44,66 @@ import org.apache.fulcrum.security.entit
  * @author <a href="mailto:[email protected]";>Henning P. Schmiedehausen</a>
  * @version $Id$
  */
-public abstract class SecuritySet implements Serializable, Set
+public abstract class SecuritySet<T extends SecurityEntity>
+       implements Serializable, Set<T>, Iterable<T>
 {
-    /** Map for "name" -> "security object" */
-  //  protected Map nameMap = null;
+    /** Serial version */
+       private static final long serialVersionUID = 2251987059226422569L;
+
+       /** Map for "name" -> "security object" */
+    protected Map<String, T> nameMap = null;
     /** Map for "id" -> "security object" */
-    protected Map idMap = null;
+    protected Map<Object, T> idMap = null;
+
     /**
         * Constructs an empty Set
         */
     public SecuritySet()
     {
-        //nameMap = new TreeMap();
-        idMap = new TreeMap();
+        nameMap = new TreeMap<String, T>();
+        idMap = new TreeMap<Object, T>();
     }
 
-    /*
-     * To enable the typesafe handling, make this abstract
-     * and rely on the implementing classes like RoleSet to
-     * properly cast the Object type.
-     *
-     * @see java.util.Collection#add(java.lang.Object)
-     */
-    public abstract boolean add(Object o);
     /**
         * Returns a set of security objects in this object.
         *
         * @return A Set Object
         *
         */
-    public Set getSet()
+    public Set<T> getSet()
     {
-        return new HashSet(idMap.values());
+        return new HashSet<T>(idMap.values());
     }
+
     /**
         * Returns a set of Names in this Object.
         *
         * @return The Set of Names in this Object, backed by the actual data.
         */
-    public Set getNames()
+    public Set<String> getNames()
     {
-        Set names = new HashSet();
-        for (Iterator i = getSet().iterator();i.hasNext();){
-            SecurityEntity se = (SecurityEntity)i.next();
-            names.add(se.getName());
-        }
-        return names;
-        //return nameMap.keySet();
+        return nameMap.keySet();
     }
+
     /**
         * Returns a set of Id values in this Object.
         *
         * @return The Set of Ids in this Object, backed by the actual data.
         */
-    public Set getIds()
+    public Set<Object> getIds()
     {
         return idMap.keySet();
     }
+
     /**
         * Removes all Objects from this Set.
         */
     public void clear()
     {
-      //  nameMap.clear();
+        nameMap.clear();
         idMap.clear();
     }
+
     /**
         * Searches if an Object with a given name is in the Set
         *
@@ -117,16 +113,11 @@ public abstract class SecuritySet implem
         */
     public boolean containsName(String name)
     {
-
                return (StringUtils.isNotEmpty(name))
-                                  ? getNames().contains(name.toLowerCase())
-                                  : false;
-        /*
-         *        return (StringUtils.isNotEmpty(name))
-         *            ? nameMap.containsKey(name.toLowerCase())
-         *            : false;
-         */
+                   ? nameMap.containsKey(name.toLowerCase())
+                   : false;
     }
+
     /**
         * Searches if an Object with a given Id is in the Set
         *
@@ -138,15 +129,17 @@ public abstract class SecuritySet implem
     {
         return (id == null) ? false : idMap.containsKey(id);
     }
+
     /**
         * Returns an Iterator for Objects in this Set.
         *
         * @return An iterator for the Set
         */
-    public Iterator iterator()
+    public Iterator<T> iterator()
     {
         return idMap.values().iterator();
     }
+
     /**
         * Returns size (cardinality) of this set.
         *
@@ -156,6 +149,7 @@ public abstract class SecuritySet implem
     {
         return idMap.size();
     }
+
     /**
         * list of role names in this set
         *
@@ -164,28 +158,80 @@ public abstract class SecuritySet implem
     public String toString()
     {
         StringBuffer sbuf = new StringBuffer(12 * size());
-        for (Iterator it = idMap.keySet().iterator(); it.hasNext();)
+
+        for(Iterator<T> it = iterator(); it.hasNext();)
         {
-            sbuf.append((String) it.next());
+            T se = it.next();
+            sbuf.append('[');
+            sbuf.append(se.getName());
+            sbuf.append(" -> ");
+            sbuf.append(se.getId());
+            sbuf.append(']');
             if (it.hasNext())
             {
                 sbuf.append(", ");
             }
         }
+
         return sbuf.toString();
     }
+
     // methods from Set
-    public boolean addAll(Collection collection)
+    /**
+     * @see java.util.Collection#add(java.lang.Object)
+     */
+    public boolean add(T o)
+    {
+        if (contains(o))
+        {
+            return false;
+        }
+
+        if (o.getId() != null)
+        {
+               idMap.put(o.getId(), o);
+        }
+        if (o.getName() != null)
+        {
+               nameMap.put(o.getName(), o);
+        }
+
+       return true;
+    }
+
+    /**
+     * Adds the entities in a Collection to this SecuritySet.
+     *
+     * @param collection A Collection of entities.
+     * @return True if this Set changed as a result; false
+     * if no change to this Set occurred (this Set
+     * already contained all members of the added Set).
+     */
+    public boolean add(Collection<? extends T> collection)
     {
-        return add((Collection) collection);
+       return addAll(collection);
+    }
+
+    public boolean addAll(Collection<? extends T> collection)
+    {
+       boolean res = false;
+
+       for (T o : collection)
+       {
+               res |= add(o);
+       }
+
+        return res;
     }
+
     public boolean isEmpty()
     {
         return idMap.isEmpty();
     }
-    public boolean containsAll(Collection collection)
+
+    public boolean containsAll(Collection<?> collection)
     {
-        for (Iterator i = collection.iterator(); i.hasNext();)
+        for (Iterator<?> i = collection.iterator(); i.hasNext();)
         {
             Object object = i.next();
             if (!contains(object))
@@ -195,10 +241,11 @@ public abstract class SecuritySet implem
         }
         return true;
     }
-    public boolean removeAll(Collection collection)
+
+    public boolean removeAll(Collection<?> collection)
     {
         boolean changed = false;
-        for (Iterator i = collection.iterator(); i.hasNext();)
+        for (Iterator<?> i = collection.iterator(); i.hasNext();)
         {
             Object object = i.next();
             boolean result = remove(object);
@@ -207,12 +254,15 @@ public abstract class SecuritySet implem
                 changed = true;
             }
         }
+
         return changed;
     }
-    public boolean retainAll(Collection collection)
+
+    public boolean retainAll(Collection<?> collection)
     {
         throw new RuntimeException("not implemented");
     }
+
     /*
      * (non-Javadoc)
      *
@@ -223,55 +273,76 @@ public abstract class SecuritySet implem
         return getSet().toArray();
     }
 
-    /*
-     * (non-Javadoc)
+    /**
+     * Checks whether this SecuritySet contains an entity.
      *
-     * @see java.util.Collection#contains(java.lang.Object)
+     * @param o An entity.
+     * @return True if this Set contains the entity,
+     * false otherwise.
      */
     public boolean contains(Object o)
     {
-        if (o == null)
+        if (o == null || !(o instanceof SecurityEntity))
         {
             return false;
         }
         else
         {
-            return containsName(((SecurityEntity) o).getName());
+            return containsName(((SecurityEntity)o).getName());
         }
     }
-    /*
-     * (non-Javadoc)
+
+    /**
+     * Removes an entity from this SecuritySet.
      *
-     * @see java.util.Collection#remove(java.lang.Object)
+     * @param o An entity.
+     * @return True if this Set contained the entity
+     * before it was removed.
      */
     public boolean remove(Object o)
     {
-        SecurityEntity se = (SecurityEntity)o;
-               boolean res = contains(se);
-               idMap.remove(se.getId());
-               return res;
+       if (o instanceof SecurityEntity)
+       {
+                       boolean res = contains(o);
+                       idMap.remove(((SecurityEntity)o).getId());
+                       nameMap.remove(((SecurityEntity)o).getName());
+                       return res;
+       }
+
+       return false;
     }
-    /*
-     * (non-Javadoc)
+
+    /* (non-Javadoc)
+        * @see java.util.Set#toArray(T[])
+        */
+       public <A> A[] toArray(A[] a)
+       {
+        return getSet().toArray(a);
+    }
+
+    /**
+     * Returns an entity with the given name, if it is contained in
+     * this SecuritySet.
      *
-     * @see java.util.Collection#toArray(java.lang.Object[])
+     * @param name Name of entity.
+     * @return entity if argument matched an entity in this
+     * Set; null if no match.
      */
-    public Object[] toArray(Object[] a)
+    public T getByName(String name)
     {
-        return getSet().toArray(a);
+       return nameMap.get(name);
     }
 
-    public SecurityEntity getByName(String name){
-        SecurityEntity securityEntity = null;
-        for (Iterator i = getSet().iterator();i.hasNext();){
-            SecurityEntity se = (SecurityEntity)i.next();
-            if(se.getName().equalsIgnoreCase(name)){
-                securityEntity = se;
-                break;
-            }
-        }
-        return securityEntity;
-
-
+    /**
+     * Returns an entity with the given id, if it is contained in
+     * this SecuritySet.
+     *
+     * @param id ID of entity.
+     * @return entity if argument matched an entity in this
+     * Set; null if no match.
+     */
+    public T getById(Object id)
+    {
+       return idMap.get(id);
     }
 }

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UnknownEntityException.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UnknownEntityException.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UnknownEntityException.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UnknownEntityException.java
 Tue Aug 14 15:19:40 2012
@@ -27,7 +27,7 @@ package org.apache.fulcrum.security.util
  * @version $Id$
  */
 public class UnknownEntityException
-    extends TurbineSecurityException
+    extends FulcrumSecurityException
 {
     /**
      * Serial number

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/util/UserSet.java
 Tue Aug 14 15:19:40 2012
@@ -20,7 +20,6 @@ package org.apache.fulcrum.security.util
  */
 
 import java.util.Collection;
-import java.util.Iterator;
 
 import org.apache.fulcrum.security.entity.User;
 
@@ -33,7 +32,7 @@ import org.apache.fulcrum.security.entit
  * @version $Id$
  */
 public class UserSet
-        extends SecuritySet
+        extends SecuritySet<User>
 {
     /**
      * Serial number
@@ -56,129 +55,24 @@ public class UserSet
      *
      * @param users A collection of users to be contained in the set.
      */
-    public UserSet(Collection users)
+    public UserSet(Collection<? extends User> users)
     {
-        super();
-        add(users);
-    }
-
-    /**
-     * Adds a User to this UserSet.
-     *
-     * @param user A User.
-     * @return True if User was added; false if UserSet already
-     * contained the User.
-     */
-    public boolean add(User user)
-    {
-        if (contains(user)){
-            return false;
-        }
-        else {
-            idMap.put(user.getId(), user);
-            return true;
-        }
-    }
-
-    /**
-     * Adds a User to this UserSet.
-     *
-     * @param obj A User.
-     * @return True if User was added; false if UserSet already
-     * contained the User.
-     */
-    public boolean add(Object obj) {
-        if(obj instanceof User){
-            return add((User)obj);
-        }
-        else {
-            throw new ClassCastException("Object passed to add to UserSet is 
not of type User");
-        }
+        this();
+        addAll(users);
     }
 
     /**
-     * Adds the Users in a Collection to this UserSet.
-     *
-     * @param users A Collection of Users.
-     * @return True if this UserSet changed as a result; false
-     * if no change to this UserSet occurred (this UserSet
-     * already contained all members of the added UserSet).
-     */
-    public boolean add(Collection users)
-    {
-        boolean res = false;
-        for (Iterator it = users.iterator(); it.hasNext();)
-        {
-            User r = (User) it.next();
-            res |= add(r);
-        }
-        return res;
-    }
-
-    /**
-     * Adds the Users in another UserSet to this UserSet.
-     *
-     * @param userSet A UserSet.
-     * @return True if this UserSet changed as a result; false
-     * if no change to this UserSet occurred (this UserSet
-     * already contained all members of the added UserSet).
-     */
-    public boolean add(UserSet userSet)
-    {
-        boolean res = false;
-        for( Iterator it = userSet.iterator(); it.hasNext();)
-        {
-            User r = (User) it.next();
-            res |= add(r);
-        }
-        return res;
-    }
-
-    /**
-     * Removes a User from this UserSet.
-     *
-     * @param user A User.
-     * @return True if this UserSet contained the User
-     * before it was removed.
-     */
-    public boolean remove(User user)
-    {
-        boolean res = contains(user);
-       // nameMap.remove(user.getName());
-        idMap.remove(user.getId());
-        return res;
-    }
-
-    /**
-     * Checks whether this UserSet contains a User based on the
-     * name of the User.
-     *
-     * @param user A User.
-     * @return True if this UserSet contains the User,
-     * false otherwise.
-     */
-    public boolean contains(User user)
-    {
-               return super.contains(user);
-    }
-
-
-    /**
      * Returns a User with the given name, if it is contained in
      * this UserSet.
      *
      * @param userName Name of User.
      * @return User if argument matched a User in this
      * UserSet; null if no match.
+     * @deprecated use getByName()
      */
     public User getUserByName(String userName)
     {
-        return (User)getByName(userName);
-        /*
-         *             userName=userName.toLowerCase();
-         *        return (StringUtils.isNotEmpty(userName))
-         *                ? (User) nameMap.get(userName) : null;
-         */
+        return getByName(userName);
     }
 
     /**
@@ -188,21 +82,11 @@ public class UserSet
      * @param userId id of the User.
      * @return User if argument matched a User in this UserSet; null
      * if no match.
+     * @deprecated use getById()
      */
     public User getUserById(Object userId)
     {
-        return (userId != null)
-                ? (User) idMap.get(userId) : null;
-    }
-
-    /**
-     * Returns an Array of Users in this UserSet.
-     *
-     * @return An Array of User objects.
-     */
-    public User[] getUsersArray()
-    {
-        return (User[]) getSet().toArray(new User[0]);
+       return getById(userId);
     }
 
     /**
@@ -215,20 +99,7 @@ public class UserSet
     {
         StringBuffer sb = new StringBuffer();
         sb.append("UserSet: ");
-
-        for(Iterator it = iterator(); it.hasNext();)
-        {
-            User r = (User) it.next();
-            sb.append('[');
-            sb.append(r.getName());
-            sb.append(" -> ");
-            sb.append(r.getId());
-            sb.append(']');
-            if (it.hasNext())
-            {
-                sb.append(", ");
-            }
-        }
+        sb.append(super.toString());
 
         return sb.toString();
     }

Modified: 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/dynamic/test/AbstractDynamicModelManagerTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/dynamic/test/AbstractDynamicModelManagerTest.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/dynamic/test/AbstractDynamicModelManagerTest.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/dynamic/test/AbstractDynamicModelManagerTest.java
 Tue Aug 14 15:19:40 2012
@@ -20,7 +20,6 @@ package org.apache.fulcrum.security.mode
  */
 
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Set;
 
 import org.apache.fulcrum.security.GroupManager;
@@ -293,16 +292,17 @@ public abstract class AbstractDynamicMod
                                group);
                assertTrue(((DynamicGroup) group).getUsers().contains(user));
                group = groupManager.getGroupByName(GROUP_NAME);
-               Set users = ((DynamicGroup) group).getUsers();
+               Set<User> users = ((DynamicGroup) group).getUsers();
                int size = users.size();
                assertEquals(1, size);
                // assertTrue("Check class:" + users.getClass().getName(),users
                // instanceof UserSet);
                boolean found = false;
-               Set newSet = new HashSet();
-               for (Iterator i = users.iterator(); i.hasNext();) {
-                       User u = (User) i.next();
-                       if (u.equals(user)) {
+               Set<User> newSet = new HashSet<User>();
+               for (User u : users)
+               {
+                       if (u.equals(user))
+                       {
                                found = true;
                                newSet.add(u);
                        }

Modified: 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/AbstractTurbineModelManagerTest.java
 Tue Aug 14 15:19:40 2012
@@ -19,7 +19,6 @@ package org.apache.fulcrum.security.mode
  * under the License.
  */
 
-import java.util.Iterator;
 import java.util.Set;
 
 import org.apache.fulcrum.security.GroupManager;
@@ -156,9 +155,9 @@ public abstract class AbstractTurbineMod
         modelManager.grant(user, group, role);
 
         group = groupManager.getGroupById(group.getId());
-        Set userGroupRoleSet = ((TurbineGroup) group).getUserGroupRoleSet();
+        Set<TurbineUserGroupRole> userGroupRoleSet = ((TurbineGroup) 
group).getUserGroupRoleSet();
         assertEquals(1, userGroupRoleSet.size());
-        Set userGroupRoleSet2 = ((TurbineGroup) group).getUserGroupRoleSet();
+        Set<TurbineUserGroupRole> userGroupRoleSet2 = ((TurbineGroup) 
group).getUserGroupRoleSet();
         assertEquals(1, userGroupRoleSet2.size());
 
         modelManager.revokeAll(user);
@@ -183,21 +182,20 @@ public abstract class AbstractTurbineMod
         userManager.addUser(user, "clint");
         modelManager.grant(user, group, role);
         boolean ugrFound = false;
-        TurbineUserGroupRole ugr = null;
-        for (Iterator i = ((TurbineUser) 
user).getUserGroupRoleSet().iterator(); i
-                .hasNext();)
+        TurbineUserGroupRole ugrTest = null;
+        for (TurbineUserGroupRole ugr : ((TurbineUser) 
user).getUserGroupRoleSet())
         {
-            ugr = (TurbineUserGroupRole) i.next();
             if (ugr.getUser().equals(user) && ugr.getGroup().equals(group)
                     && ugr.getRole().equals(role))
             {
                 ugrFound = true;
+                ugrTest = ugr;
                 break;
             }
         }
         assertTrue(ugrFound);
-        assertTrue(ugr.getGroup().equals(group));
-        assertTrue(ugr.getUser().equals(user));
+        assertTrue(ugrTest.getGroup().equals(group));
+        assertTrue(ugrTest.getUser().equals(user));
 
     }
 
@@ -214,11 +212,8 @@ public abstract class AbstractTurbineMod
         modelManager.grant(user, group, role);
         modelManager.revoke(user, group, role);
         boolean ugrFound = false;
-        TurbineUserGroupRole ugr = null;
-        for (Iterator i = ((TurbineUser) 
user).getUserGroupRoleSet().iterator(); i
-                .hasNext();)
+        for (TurbineUserGroupRole ugr : ((TurbineUser) 
user).getUserGroupRoleSet())
         {
-            ugr = (TurbineUserGroupRole) i.next();
             if (ugr.getUser().equals(user) && ugr.getGroup().equals(group)
                     && ugr.getRole().equals(role))
             {

Modified: 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/util/GroupSetTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/util/GroupSetTest.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/util/GroupSetTest.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/util/GroupSetTest.java
 Tue Aug 14 15:19:40 2012
@@ -21,9 +21,7 @@ package org.apache.fulcrum.security.util
 import junit.framework.TestCase;
 
 import org.apache.fulcrum.security.entity.Group;
-import org.apache.fulcrum.security.entity.Role;
 import org.apache.fulcrum.security.model.dynamic.entity.impl.DynamicGroupImpl;
-import org.apache.fulcrum.security.model.dynamic.entity.impl.DynamicRoleImpl;
 
 /**
  * @author <a href="mailto:[email protected]";>Eric Pugh</a>
@@ -71,28 +69,10 @@ public class GroupSetTest extends TestCa
         group3.setName("Eric");
         groupSet.add(group3);
         assertTrue(groupSet.contains(group));
-        assertTrue(groupSet.contains((Object) group));
+        assertTrue(groupSet.contains(group));
         assertTrue(groupSet.contains(group2));
         assertTrue(groupSet.contains(group3));
         assertTrue(groupSet.contains(group));
-
-        Role role = new DynamicRoleImpl();
-        role.setName("role");
-        role.setId("role");
-        try {
-            groupSet.add(role);
-            fail("Should have thrown ClassCastException");
-        }
-        catch (ClassCastException cce){
-            assertTrue(cce.getMessage().indexOf("GroupSet")>-1);
-        }
-        try {
-            ((SecuritySet)groupSet).add(role);
-            fail("Should have thrown ClassCastException");
-        }
-        catch (ClassCastException cce){
-            assertTrue(cce.getMessage().indexOf("GroupSet")>-1);
-        }
     }
 
     public void testGroupSetWithSubclass() throws Exception

Modified: 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/util/SecuritySetTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/util/SecuritySetTest.java?rev=1372918&r1=1372917&r2=1372918&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/util/SecuritySetTest.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/util/SecuritySetTest.java
 Tue Aug 14 15:19:40 2012
@@ -47,13 +47,13 @@ public class SecuritySetTest extends Tes
 
     public void testNull() throws Exception
     {
-        SecuritySet securitySet = new GroupSet();
+        SecuritySet<Group> securitySet = new GroupSet();
         assertFalse(securitySet.contains(null));
     }
 
     public void testContainsName()
     {
-        SecuritySet securitySet = new GroupSet();
+        SecuritySet<Group> securitySet = new GroupSet();
         assertFalse(securitySet.containsName(null));
         Group g = new DynamicGroupImpl();
         g.setName("BOB");
@@ -66,7 +66,7 @@ public class SecuritySetTest extends Tes
 
     public void testRemoveAll()
     {
-        SecuritySet securitySet = new GroupSet();
+        SecuritySet<Group> securitySet = new GroupSet();
         assertFalse(securitySet.containsName(null));
         Group g = new DynamicGroupImpl();
         g.setName("BOB");
@@ -74,7 +74,7 @@ public class SecuritySetTest extends Tes
 
         ((GroupSet) securitySet).add(g);
 
-        SecuritySet securitySet2 = new GroupSet();
+        SecuritySet<Group> securitySet2 = new GroupSet();
         assertFalse(securitySet.containsName(null));
         g = new DynamicGroupImpl();
         g.setName("BOB");
@@ -87,7 +87,7 @@ public class SecuritySetTest extends Tes
 
     public void testToArray() throws Exception
     {
-        SecuritySet securitySet = getTestData();
+        SecuritySet<Group> securitySet = getTestData();
         Object array[] = securitySet.toArray();
         assertEquals(2, array.length);
         Object array2[] = new Object[2];
@@ -105,9 +105,9 @@ public class SecuritySetTest extends Tes
         assertTrue(securitySet.add(g));
     }
 
-    private SecuritySet getTestData()
+    private SecuritySet<Group> getTestData()
     {
-        SecuritySet securitySet = new GroupSet();
+        SecuritySet<Group> securitySet = new GroupSet();
         assertFalse(securitySet.containsName(null));
         Group g = new DynamicGroupImpl();
         g.setName("JOE");


Reply via email to