Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi.services/src/org/osgi/service/useradmin/UserAdminPermission.java')
-rw-r--r--bundles/org.eclipse.osgi.services/src/org/osgi/service/useradmin/UserAdminPermission.java35
1 files changed, 24 insertions, 11 deletions
diff --git a/bundles/org.eclipse.osgi.services/src/org/osgi/service/useradmin/UserAdminPermission.java b/bundles/org.eclipse.osgi.services/src/org/osgi/service/useradmin/UserAdminPermission.java
index 536a2ac22..b950fbd87 100644
--- a/bundles/org.eclipse.osgi.services/src/org/osgi/service/useradmin/UserAdminPermission.java
+++ b/bundles/org.eclipse.osgi.services/src/org/osgi/service/useradmin/UserAdminPermission.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) OSGi Alliance (2001, 2013). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2001, 2016). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,11 @@ import java.io.IOException;
import java.security.BasicPermission;
import java.security.Permission;
import java.security.PermissionCollection;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.Hashtable;
+import java.util.List;
/**
* Permission to configure and access the {@link Role} objects managed by a User
@@ -323,6 +326,7 @@ public final class UserAdminPermission extends BasicPermission {
* @return {@code true} if the specified permission is implied by this
* object; {@code false} otherwise.
*/
+ @Override
public boolean implies(Permission p) {
if (p instanceof UserAdminPermission) {
UserAdminPermission requested = (UserAdminPermission) p;
@@ -345,10 +349,11 @@ public final class UserAdminPermission extends BasicPermission {
*
* @return the canonical string representation of the actions.
*/
+ @Override
public String getActions() {
String result = actions;
if (result == null) {
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
boolean comma = false;
int mask = getActionsMask();
if ((mask & ACTION_CHANGE_CREDENTIAL) == ACTION_CHANGE_CREDENTIAL) {
@@ -378,6 +383,7 @@ public final class UserAdminPermission extends BasicPermission {
* @return a new {@code PermissionCollection} object suitable for storing
* {@code UserAdminPermission} objects.
*/
+ @Override
public PermissionCollection newPermissionCollection() {
return new UserAdminPermissionCollection();
}
@@ -393,6 +399,7 @@ public final class UserAdminPermission extends BasicPermission {
* object, and has the same name and actions as this
* {@code UserAdminPermission} object.
*/
+ @Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
@@ -411,6 +418,7 @@ public final class UserAdminPermission extends BasicPermission {
*
* @return A hash code value for this object.
*/
+ @Override
public int hashCode() {
int h = 31 * 17 + getName().hashCode();
h = 31 * h + getActions().hashCode();
@@ -446,8 +454,9 @@ public final class UserAdminPermission extends BasicPermission {
* {@code UserAdminPermission} object.
* @see "org.osgi.service.permissionadmin.PermissionInfo.getEncoded()"
*/
+ @Override
public String toString() {
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
sb.append('(');
sb.append(getClass().getName());
sb.append(" \"");
@@ -475,7 +484,7 @@ final class UserAdminPermissionCollection extends PermissionCollection {
* @serial
* @GuardedBy this
*/
- private final Hashtable permissions;
+ private final Hashtable<String, UserAdminPermission> permissions;
/**
* Boolean saying if "*" is in the collection.
*
@@ -488,7 +497,7 @@ final class UserAdminPermissionCollection extends PermissionCollection {
* Creates an empty {@code UserAdminPermissionCollection} object.
*/
public UserAdminPermissionCollection() {
- permissions = new Hashtable();
+ permissions = new Hashtable<>();
all_allowed = false;
}
@@ -503,6 +512,7 @@ final class UserAdminPermissionCollection extends PermissionCollection {
* @throws SecurityException If this {@code UserAdminPermissionCollection}
* object has been marked readonly
*/
+ @Override
public void add(Permission permission) {
if (!(permission instanceof UserAdminPermission))
throw new IllegalArgumentException("Invalid permission: " + permission);
@@ -512,7 +522,7 @@ final class UserAdminPermissionCollection extends PermissionCollection {
final UserAdminPermission uap = (UserAdminPermission) permission;
final String name = uap.getName();
synchronized (this) {
- final UserAdminPermission existing = (UserAdminPermission) permissions.get(name);
+ final UserAdminPermission existing = permissions.get(name);
if (existing != null) {
int oldMask = existing.getActionsMask();
int newMask = uap.getActionsMask();
@@ -539,6 +549,7 @@ final class UserAdminPermissionCollection extends PermissionCollection {
* @return true if the given permission is implied by this
* {@code PermissionCollection}, false otherwise.
*/
+ @Override
public boolean implies(Permission permission) {
if (!(permission instanceof UserAdminPermission)) {
return false;
@@ -552,7 +563,7 @@ final class UserAdminPermissionCollection extends PermissionCollection {
// Short circuit if the "*" Permission was added.
// desired can only be ACTION_NONE when name is "admin".
if (all_allowed && (desired != UserAdminPermission.ACTION_NONE)) {
- x = (UserAdminPermission) permissions.get("*");
+ x = permissions.get("*");
if (x != null) {
effective |= x.getActionsMask();
if ((effective & desired) == desired) {
@@ -564,7 +575,7 @@ final class UserAdminPermissionCollection extends PermissionCollection {
// Check for full match first. Then work our way up the
// name looking for matches on a.b.*
- x = (UserAdminPermission) permissions.get(name);
+ x = permissions.get(name);
}
if (x != null) {
// we have a direct hit!
@@ -579,7 +590,7 @@ final class UserAdminPermissionCollection extends PermissionCollection {
while ((last = name.lastIndexOf(".", offset)) != -1) {
name = name.substring(0, last + 1) + "*";
synchronized (this) {
- x = (UserAdminPermission) permissions.get(name);
+ x = permissions.get(name);
}
if (x != null) {
effective |= x.getActionsMask();
@@ -600,7 +611,9 @@ final class UserAdminPermissionCollection extends PermissionCollection {
*
* @return an enumeration of all the {@code UserAdminPermission} objects.
*/
- public Enumeration elements() {
- return permissions.elements();
+ @Override
+ public Enumeration<Permission> elements() {
+ List<Permission> all = new ArrayList<Permission>(permissions.values());
+ return Collections.enumeration(all);
}
}

Back to the top