Mercurial > hg > LGDataverses
view src/main/java/edu/harvard/iq/dataverse/authorization/RoleAssignmentSet.java @ 13:d3374217e19e
url config for LGMap
| author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
|---|---|
| date | Wed, 30 Sep 2015 13:55:57 +0200 |
| parents | a50cf11e5178 |
| children |
line wrap: on
line source
package edu.harvard.iq.dataverse.authorization; import edu.harvard.iq.dataverse.RoleAssignment; import edu.harvard.iq.dataverse.util.BitSet; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /** * A set of assignment for a given {@link RoleAssignee} user has. * * LATER: we could probably refactor this class out. * @author michael */ public class RoleAssignmentSet implements Iterable<RoleAssignment> { private final RoleAssignee roas; private final Set<RoleAssignment> assignments = new HashSet<>(); public RoleAssignmentSet( RoleAssignee aRoleAssignee) { roas = aRoleAssignee; } public void add( Iterable<RoleAssignment> ras ) { for ( RoleAssignment ra : ras ) { assignments.add(ra); } } public void add( RoleAssignment ra ) { assignments.add( ra ); } public Set<Permission> getPermissions() { BitSet acc = new BitSet(); for ( RoleAssignment ra : assignments ) { acc.union( new BitSet(ra.getRole().getPermissionsBits()) ); } return acc.asSetOf( Permission.class ); } public RoleAssignee getRoleAssignee() { return roas; } public Set<RoleAssignment> getAssignments() { return assignments; } @Override public Iterator<RoleAssignment> iterator() { return assignments.iterator(); } public boolean isEmpty() { return assignments.isEmpty(); } }
