public final class DataPermission extends Permission
A data permission has a form that consists of three parts, with possible '*'
as a wildcard. The first keyword is the Affiliation name, one of
#AFFIL, followed by the user name (separated by a colon), then the
proposal id. The normal wildcard rule apply. The action is one of
#ACCESS.
| Modifier and Type | Class and Description |
|---|---|
static class |
DataPermission.Access
The different access possibilities to the data.
|
private static class |
DataPermission.DataPermissionCollection
We want to provide our own permission collection.
|
static class |
DataPermission.Test
Test the class.
|
| Modifier and Type | Field and Description |
|---|---|
private EnumSet<DataPermission.Access> |
action
To speed-up operation, we parse the access into a bitmask.
|
static String |
COLON
The separator string between Affiliation, user name and propid.
|
private String |
propid
If a user name plus proposal was specified.
|
private String |
user
If a user name plus proposal was specified.
|
private EnumSet<UserProfile.Affil> |
whom
The affiliations accessible.
|
static String |
WILDCARD
The wildcard string.
|
| Constructor and Description |
|---|
DataPermission(String name)
Constructs a new data permission object with no access rights.
|
DataPermission(String name,
String acton)
Constructs a new data permission object.
|
| Modifier and Type | Method and Description |
|---|---|
static String |
accessString(EnumSet<DataPermission.Access> actions)
Parses an enumeration set of actions into an access string.
|
static String |
actionsFromBitmask(short mask)
Returns the action string from an integer bit-mask.
|
private EnumSet<DataPermission.Access> |
checkActionConsistancy(String act)
Checks the consitancy of the permission action.
|
private EnumSet<UserProfile.Affil> |
checkNameConsistancy(String name)
Checks the consistancy of the permission name.
|
boolean |
equals(Object that)
Additionally check the mask.
|
static EnumSet<DataPermission.Access> |
fromBitmask(short mask)
Parses an integer bit mask into an
EnumSet of actions. |
String |
getActions()
Returns the actions.
|
int |
hashCode()
Returns the name has code.
|
boolean |
implies(Permission to)
Additionally to normal name matching, also the action mask must apply.
|
PermissionCollection |
newPermissionCollection()
Returns a new data permission collection.
|
static short |
toBitmask(EnumSet<DataPermission.Access> perms)
Returns a bit-mask from a set of accesses.
|
checkGuard, getName, toStringpublic static final String COLON
public static final String WILDCARD
private EnumSet<DataPermission.Access> action
private EnumSet<UserProfile.Affil> whom
private String user
private String propid
public DataPermission(String name)
public DataPermission(String name, String acton)
#Affil. If an affil is given, a colon has to
appear next. After the colon, a wildcard or a username follows, then a
proposal id.#Access.private EnumSet<DataPermission.Access> checkActionConsistancy(String act)
DataPermission.Accesses. If the Access.NONE is
present, it must be the only item. If the action consists of multiple
Accesses of the same type, an illegal argument is thrown.private EnumSet<UserProfile.Affil> checkNameConsistancy(String name)
public boolean implies(Permission to)
implies in class Permissionpublic boolean equals(Object that)
equals in class Permissionpublic int hashCode()
hashCode in class Permissionpublic String getActions()
getActions in class Permissionpublic static String actionsFromBitmask(short mask)
public static final EnumSet<DataPermission.Access> fromBitmask(short mask)
EnumSet of actions. If mask is
zero, an empty set is returned.public static final short toBitmask(EnumSet<DataPermission.Access> perms)
public static final String accessString(EnumSet<DataPermission.Access> actions)
public PermissionCollection newPermissionCollection()
newPermissionCollection in class Permission