public class ServicePermission extends Permission
ServiceLoader.getService(Class)
or
ServiceRegistry.register(Class, Object)
or ServiceRegistry.unregister(Class, Object)
.Modifier and Type | Field and Description |
---|---|
static String |
GET_ACTION
Action associated with
ServiceLoader.getService(Class) . |
static String |
REGISTER_ACTION
Action associated with
ServiceRegistry.register(Class, Object) . |
static String |
UNREGISTER_ACTION
Action associated with
ServiceRegistry.unregister(Class, Object) . |
Constructor and Description |
---|
ServicePermission(String parentName,
Class<?> service,
String action)
Creates a permission for the given service.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
Checks two Permission objects for equality.
|
String |
getActions()
Returns the actions as a String.
|
Class<?> |
getService()
Gets the service handled by this permission.
|
int |
hashCode()
Returns the hash code value for this Permission object.
|
boolean |
implies(Permission permission)
Checks if the specified permission's actions are "implied by" this object's actions.
|
getName, toString
public static final String GET_ACTION
ServiceLoader.getService(Class)
.public static final String REGISTER_ACTION
ServiceRegistry.register(Class, Object)
.public static final String UNREGISTER_ACTION
ServiceRegistry.unregister(Class, Object)
.public ServicePermission(String parentName, Class<?> service, String action)
The action can be one of GET_ACTION
, REGISTER_ACTION
or UNREGISTER_ACTION
.
parentName
- the name of the service loader or service registry.service
- the service.action
- the action realized with the service.public boolean equals(@Nullable Object obj)
Permission
Do not use the equals
method for making access control decisions; use the
implies
method.
equals
in class Permission
obj
- the object we are testing for equality with this object.Object.hashCode()
,
HashMap
public String getActions()
Permission
perm1 = new FilePermission(p1, "read,write"); perm2 = new FilePermission(p2, "write,read");both return "read,write" when the
getActions
method is invoked.getActions
in class Permission
public Class<?> getService()
public int hashCode()
Permission
The required hashCode
behavior for Permission Objects is the following:
hashCode
method must consistently return the same integer.
This integer need not remain consistent from one execution of an application to another execution
of the same application.
equals
method, then calling
the hashCode
method on each of the two Permission objects must produce the same
integer result.
hashCode
in class Permission
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean implies(@Nullable Permission permission)
Permission
This must be implemented by subclasses of Permission, as they are the only ones that can impose semantics on a Permission object.
implies
in class Permission
permission
- the permission to check against.