1 28 package net.sf.jguard.core.authorization.permissions; 29 30 import java.security.Permission ; 31 import java.security.PermissionCollection ; 32 import java.util.Collection ; 33 import java.util.Collections ; 34 import java.util.Enumeration ; 35 import java.util.HashSet ; 36 import java.util.Iterator ; 37 import java.util.Set ; 38 import java.util.logging.Logger ; 39 40 41 42 51 public abstract class JGPermissionCollection extends PermissionCollection { 52 53 56 private static final long serialVersionUID = 3834030277143377201L; 57 58 private static final Logger logger = Logger.getLogger(JGPermissionCollection.class.getName()); 59 60 protected Set permissions; 61 62 66 public JGPermissionCollection() { 67 68 permissions = new HashSet (); 69 } 70 71 75 public JGPermissionCollection(Collection coll) { 76 77 permissions = new HashSet (coll); 78 } 79 83 public void add(Permission permission) { 84 permissions.add(permission); 85 86 } 87 88 93 public void addAll(Set permissionSet) { 94 permissions.addAll(permissionSet); 95 96 } 97 98 public void addAll(PermissionCollection pcColl){ 99 Enumeration en = pcColl.elements(); 100 while(en.hasMoreElements()){ 101 permissions.add((Permission )en.nextElement()); 102 } 103 } 104 105 109 public Enumeration elements() { 110 return Collections.enumeration(permissions); 111 112 } 113 114 115 116 117 118 124 public Permission getPermission (String permissionName) throws NoSuchPermissionException{ 125 Permission permission; 126 Iterator it = permissions.iterator(); 127 while(it.hasNext()){ 128 permission = (Permission )it.next(); 129 if(permission.getName().equals(permissionName)){ 130 return permission; 131 } 132 133 } 134 logger.warning("permission "+permissionName+" not found in JGPermissionCollection#getPermission!!!"); 135 logger.warning("permissions="+permissions); 136 throw new NoSuchPermissionException("permission "+permissionName+" not found in JGPermissionCollection#getPermission"); 137 138 } 139 140 144 public void removePermission(Permission permission){ 145 permissions.remove(permission); 146 } 147 148 152 public void removePermissions(PermissionCollection permColl){ 153 Enumeration permissionsEnum = permColl.elements(); 154 while(permissionsEnum.hasMoreElements()){ 155 permissions.remove((Permission )permissionsEnum.nextElement()); 156 } 157 } 158 159 163 public void clear(){ 164 permissions.clear(); 165 } 166 167 public String toString(){ 168 StringBuffer sb = new StringBuffer (); 169 Iterator permissionsIterator = this.permissions.iterator(); 170 while(permissionsIterator.hasNext()){ 171 Permission permission = (Permission )permissionsIterator.next(); 172 sb.append(permission.toString()); 173 sb.append("\n"); 174 } 175 return sb.toString(); 176 } 177 178 182 public int size(){ 183 return permissions.size(); 184 } 185 186 189 public Set getPermissions() { 190 return permissions; 191 } 192 193 198 public boolean containsPermission(Permission permission) { 199 return permissions.contains(permission); 200 } 201 202 205 public void setPermissions(Set perms) { 206 207 this.permissions = perms; 208 } 209 210 } 211 | Popular Tags |