Updated package names so things will compile.
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / aa / AA_AclEntry.java
1 package edu.internet2.middleware.shibboleth.aa;
2
3 import java.util.*;
4 import java.io.*;
5 import java.security.acl.*;
6 import java.security.*;
7
8 public class AA_AclEntry implements java.security.acl.AclEntry, Serializable{
9
10     HashSet permissions;
11     boolean isNegative;
12     Principal principal;
13
14     AA_AclEntry(Principal p){
15         permissions = new HashSet();
16         isNegative = false;
17         principal = p;
18     }
19
20     AA_AclEntry(Collection c, boolean n, Principal p){
21         permissions = new HashSet(c);
22         isNegative = n;
23         principal = p;
24     }
25
26     /////// Methods //////////
27
28     public boolean addPermission(java.security.acl.Permission p){
29         return permissions.add(p);
30     }
31
32     public boolean checkPermission(java.security.acl.Permission p){
33         if(permissions.contains(new AA_Permission(AA_Permission.ALL)))
34             return true;
35         boolean rc = permissions.contains(p);
36         return rc;
37     }
38
39     public Object clone(){
40         return new AA_AclEntry(permissions, isNegative, principal);
41     }
42
43     public Principal getPrincipal(){
44         return principal;
45     }
46
47     public boolean isNegative(){
48         return isNegative;
49     }
50
51     public Enumeration permissions(){
52         return new PermissionsEnumeration(permissions);
53     }
54
55     public boolean removePermission(java.security.acl.Permission p){
56         return permissions.remove(p);
57     }
58
59     public void setNegativePermissions(){
60         isNegative = true;
61     }
62
63     public boolean setPrincipal(Principal p){
64         if(principal != null){
65             return false;
66         }else{
67             principal = p;
68             return true;
69         }
70     }
71
72     public String toString(){
73         return (isNegative?"-":"+")
74             +principal
75             +"("
76             +permissions
77             +")";
78     }
79
80     public boolean equals(Object o){
81         AclEntry ae = (AclEntry)o;
82         if(this.principal.equals(ae.getPrincipal()) && 
83            (ae.isNegative() == isNegative))
84             return true;
85         return false;
86     }
87
88     public int hashCode(){
89         return principal.hashCode();
90     }
91            
92     
93 }
94
95 class PermissionsEnumeration implements java.util.Enumeration{
96     HashSet perms;
97     Iterator it;
98
99     PermissionsEnumeration(HashSet p){
100         perms = p;
101         it = perms.iterator();
102     }
103
104     public boolean hasMoreElements(){
105         return it.hasNext();
106     }
107
108     public Object nextElement(){
109         return it.next();
110     }
111 }
112
113
114
115
116