Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi.services/src/org/osgi/service/wireadmin/WirePermission.java')
-rw-r--r--bundles/org.eclipse.osgi.services/src/org/osgi/service/wireadmin/WirePermission.java35
1 files changed, 24 insertions, 11 deletions
diff --git a/bundles/org.eclipse.osgi.services/src/org/osgi/service/wireadmin/WirePermission.java b/bundles/org.eclipse.osgi.services/src/org/osgi/service/wireadmin/WirePermission.java
index ecf1b5fa8..53e2f6000 100644
--- a/bundles/org.eclipse.osgi.services/src/org/osgi/service/wireadmin/WirePermission.java
+++ b/bundles/org.eclipse.osgi.services/src/org/osgi/service/wireadmin/WirePermission.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) OSGi Alliance (2002, 2015). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2002, 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 for the scope of a {@code Wire} object. When a {@code Envelope}
@@ -190,6 +193,7 @@ final public class WirePermission 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 WirePermission) {
WirePermission requested = (WirePermission) p;
@@ -206,10 +210,11 @@ final public class WirePermission 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_PRODUCE) == ACTION_PRODUCE) {
@@ -233,6 +238,7 @@ final public class WirePermission extends BasicPermission {
* @return A new {@code PermissionCollection} object suitable for storing
* {@code WirePermission} objects.
*/
+ @Override
public PermissionCollection newPermissionCollection() {
return new WirePermissionCollection();
}
@@ -248,6 +254,7 @@ final public class WirePermission extends BasicPermission {
* name and actions as this {@code WirePermission} object;
* {@code false} otherwise.
*/
+ @Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
@@ -264,6 +271,7 @@ final public class WirePermission extends BasicPermission {
*
* @return Hash code value for this object.
*/
+ @Override
public int hashCode() {
int h = 31 * 17 + getName().hashCode();
h = 31 * h + getActions().hashCode();
@@ -278,8 +286,9 @@ final public class WirePermission extends BasicPermission {
*
* @return information about this {@code Permission} object.
*/
+ @Override
public String toString() {
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
sb.append('(');
sb.append(getClass().getName());
sb.append(" \"");
@@ -330,7 +339,7 @@ final class WirePermissionCollection extends PermissionCollection {
* @GuardedBy this
* @serial
*/
- private final Hashtable permissions;
+ private final Hashtable<String, WirePermission>permissions;
/**
* Boolean saying if "*" is in the collection.
*
@@ -344,7 +353,7 @@ final class WirePermissionCollection extends PermissionCollection {
*
*/
public WirePermissionCollection() {
- permissions = new Hashtable();
+ permissions = new Hashtable<>();
all_allowed = false;
}
@@ -359,6 +368,7 @@ final class WirePermissionCollection extends PermissionCollection {
* @throws SecurityException If this PermissionCollection has been marked
* read-only.
*/
+ @Override
public void add(Permission permission) {
if (!(permission instanceof WirePermission)) {
throw new IllegalArgumentException("invalid permission: " + permission);
@@ -369,7 +379,7 @@ final class WirePermissionCollection extends PermissionCollection {
WirePermission wp = (WirePermission) permission;
String name = wp.getName();
synchronized (this) {
- WirePermission existing = (WirePermission) permissions.get(name);
+ WirePermission existing = permissions.get(name);
if (existing != null) {
int oldMask = existing.getActionsMask();
int newMask = wp.getActionsMask();
@@ -396,6 +406,7 @@ final class WirePermissionCollection extends PermissionCollection {
* @return {@code true} if {@code permission} is a proper subset of a
* permission in the set; {@code false} otherwise.
*/
+ @Override
public boolean implies(Permission permission) {
if (!(permission instanceof WirePermission)) {
return false;
@@ -408,7 +419,7 @@ final class WirePermissionCollection extends PermissionCollection {
synchronized (this) {
// short circuit if the "*" Permission was added
if (all_allowed) {
- x = (WirePermission) permissions.get("*");
+ x = permissions.get("*");
if (x != null) {
effective |= x.getActionsMask();
if ((effective & desired) == desired)
@@ -418,7 +429,7 @@ final class WirePermissionCollection extends PermissionCollection {
// strategy:
// Check for full match first. Then work our way up the
// name looking for matches on a.b.*
- x = (WirePermission) permissions.get(name);
+ x = permissions.get(name);
}
if (x != null) {
// we have a direct hit!
@@ -433,7 +444,7 @@ final class WirePermissionCollection extends PermissionCollection {
while ((last = name.lastIndexOf(".", offset)) != -1) {
name = name.substring(0, last + 1) + "*";
synchronized (this) {
- x = (WirePermission) permissions.get(name);
+ x = permissions.get(name);
}
if (x != null) {
effective |= x.getActionsMask();
@@ -453,7 +464,9 @@ final class WirePermissionCollection extends PermissionCollection {
*
* @return Enumeration of all the Permission 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