Esempio n. 1
0
 /**
  * 给外部调用此消息接口,依赖于正在开发的领域对象关系 Task关联多个Policies , 一个Policy映射多个Condition和1个Action
  *
  * @param eventif
  * @return
  */
 public List<PolicyResult> processPolicies(EventIf eventif) {
   if (eventif == null || CollectionUtils.isEmpty(eventif.getPolicyObjects())) {
     return null;
   }
   List<PolicyResult> policyResults = new ArrayList<>(eventif.getPolicyObjects().size());
   if (eventif != null) {
     List<PolicyObject> policyObjectList = eventif.getPolicyObjects();
     if (policyObjectList != null) {
       for (PolicyObject policyObject : policyObjectList) {
         // 调用builder模式构建上下文
         PolicyContext policyContext = builderPolicy(eventif, policyObject);
         List<PolicyResult> policyResultAll = processPolicy(policyContext);
         // 结果放入结果集
         if (CollectionUtils.isNotEmpty(policyResultAll)) {
           policyResults.addAll(policyResultAll);
         }
       }
     }
   }
   return policyResults;
 }