/* * Authority.java * * Created on March 27, 2006, 9:41 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package fileprocessing; import java.util.BitSet; import java.util.StringTokenizer; /** * * @author kerzner */ public class Authority { private BitSet authority = new BitSet();; public enum Area { People(0), Groups(1), Plans(2), Messages(3), Logs(4), Companies(5); private int area; Area(int area) { this.area = area; } public int area() { return area; } } public enum Permission { Read(0), Write(1), Execute(2); private int permission; Permission(int permission) { this.permission = permission; } public int permission() { return permission; } } /** Creates a new instance of Authority */ public Authority() { } public boolean getAuthority(Area area, Permission permission) { return authority.get(ind(area, permission)); } public void setAuthority(Area area, Permission permission, boolean x) { authority.set(ind(area, permission), x); } private int ind(Area area, Permission permission) { return Permission.values().length * area.area() + permission.permission(); } public String toString() { return authority.toString(); } public void fromString(String str) { authority = new BitSet(); if (str == null || str.trim().length() == 0) { return; } if (!(str.startsWith("{") && str.endsWith("}"))) { return; } StringTokenizer strTok = new StringTokenizer(str.substring(1, str.length() - 1), " ,"); while (strTok.hasMoreTokens()) { String tok = strTok.nextToken(); authority.set(Integer.parseInt(tok)); } } public void setAllAuthority(boolean x) { for (Permission p: Permission.values()) { for (Area a: Area.values()) { setAuthority(a, p, x); } } } }