home *** CD-ROM | disk | FTP | other *** search
- package java.security;
-
- import java.io.Serializable;
- import java.security.cert.Certificate;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
-
- public final class Permissions extends PermissionCollection implements Serializable {
- private Hashtable perms = new Hashtable(11);
- private PermissionCollection allPermission = null;
- // $FF: synthetic field
- static Class class$java$security$UnresolvedPermission;
-
- public void add(Permission var1) {
- if (((PermissionCollection)this).isReadOnly()) {
- throw new SecurityException("attempt to add a Permission to a readonly Permissions object");
- } else {
- PermissionCollection var2 = this.getPermissionCollection(var1);
- var2.add(var1);
- if (var1 instanceof AllPermission) {
- this.allPermission = var2;
- }
-
- }
- }
-
- public boolean implies(Permission var1) {
- PermissionCollection var2 = this.getPermissionCollection(var1);
- return this.allPermission != null && this.allPermission.implies(var1) ? true : var2.implies(var1);
- }
-
- public Enumeration elements() {
- return new PermissionsEnumerator(this.perms.elements());
- }
-
- private Enumeration elements(Permission var1) {
- PermissionCollection var2 = this.getPermissionCollection(var1);
- return var2.elements();
- }
-
- private PermissionCollection getPermissionCollection(Permission var1) {
- Class var2 = var1.getClass();
- Object var3 = (PermissionCollection)this.perms.get(var2);
- if (var3 == null) {
- Hashtable var4 = this.perms;
- synchronized(var4) {
- var3 = (PermissionCollection)this.perms.get(var2);
- if (var3 == null) {
- var3 = this.getUnresolvedPermissions(var1);
- if (var3 == null) {
- var3 = var1.newPermissionCollection();
- if (var3 == null) {
- var3 = new PermissionsHash();
- }
- }
- }
-
- this.perms.put(var2, var3);
- }
- }
-
- return (PermissionCollection)var3;
- }
-
- private PermissionCollection getUnresolvedPermissions(Permission var1) {
- UnresolvedPermissionCollection var2 = (UnresolvedPermissionCollection)this.perms.get(class$java$security$UnresolvedPermission == null ? (class$java$security$UnresolvedPermission = class$("java.security.UnresolvedPermission")) : class$java$security$UnresolvedPermission);
- if (var2 == null) {
- return null;
- } else {
- Vector var3 = var2.getUnresolvedPermissions(var1);
- if (var3 == null) {
- return null;
- } else {
- Certificate[] var4 = null;
- Object[] var5 = var1.getClass().getSigners();
- int var6 = 0;
- if (var5 != null) {
- for(int var7 = 0; var7 < var5.length; ++var7) {
- if (var5[var7] instanceof Certificate) {
- ++var6;
- }
- }
-
- var4 = new Certificate[var6];
- var6 = 0;
-
- for(int var8 = 0; var8 < var5.length; ++var8) {
- if (var5[var8] instanceof Certificate) {
- var4[var6++] = (Certificate)var5[var8];
- }
- }
- }
-
- Object var12 = null;
- Enumeration var13 = var3.elements();
-
- while(var13.hasMoreElements()) {
- UnresolvedPermission var9 = (UnresolvedPermission)var13.nextElement();
- Permission var10 = var9.resolve(var1, var4);
- if (var10 != null) {
- if (var12 == null) {
- var12 = var1.newPermissionCollection();
- if (var12 == null) {
- var12 = new PermissionsHash();
- }
- }
-
- ((PermissionCollection)var12).add(var10);
- }
- }
-
- return (PermissionCollection)var12;
- }
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-