public class NewPermission {
// 是否允許查詢钱豁,二進(jìn)制第1位,0表示否吉执,1表示是
public static final int ALLOW_SELECT = 1 << 0; // 0001
// 是否允許新增疯淫,二進(jìn)制第2位,0表示否戳玫,1表示是
public static final int ALLOW_INSERT = 1 << 1; // 0010
// 是否允許修改熙掺,二進(jìn)制第3位,0表示否咕宿,1表示是
public static final int ALLOW_UPDATE = 1 << 2; // 0100
// 是否允許刪除币绩,二進(jìn)制第4位,0表示否府阀,1表示是
public static final int ALLOW_DELETE = 1 << 3; // 1000
// 存儲(chǔ)目前的權(quán)限狀態(tài)
private int flag;
/**
* 重新設(shè)置權(quán)限
*/
public void setPermission(int permission) {
flag = permission;
}
/**
* 添加一項(xiàng)或多項(xiàng)權(quán)限
*/
public void enable(int permission) {
flag |= permission;
}
/**
* 刪除一項(xiàng)或多項(xiàng)權(quán)限
*/
public void disable(int permission) {
flag &= ~permission;
}
/**
* 是否擁某些權(quán)限
*/
public boolean isAllow(int permission) {
return (flag & permission) == permission;
}
/**
* 是否禁用了某些權(quán)限
*/
public boolean isNotAllow(int permission) {
return (flag & permission) == 0;
}
/**
* 是否僅僅擁有某些權(quán)限
*/
public boolean isOnlyAllow(int permission) {
return flag == permission;
}
}