home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / security / PermissionsHash.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.4 KB  |  66 lines

  1. package java.security;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.io.ObjectStreamField;
  7. import java.io.Serializable;
  8. import java.util.Collections;
  9. import java.util.Enumeration;
  10. import java.util.HashMap;
  11. import java.util.Hashtable;
  12. import java.util.Map;
  13.  
  14. final class PermissionsHash extends PermissionCollection implements Serializable {
  15.    private transient Map permsMap = new HashMap(11);
  16.    private static final long serialVersionUID = -8491988220802933440L;
  17.    private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[]{new ObjectStreamField("perms", Hashtable.class)};
  18.  
  19.    public void add(Permission var1) {
  20.       synchronized(this) {
  21.          this.permsMap.put(var1, var1);
  22.       }
  23.    }
  24.  
  25.    public boolean implies(Permission var1) {
  26.       synchronized(this) {
  27.          Permission var3 = (Permission)this.permsMap.get(var1);
  28.          if (var3 == null) {
  29.             for(Permission var7 : this.permsMap.values()) {
  30.                if (var7.implies(var1)) {
  31.                   return true;
  32.                }
  33.             }
  34.  
  35.             return false;
  36.          } else {
  37.             return true;
  38.          }
  39.       }
  40.    }
  41.  
  42.    public Enumeration<Permission> elements() {
  43.       synchronized(this) {
  44.          return Collections.enumeration(this.permsMap.values());
  45.       }
  46.    }
  47.  
  48.    private void writeObject(ObjectOutputStream var1) throws IOException {
  49.       Hashtable var2 = new Hashtable(this.permsMap.size() * 2);
  50.       synchronized(this) {
  51.          var2.putAll(this.permsMap);
  52.       }
  53.  
  54.       ObjectOutputStream.PutField var3 = var1.putFields();
  55.       var3.put("perms", var2);
  56.       var1.writeFields();
  57.    }
  58.  
  59.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  60.       ObjectInputStream.GetField var2 = var1.readFields();
  61.       Hashtable var3 = (Hashtable)var2.get("perms", (Object)null);
  62.       this.permsMap = new HashMap(var3.size() * 2);
  63.       this.permsMap.putAll(var3);
  64.    }
  65. }
  66.