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 / net / SocketPermissionCollection.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.7 KB  |  88 lines

  1. package java.net;
  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.security.Permission;
  9. import java.security.PermissionCollection;
  10. import java.util.ArrayList;
  11. import java.util.Collections;
  12. import java.util.Enumeration;
  13. import java.util.List;
  14. import java.util.Vector;
  15.  
  16. final class SocketPermissionCollection extends PermissionCollection implements Serializable {
  17.    private transient List perms = new ArrayList();
  18.    private static final long serialVersionUID = 2787186408602843674L;
  19.    private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[]{new ObjectStreamField("permissions", Vector.class)};
  20.  
  21.    public SocketPermissionCollection() {
  22.    }
  23.  
  24.    public void add(Permission var1) {
  25.       if (!(var1 instanceof SocketPermission)) {
  26.          throw new IllegalArgumentException("invalid permission: " + var1);
  27.       } else if (this.isReadOnly()) {
  28.          throw new SecurityException("attempt to add a Permission to a readonly PermissionCollection");
  29.       } else {
  30.          synchronized(this) {
  31.             this.perms.add(0, var1);
  32.          }
  33.       }
  34.    }
  35.  
  36.    public boolean implies(Permission var1) {
  37.       if (!(var1 instanceof SocketPermission)) {
  38.          return false;
  39.       } else {
  40.          SocketPermission var2 = (SocketPermission)var1;
  41.          int var3 = var2.getMask();
  42.          int var4 = 0;
  43.          int var5 = var3;
  44.          synchronized(this) {
  45.             int var7 = this.perms.size();
  46.  
  47.             for(int var8 = 0; var8 < var7; ++var8) {
  48.                SocketPermission var9 = (SocketPermission)this.perms.get(var8);
  49.                if ((var5 & var9.getMask()) != 0 && var9.impliesIgnoreMask(var2)) {
  50.                   var4 |= var9.getMask();
  51.                   if ((var4 & var3) == var3) {
  52.                      return true;
  53.                   }
  54.  
  55.                   var5 = var3 ^ var4;
  56.                }
  57.             }
  58.  
  59.             return false;
  60.          }
  61.       }
  62.    }
  63.  
  64.    public Enumeration elements() {
  65.       synchronized(this) {
  66.          return Collections.enumeration(this.perms);
  67.       }
  68.    }
  69.  
  70.    private void writeObject(ObjectOutputStream var1) throws IOException {
  71.       Vector var2 = new Vector(this.perms.size());
  72.       synchronized(this) {
  73.          var2.addAll(this.perms);
  74.       }
  75.  
  76.       ObjectOutputStream.PutField var3 = var1.putFields();
  77.       var3.put("permissions", var2);
  78.       var1.writeFields();
  79.    }
  80.  
  81.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  82.       ObjectInputStream.GetField var2 = var1.readFields();
  83.       Vector var3 = (Vector)var2.get("permissions", (Object)null);
  84.       this.perms = new ArrayList(var3.size());
  85.       this.perms.addAll(var3);
  86.    }
  87. }
  88.