Search in sources :

Example 6 with Rule

use of org.drools.template.model.Rule in project drools by kiegroup.

the class DefaultTemplateRuleBase method createTemplateRule.

private void createTemplateRule(org.drools.template.model.Package p, int index, RuleTemplate template) {
    Rule rule = new Rule(template.getName(), null, index);
    Condition condition = new Condition();
    condition.setSnippet("r : Row()");
    rule.addCondition(condition);
    createColumnConditions(template, rule);
    rule.addConsequence(createConsequence(template));
    p.addRule(rule);
}
Also used : Condition(org.drools.template.model.Condition) Rule(org.drools.template.model.Rule)

Example 7 with Rule

use of org.drools.template.model.Rule in project drools by kiegroup.

the class RuleMatrixSheetListener method createRule.

private void createRule(final int row, final int column, final String value) {
    final Consequence consequence = createConsequence(value);
    Rule rule = firstRule;
    if (rule == null) {
        rule = new Rule("rule_" + row + "_" + column, null, row);
        addRule(rule);
    } else {
        firstRule = null;
        rule.setName("rule_" + row + "_" + column);
    }
    rule.setAgendaGroup(this._currentAgendaGroup);
    rule.addCondition(this._currentPrecondition);
    rule.addCondition(_currentVerticalCondition);
    rule.addCondition((Condition) _horizontalConditions.get(column - (ruleTableColumn + 1)));
    rule.addConsequence(consequence);
}
Also used : Consequence(org.drools.template.model.Consequence) Rule(org.drools.template.model.Rule)

Example 8 with Rule

use of org.drools.template.model.Rule in project drools by kiegroup.

the class RuleWorksheetParseTest method testWorkbookParse.

@Test
public void testWorkbookParse() throws Exception {
    final InputStream stream = RuleWorksheetParseTest.class.getResourceAsStream("/data/BasicWorkbook.xls");
    final RuleSheetListener listener = getRuleSheetListener(stream);
    final Package ruleset = listener.getRuleSet();
    assertNotNull(ruleset);
    final Rule firstRule = (Rule) ruleset.getRules().get(0);
    assertNotNull(firstRule.getSalience());
    assertTrue(Integer.parseInt(firstRule.getSalience()) > 0);
    // System.out.println(ruleset.toXML());
    assertEquals("myruleset", ruleset.getName());
    assertEquals(3, ruleset.getImports().size());
    assertEquals(6, ruleset.getRules().size());
    // check imports
    Import imp = (Import) ruleset.getImports().get(0);
    assertEquals("blah.class1", imp.getClassName());
    imp = (Import) ruleset.getImports().get(1);
    assertEquals("blah.class2", imp.getClassName());
    imp = (Import) ruleset.getImports().get(2);
    assertEquals("lah.di.dah", imp.getClassName());
    // check rules
    Rule rule = (Rule) ruleset.getRules().get(0);
    Condition cond = (Condition) rule.getConditions().get(0);
    assertEquals("Foo(myObject.getColour().equals(red), myObject.size () > 12\\\")", cond.getSnippet());
    Consequence cons = (Consequence) rule.getConsequences().get(0);
    assertNotNull(cons);
    assertEquals("myObject.setIsValid(Y);", cons.getSnippet());
    rule = (Rule) ruleset.getRules().get(5);
    cond = (Condition) rule.getConditions().get(1);
    assertEquals("myObject.size () > 7", cond.getSnippet());
    cons = (Consequence) rule.getConsequences().get(0);
    assertEquals("myObject.setIsValid(10-Jul-1974)", cons.getSnippet());
}
Also used : Condition(org.drools.template.model.Condition) Import(org.drools.template.model.Import) InputStream(java.io.InputStream) Consequence(org.drools.template.model.Consequence) Package(org.drools.template.model.Package) Rule(org.drools.template.model.Rule) Test(org.junit.Test)

Example 9 with Rule

use of org.drools.template.model.Rule in project drools by kiegroup.

the class RuleWorksheetParseTest method testNumericDisabled.

@Test
public void testNumericDisabled() throws Exception {
    // DROOLS-1378
    final InputStream stream = RuleWorksheetParseTest.class.getResourceAsStream("/data/NumericDisabled.xls");
    final RuleSheetListener listener = getRuleSheetListener(stream);
    final Package ruleset = listener.getRuleSet();
    assertNotNull(ruleset);
    DRLOutput dout = new DRLOutput();
    ruleset.renderDRL(dout);
    String drl = dout.getDRL();
    System.out.println(drl);
    // check rules
    Rule rule = (Rule) ruleset.getRules().get(0);
    Condition cond = (Condition) rule.getConditions().get(0);
    assertEquals("Cheese(price == 6600)", cond.getSnippet());
}
Also used : Condition(org.drools.template.model.Condition) DRLOutput(org.drools.template.model.DRLOutput) InputStream(java.io.InputStream) Package(org.drools.template.model.Package) Rule(org.drools.template.model.Rule) Test(org.junit.Test)

Example 10 with Rule

use of org.drools.template.model.Rule in project drools by kiegroup.

the class RuleWorksheetParseTest method doComplexWorksheetMissingConditions.

private void doComplexWorksheetMissingConditions() throws IOException {
    final InputStream stream = RuleWorksheetParseTest.class.getResourceAsStream("/data/ComplexWorkbook.xls");
    final RuleSheetListener listener = getRuleSheetListener(stream);
    final Package ruleset = listener.getRuleSet();
    assertEquals(6, ruleset.getRules().size());
    assertEquals(0, ruleset.getImports().size());
    Rule rule = (Rule) ruleset.getRules().get(0);
    assertEquals(3, rule.getConditions().size());
    assertEquals(2, rule.getConsequences().size());
    final Consequence cons = (Consequence) rule.getConsequences().get(1);
    assertEquals("myObject.setIsValid(1, 2)", cons.getSnippet());
    final Condition con = (Condition) rule.getConditions().get(2);
    assertEquals("myObject.size() < $3.00", con.getSnippet());
    rule = (Rule) ruleset.getRules().get(4);
    // this should have less conditions
    assertEquals(1, rule.getConditions().size());
    rule = (Rule) ruleset.getRules().get(5);
    assertEquals(2, rule.getConditions().size());
    assertEquals(1, rule.getConsequences().size());
}
Also used : Condition(org.drools.template.model.Condition) InputStream(java.io.InputStream) Consequence(org.drools.template.model.Consequence) Package(org.drools.template.model.Package) Rule(org.drools.template.model.Rule)

Aggregations

Rule (org.drools.template.model.Rule)10 Package (org.drools.template.model.Package)7 InputStream (java.io.InputStream)6 Condition (org.drools.template.model.Condition)6 Test (org.junit.Test)5 DRLOutput (org.drools.template.model.DRLOutput)4 Consequence (org.drools.template.model.Consequence)3 Import (org.drools.template.model.Import)2 DecisionTableParseException (org.drools.template.parser.DecisionTableParseException)2 Code (org.drools.decisiontable.parser.ActionType.Code)1 Global (org.drools.template.model.Global)1