80 lines
1.8 KiB
Java
80 lines
1.8 KiB
Java
|
package com.zcloud.util;
|
|||
|
|
|||
|
import java.math.BigInteger;
|
|||
|
|
|||
|
/**
|
|||
|
* 说明:权限计算帮助类
|
|||
|
* 作者:luoxiaobao
|
|||
|
* 官网:www.qdkjchina.com
|
|||
|
*/
|
|||
|
public class RightsHelper {
|
|||
|
/**
|
|||
|
* 利用BigInteger对权限进行2的权的和计算
|
|||
|
* @param rights int型权限编码数组
|
|||
|
* @return 2的权的和
|
|||
|
*/
|
|||
|
public static BigInteger sumRights(int[] rights){
|
|||
|
BigInteger num = new BigInteger("0");
|
|||
|
for(int i=0; i<rights.length; i++){
|
|||
|
num = num.setBit(rights[i]);
|
|||
|
}
|
|||
|
return num;
|
|||
|
}
|
|||
|
/**
|
|||
|
* 利用BigInteger对权限进行2的权的和计算
|
|||
|
* @param rights String型权限编码数组
|
|||
|
* @return 2的权的和
|
|||
|
*/
|
|||
|
public static BigInteger sumRights(String[] rights){
|
|||
|
BigInteger num = new BigInteger("0");
|
|||
|
for(int i=0; i<rights.length; i++){
|
|||
|
num = num.setBit(Integer.parseInt(rights[i]));
|
|||
|
}
|
|||
|
return num;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 测试是否具有指定编码的权限
|
|||
|
* @param sum
|
|||
|
* @param targetRights
|
|||
|
* @return
|
|||
|
*/
|
|||
|
public static boolean testRights(BigInteger sum,int targetRights){
|
|||
|
return sum.testBit(targetRights);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 测试是否具有指定编码的权限
|
|||
|
* @param sum
|
|||
|
* @param targetRights
|
|||
|
* @return
|
|||
|
*/
|
|||
|
public static boolean testRights(String sum,int targetRights){
|
|||
|
if(Tools.isEmpty(sum))
|
|||
|
return false;
|
|||
|
return testRights(new BigInteger(sum),targetRights);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 测试是否具有指定编码的权限
|
|||
|
* @param sum
|
|||
|
* @param targetRights
|
|||
|
* @return
|
|||
|
*/
|
|||
|
public static boolean testRights(String sum,String targetRights){
|
|||
|
if(Tools.isEmpty(sum))
|
|||
|
return false;
|
|||
|
return testRights(new BigInteger(sum),targetRights);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 测试是否具有指定编码的权限
|
|||
|
* @param sum
|
|||
|
* @param targetRights
|
|||
|
* @return
|
|||
|
*/
|
|||
|
public static boolean testRights(BigInteger sum,String targetRights){
|
|||
|
return testRights(sum,Integer.parseInt(targetRights));
|
|||
|
}
|
|||
|
}
|