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 / BasicPermissionCollection.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.6 KB  |  61 lines

  1. package java.security;
  2.  
  3. import java.io.Serializable;
  4. import java.util.Enumeration;
  5. import java.util.Hashtable;
  6.  
  7. final class BasicPermissionCollection extends PermissionCollection implements Serializable {
  8.    private Hashtable permissions = new Hashtable(11);
  9.    private boolean all_allowed = false;
  10.  
  11.    public BasicPermissionCollection() {
  12.    }
  13.  
  14.    public void add(Permission var1) {
  15.       if (!(var1 instanceof BasicPermission)) {
  16.          throw new IllegalArgumentException("invalid permission: " + var1);
  17.       } else if (((PermissionCollection)this).isReadOnly()) {
  18.          throw new SecurityException("attempt to add a Permission to a readonly PermissionCollection");
  19.       } else {
  20.          BasicPermission var2 = (BasicPermission)var1;
  21.          this.permissions.put(((Permission)var2).getName(), var1);
  22.          if (!this.all_allowed && ((Permission)var2).getName().equals("*")) {
  23.             this.all_allowed = true;
  24.          }
  25.  
  26.       }
  27.    }
  28.  
  29.    public boolean implies(Permission var1) {
  30.       if (!(var1 instanceof BasicPermission)) {
  31.          return false;
  32.       } else {
  33.          BasicPermission var2 = (BasicPermission)var1;
  34.          if (this.all_allowed) {
  35.             return true;
  36.          } else {
  37.             String var3 = ((Permission)var2).getName();
  38.             Permission var4 = (Permission)this.permissions.get(var3);
  39.             if (var4 != null) {
  40.                return var4.implies(var1);
  41.             } else {
  42.                int var5;
  43.                for(int var6 = var3.length() - 1; (var5 = var3.lastIndexOf(".", var6)) != -1; var6 = var5 - 1) {
  44.                   var3 = var3.substring(0, var5 + 1) + "*";
  45.                   var4 = (Permission)this.permissions.get(var3);
  46.                   if (var4 != null) {
  47.                      return var4.implies(var1);
  48.                   }
  49.                }
  50.  
  51.                return false;
  52.             }
  53.          }
  54.       }
  55.    }
  56.  
  57.    public Enumeration elements() {
  58.       return this.permissions.elements();
  59.    }
  60. }
  61.