[jboss-cvs] jboss-seam/src/main/org/jboss/seam/security/acl ...

Shane Bryzak Shane_Bryzak at symantec.com
Wed Oct 18 01:30:50 EDT 2006


  User: sbryzak2
  Date: 06/10/18 01:30:50

  Added:       src/main/org/jboss/seam/security/acl  AclEntryImpl.java
  Log:
  Implementation of java.security.acl.AclEntry
  
  Revision  Changes    Path
  1.1      date: 2006/10/18 05:30:50;  author: sbryzak2;  state: Exp;jboss-seam/src/main/org/jboss/seam/security/acl/AclEntryImpl.java
  
  Index: AclEntryImpl.java
  ===================================================================
  package org.jboss.seam.security.acl;
  
  import java.security.Principal;
  import java.security.acl.AclEntry;
  import java.security.acl.Permission;
  import java.util.Enumeration;
  import java.util.HashSet;
  import java.util.Iterator;
  import java.util.Set;
  
  /**
   * Default AclEntry implementation.
   *
   * @author Shane Bryzak
   */
  public class AclEntryImpl implements AclEntry
  {
    private Set<Permission> permissions = new HashSet<Permission>();
    private boolean negative;
    private Principal principal;
  
    public boolean addPermission(Permission permission)
    {
      return permissions.add(permission);
    }
  
    public boolean removePermission(Permission permission)
    {
      return permissions.remove(permission);
    }
  
    public boolean checkPermission(Permission permission)
    {
      return permissions.contains(permission);
    }
  
    public Enumeration permissions()
    {
      final Iterator iter = permissions.iterator();
  
      return new Enumeration() {
        public boolean hasMoreElements() {
          return iter.hasNext();
        }
        public Object nextElement() {
          return iter.next();
        }
      };
    }
  
    public void setNegativePermissions()
    {
      negative = true;
    }
  
    public boolean isNegative()
    {
      return negative;
    }
  
    public Principal getPrincipal()
    {
      return principal;
    }
  
    public boolean setPrincipal(Principal user)
    {
      if (principal != null)
        return false;
  
      principal = user;
      return true;
    }
  
    public String toString()
    {
      final String hdr = "AclEntry[";
      StringBuilder sb = new StringBuilder(hdr);
  
      for (Permission p : permissions)
      {
        if (sb.length() > hdr.length())
          sb.append(',');
        sb.append(p.toString());
      }
      sb.append(']');
      return sb.toString();
    }
  
    public Object clone()
    {
      AclEntryImpl clone = new AclEntryImpl();
      for (Permission p : permissions)
      {
        clone.addPermission(p);
      }
      clone.negative = negative;
  
      return clone;
    }
  }
  
  
  



More information about the jboss-cvs-commits mailing list