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

  • 相关阅读:
    P2569 [SCOI2010]股票交易 dp 单调队列优化
    luogu P4516 [JSOI2018]潜入行动
    7.12 NOI模拟赛 积性函数求和 数论基础变换 莫比乌斯反演
    luogu P2607 [ZJOI2008]骑士 tarjan dp
    7.11 NOI模拟赛 graph 生成函数 dp 多项式
    luogu P1973 [NOI2011]NOI 嘉年华 dp
    HTML-01文档
    修改服务器为Root直接登录
    strust2--postman遇到的ognl问题
    python-13-函数
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12693520.html
Copyright © 2011-2022 走看看