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 / UnresolvedPermissionCollection.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.5 KB  |  101 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.ArrayList;
  9. import java.util.Collections;
  10. import java.util.Enumeration;
  11. import java.util.HashMap;
  12. import java.util.Hashtable;
  13. import java.util.List;
  14. import java.util.Map;
  15. import java.util.Vector;
  16.  
  17. final class UnresolvedPermissionCollection extends PermissionCollection implements Serializable {
  18.    private transient Map perms = new HashMap(11);
  19.    private static final long serialVersionUID = -7176153071733132400L;
  20.    private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[]{new ObjectStreamField("permissions", Hashtable.class)};
  21.  
  22.    public UnresolvedPermissionCollection() {
  23.    }
  24.  
  25.    public void add(Permission var1) {
  26.       if (!(var1 instanceof UnresolvedPermission)) {
  27.          throw new IllegalArgumentException("invalid permission: " + var1);
  28.       } else {
  29.          UnresolvedPermission var2 = (UnresolvedPermission)var1;
  30.          Object var3;
  31.          synchronized(this) {
  32.             var3 = (List)this.perms.get(var2.getName());
  33.             if (var3 == null) {
  34.                var3 = new ArrayList();
  35.                this.perms.put(var2.getName(), var3);
  36.             }
  37.          }
  38.  
  39.          synchronized(var3) {
  40.             ((List)var3).add(var2);
  41.          }
  42.       }
  43.    }
  44.  
  45.    List getUnresolvedPermissions(Permission var1) {
  46.       synchronized(this) {
  47.          return (List)this.perms.get(var1.getClass().getName());
  48.       }
  49.    }
  50.  
  51.    public boolean implies(Permission var1) {
  52.       return false;
  53.    }
  54.  
  55.    public Enumeration elements() {
  56.       ArrayList var1 = new ArrayList();
  57.       synchronized(this) {
  58.          for(List var4 : this.perms.values()) {
  59.             synchronized(var4) {
  60.                var1.addAll(var4);
  61.             }
  62.          }
  63.       }
  64.  
  65.       return Collections.enumeration(var1);
  66.    }
  67.  
  68.    private void writeObject(ObjectOutputStream var1) throws IOException {
  69.       Hashtable var2 = new Hashtable(this.perms.size() * 2);
  70.       synchronized(this) {
  71.          for(Map.Entry var6 : this.perms.entrySet()) {
  72.             List var7 = (List)var6.getValue();
  73.             Vector var8 = new Vector(var7.size());
  74.             synchronized(var7) {
  75.                var8.addAll(var7);
  76.             }
  77.  
  78.             var2.put(var6.getKey(), var8);
  79.          }
  80.       }
  81.  
  82.       ObjectOutputStream.PutField var3 = var1.putFields();
  83.       var3.put("permissions", var2);
  84.       var1.writeFields();
  85.    }
  86.  
  87.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  88.       ObjectInputStream.GetField var2 = var1.readFields();
  89.       Hashtable var3 = (Hashtable)var2.get("permissions", (Object)null);
  90.       this.perms = new HashMap(var3.size() * 2);
  91.  
  92.       for(Map.Entry var6 : var3.entrySet()) {
  93.          Vector var7 = (Vector)var6.getValue();
  94.          ArrayList var8 = new ArrayList(var7.size());
  95.          var8.addAll(var7);
  96.          this.perms.put(var6.getKey(), var8);
  97.       }
  98.  
  99.    }
  100. }
  101.