Search in sources :

Example 1 with YamlRuleDefinitionReader

use of org.jeasy.rules.support.reader.YamlRuleDefinitionReader in project easy-rules by j-easy.

the class Launcher method main.

public static void main(String[] args) throws Exception {
    // create a person instance (fact)
    Person tom = new Person("Tom", 14);
    Facts facts = new Facts();
    facts.put("person", tom);
    // create rules
    MVELRule ageRule = new MVELRule().name("age rule").description("Check if person's age is > 18 and mark the person as adult").priority(1).when("person.age > 18").then("person.setAdult(true);");
    MVELRuleFactory ruleFactory = new MVELRuleFactory(new YamlRuleDefinitionReader());
    String fileName = args.length != 0 ? args[0] : "easy-rules-tutorials/src/main/java/org/jeasy/rules/tutorials/shop/alcohol-rule.yml";
    Rule alcoholRule = ruleFactory.createRule(new FileReader(fileName));
    // create a rule set
    Rules rules = new Rules();
    rules.register(ageRule);
    rules.register(alcoholRule);
    // create a default rules engine and fire rules on known facts
    RulesEngine rulesEngine = new DefaultRulesEngine();
    System.out.println("Tom: Hi! can I have some Vodka please?");
    rulesEngine.fire(rules, facts);
}
Also used : DefaultRulesEngine(org.jeasy.rules.core.DefaultRulesEngine) MVELRuleFactory(org.jeasy.rules.mvel.MVELRuleFactory) DefaultRulesEngine(org.jeasy.rules.core.DefaultRulesEngine) RulesEngine(org.jeasy.rules.api.RulesEngine) MVELRule(org.jeasy.rules.mvel.MVELRule) FileReader(java.io.FileReader) Rule(org.jeasy.rules.api.Rule) MVELRule(org.jeasy.rules.mvel.MVELRule) YamlRuleDefinitionReader(org.jeasy.rules.support.reader.YamlRuleDefinitionReader) Rules(org.jeasy.rules.api.Rules) Facts(org.jeasy.rules.api.Facts)

Example 2 with YamlRuleDefinitionReader

use of org.jeasy.rules.support.reader.YamlRuleDefinitionReader in project easy-rules by j-easy.

the class JexlRuleFactoryTest method params.

@Parameters
public static Collection<Object[]> params() {
    Map<String, Object> namespaces = new HashMap<>();
    namespaces.put("sout", System.out);
    JexlEngine jexlEngine = new JexlBuilder().namespaces(namespaces).strict(false).create();
    return Arrays.asList(new Object[][] { { new JexlRuleFactory(new YamlRuleDefinitionReader(), jexlEngine), "yml" }, { new JexlRuleFactory(new JsonRuleDefinitionReader(), jexlEngine), "json" } });
}
Also used : JexlEngine(org.apache.commons.jexl3.JexlEngine) HashMap(java.util.HashMap) JexlBuilder(org.apache.commons.jexl3.JexlBuilder) YamlRuleDefinitionReader(org.jeasy.rules.support.reader.YamlRuleDefinitionReader) JsonRuleDefinitionReader(org.jeasy.rules.support.reader.JsonRuleDefinitionReader) Parameters(org.junit.runners.Parameterized.Parameters)

Aggregations

YamlRuleDefinitionReader (org.jeasy.rules.support.reader.YamlRuleDefinitionReader)2 FileReader (java.io.FileReader)1 HashMap (java.util.HashMap)1 JexlBuilder (org.apache.commons.jexl3.JexlBuilder)1 JexlEngine (org.apache.commons.jexl3.JexlEngine)1 Facts (org.jeasy.rules.api.Facts)1 Rule (org.jeasy.rules.api.Rule)1 Rules (org.jeasy.rules.api.Rules)1 RulesEngine (org.jeasy.rules.api.RulesEngine)1 DefaultRulesEngine (org.jeasy.rules.core.DefaultRulesEngine)1 MVELRule (org.jeasy.rules.mvel.MVELRule)1 MVELRuleFactory (org.jeasy.rules.mvel.MVELRuleFactory)1 JsonRuleDefinitionReader (org.jeasy.rules.support.reader.JsonRuleDefinitionReader)1 Parameters (org.junit.runners.Parameterized.Parameters)1