您的位置:首页 > 其它

通过反射机制实现 树的逻辑处理

2013-05-21 11:41 323 查看
 public BigDecimal Tree(List<CareCriteria> careCriterias, AuthorizationForm myForm,

      String noteId) throws SecurityException, NoSuchFieldException,

      IllegalArgumentException, IllegalAccessException {

     

     BigDecimal physical = new BigDecimal("0");

     

     for(CareCriteria careCriteria : careCriterias) {

      if(noteId.equals(careCriteria.noteId)) {

       if("1".equals(careCriteria.endFlag)) {

        physical = careCriteria.endValue;

        return physical;

       }

       

       if(careCriteria.objectGroup !=null && !"".equals(careCriteria.objectGroup)) {

        Class<?> demo = AuthorizationService.class;

        Field field = demo.getDeclaredField(careCriteria.objectGroup);

        field.setAccessible(true);

        

        BigDecimal zou = new BigDecimal("0");

        zou = zou.add((BigDecimal) field.get(this));

        if(zou.compareTo(careCriteria.groupDatumValue) == 1) {

         return Tree(careCriterias,myForm,careCriteria.nextNoteNo);

        }else{

         return Tree(careCriterias,myForm,careCriteria.nextNoteYes);

        }

       }else if(careCriteria.objectItem != null && !"".equals(careCriteria.objectItem)){

        Class<?> demo = myForm.authoriza.getClass();

        Field field = demo.getDeclaredField(careCriteria.objectItem);

        field.setAccessible(true);

        

        String strings[] = careCriteria.objectDatumValue.split(",");

        for(String value :strings){

         if(field.get(myForm.authoriza).equals(value)){

          return Tree(careCriterias,myForm,careCriteria.nextNoteYes);

         }

        }

        return Tree(careCriterias,myForm,careCriteria.nextNoteNo);

       }

      }

     }

     return null;

    }



 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐