zoukankan      html  css  js  c++  java
  • easy-rules rule 格式说明

    easy-rules 提供了方便的注解,我们可以直接基于pojo编写rule

    rule 方法签名

    public interface Rule {
        /**
        * This method encapsulates the rule's conditions.
        * @return true if the rule should be applied given the provided facts, false otherwise
        */
        boolean evaluate(Facts facts);
        /**
        * This method encapsulates the rule's actions.
        * @throws Exception if an error occurs during actions performing
        */
        void execute(Facts facts) throws Exception;
        //Getters and setters for rule name, description and priority omitted.
    }

    pojo 注解模式

    • 参考
    @Rule(name = "my rule", description = "my rule description", priority = 1)
    public class MyRule {
        @Condition
        public boolean when(@Fact("fact") Facts fact) {
            //my rule conditions
            return true;
        }
        @Action(order = 1)
        public void then(@Fact("fact") Facts fact) throws Exception {
            //my actions
        }
        @Action(order = 2)
        public void finally() throws Exception {
            //my final actions
        }
    }

    RuleBuilder 模式

    Rule rule = new RuleBuilder()
                    .name("myRule")
                    .description("myRuleDescription")
                    .priority(3)
                    .when(condition)
                    .then(action1)
                    .then(action2)
                    .build();

    yaml 格式

    参考如下,理论上是一种扩展

    name: "5"
    description: "5"
    condition: "user.name.length<30"
    priority: 5
    actions:
      - "UserService.doAction4(user.userinfo)"

    json 格式

    同yaml 格式一样,也是一种扩展

    {
        "name": "3",
        "description": "3",
        "condition": "user.name.length<50",
        "priority": 3,
        "actions": [
          "System.out.println("default rule3 ")"
        ]
    }

    参考资料

    https://github.com/j-easy/easy-rules/wiki/defining-rules

  • 相关阅读:
    前中后序建立树或者直接历遍
    Leetcode:面试题 04.03. 特定深度节点链表
    按层数层序历遍
    Solidity函数修饰符
    无线传感网定位技术
    无线传感器网络概述,传感器网络结构
    Solidity高级用法
    智能合约交互
    内存
    CPU的态
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12693520.html
Copyright © 2011-2022 走看看