home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / security / Permissions.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.8 KB  |  127 lines

  1. package java.security;
  2.  
  3. import java.io.Serializable;
  4. import java.security.cert.Certificate;
  5. import java.util.Enumeration;
  6. import java.util.Hashtable;
  7. import java.util.Vector;
  8.  
  9. public final class Permissions extends PermissionCollection implements Serializable {
  10.    private Hashtable perms = new Hashtable(11);
  11.    private PermissionCollection allPermission = null;
  12.    // $FF: synthetic field
  13.    static Class class$java$security$UnresolvedPermission;
  14.  
  15.    public void add(Permission var1) {
  16.       if (((PermissionCollection)this).isReadOnly()) {
  17.          throw new SecurityException("attempt to add a Permission to a readonly Permissions object");
  18.       } else {
  19.          PermissionCollection var2 = this.getPermissionCollection(var1);
  20.          var2.add(var1);
  21.          if (var1 instanceof AllPermission) {
  22.             this.allPermission = var2;
  23.          }
  24.  
  25.       }
  26.    }
  27.  
  28.    public boolean implies(Permission var1) {
  29.       PermissionCollection var2 = this.getPermissionCollection(var1);
  30.       return this.allPermission != null && this.allPermission.implies(var1) ? true : var2.implies(var1);
  31.    }
  32.  
  33.    public Enumeration elements() {
  34.       return new PermissionsEnumerator(this.perms.elements());
  35.    }
  36.  
  37.    private Enumeration elements(Permission var1) {
  38.       PermissionCollection var2 = this.getPermissionCollection(var1);
  39.       return var2.elements();
  40.    }
  41.  
  42.    private PermissionCollection getPermissionCollection(Permission var1) {
  43.       Class var2 = var1.getClass();
  44.       Object var3 = (PermissionCollection)this.perms.get(var2);
  45.       if (var3 == null) {
  46.          Hashtable var4 = this.perms;
  47.          synchronized(var4) {
  48.             var3 = (PermissionCollection)this.perms.get(var2);
  49.             if (var3 == null) {
  50.                var3 = this.getUnresolvedPermissions(var1);
  51.                if (var3 == null) {
  52.                   var3 = var1.newPermissionCollection();
  53.                   if (var3 == null) {
  54.                      var3 = new PermissionsHash();
  55.                   }
  56.                }
  57.             }
  58.  
  59.             this.perms.put(var2, var3);
  60.          }
  61.       }
  62.  
  63.       return (PermissionCollection)var3;
  64.    }
  65.  
  66.    private PermissionCollection getUnresolvedPermissions(Permission var1) {
  67.       UnresolvedPermissionCollection var2 = (UnresolvedPermissionCollection)this.perms.get(class$java$security$UnresolvedPermission == null ? (class$java$security$UnresolvedPermission = class$("java.security.UnresolvedPermission")) : class$java$security$UnresolvedPermission);
  68.       if (var2 == null) {
  69.          return null;
  70.       } else {
  71.          Vector var3 = var2.getUnresolvedPermissions(var1);
  72.          if (var3 == null) {
  73.             return null;
  74.          } else {
  75.             Certificate[] var4 = null;
  76.             Object[] var5 = var1.getClass().getSigners();
  77.             int var6 = 0;
  78.             if (var5 != null) {
  79.                for(int var7 = 0; var7 < var5.length; ++var7) {
  80.                   if (var5[var7] instanceof Certificate) {
  81.                      ++var6;
  82.                   }
  83.                }
  84.  
  85.                var4 = new Certificate[var6];
  86.                var6 = 0;
  87.  
  88.                for(int var8 = 0; var8 < var5.length; ++var8) {
  89.                   if (var5[var8] instanceof Certificate) {
  90.                      var4[var6++] = (Certificate)var5[var8];
  91.                   }
  92.                }
  93.             }
  94.  
  95.             Object var12 = null;
  96.             Enumeration var13 = var3.elements();
  97.  
  98.             while(var13.hasMoreElements()) {
  99.                UnresolvedPermission var9 = (UnresolvedPermission)var13.nextElement();
  100.                Permission var10 = var9.resolve(var1, var4);
  101.                if (var10 != null) {
  102.                   if (var12 == null) {
  103.                      var12 = var1.newPermissionCollection();
  104.                      if (var12 == null) {
  105.                         var12 = new PermissionsHash();
  106.                      }
  107.                   }
  108.  
  109.                   ((PermissionCollection)var12).add(var10);
  110.                }
  111.             }
  112.  
  113.             return (PermissionCollection)var12;
  114.          }
  115.       }
  116.    }
  117.  
  118.    // $FF: synthetic method
  119.    static Class class$(String var0) {
  120.       try {
  121.          return Class.forName(var0);
  122.       } catch (ClassNotFoundException var2) {
  123.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  124.       }
  125.    }
  126. }
  127.