/** * 给外部调用此消息接口,依赖于正在开发的领域对象关系 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; }