Chinaunix首页 | 论坛 | 博客
  • 博客访问: 604313
  • 博文数量: 298
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3077
  • 用 户 组: 普通用户
  • 注册时间: 2019-06-17 10:57
文章分类

全部博文(298)

文章存档

2022年(96)

2021年(201)

2019年(1)

我的朋友

分类: Java

2021-09-29 10:45:52


点击(此处)折叠或打开


  1. package com.fh.util;

  2. import java.math.BigInteger;

  3. /**
  4.  * 说明:权限计算帮助类
  5.  * 作者:FH Admin
  6.  * 官网:fhadmin.cn
  7.  */
  8. public class RightsHelper {
  9.     /**
  10.      * 利用BigInteger对权限进行2的权的和计算
  11.      * @param rights int型权限编码数组
  12.      * @return 2的权的和
  13.      */
  14.     public static BigInteger sumRights(int[] rights){
  15.         BigInteger num = new BigInteger("0");
  16.         for(int i=0; i<rights.length; i++){
  17.             num = num.setBit(rights[i]);
  18.         }
  19.         return num;
  20.     }
  21.     /**
  22.      * 利用BigInteger对权限进行2的权的和计算
  23.      * @param rights String型权限编码数组
  24.      * @return 2的权的和
  25.      */
  26.     public static BigInteger sumRights(String[] rights){
  27.         BigInteger num = new BigInteger("0");
  28.         for(int i=0; i<rights.length; i++){
  29.             num = num.setBit(Integer.parseInt(rights[i]));
  30.         }
  31.         return num;
  32.     }
  33.     
  34.     /**
  35.      * 测试是否具有指定编码的权限
  36.      * @param sum
  37.      * @param targetRights
  38.      * @return
  39.      */
  40.     public static boolean testRights(BigInteger sum,int targetRights){
  41.         return sum.testBit(targetRights);
  42.     }
  43.     
  44.     /**
  45.      * 测试是否具有指定编码的权限
  46.      * @param sum
  47.      * @param targetRights
  48.      * @return
  49.      */
  50.     public static boolean testRights(String sum,int targetRights){
  51.         if(Tools.isEmpty(sum))
  52.             return false;
  53.         return testRights(new BigInteger(sum),targetRights);
  54.     }
  55.     
  56.     /**
  57.      * 测试是否具有指定编码的权限
  58.      * @param sum
  59.      * @param targetRights
  60.      * @return
  61.      */
  62.     public static boolean testRights(String sum,String targetRights){
  63.         if(Tools.isEmpty(sum))
  64.             return false;
  65.         return testRights(new BigInteger(sum),targetRights);
  66.     }
  67.     
  68.     /**
  69.      * 测试是否具有指定编码的权限
  70.      * @param sum
  71.      * @param targetRights
  72.      * @return
  73.      */
  74.     public static boolean testRights(BigInteger sum,String targetRights){
  75.         return testRights(sum,Integer.parseInt(targetRights));
  76.     }
  77. }


阅读(729) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~