Search in sources :

Example 1 with Import

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

the class DefaultRuleSheetListener method buildRuleSet.

private Package buildRuleSet() {
    final String defaultPackageName = "rule_table";
    final String rulesetName = getProperties().getSingleProperty(RULESET_TAG, defaultPackageName);
    final Package ruleset = new Package((showPackage) ? rulesetName : null);
    for (Rule rule : this._ruleList) {
        ruleset.addRule(rule);
    }
    final List<Import> importList = RuleSheetParserUtil.getImportList(getProperties().getProperty(IMPORT_TAG));
    for (Import import1 : importList) {
        ruleset.addImport(import1);
    }
    final List<Global> variableList = RuleSheetParserUtil.getVariableList(getProperties().getProperty(VARIABLES_TAG));
    for (Global global : variableList) {
        ruleset.addVariable(global);
    }
    final List<String> functions = getProperties().getProperty(FUNCTIONS_TAG);
    if (functions != null) {
        for (String function : functions) {
            ruleset.addFunctions(function);
        }
    }
    final List<String> queries = getProperties().getProperty(QUERIES_TAG);
    if (queries != null) {
        for (String query : queries) {
            ruleset.addQueries(query);
        }
    }
    final List<String> declarations = getProperties().getProperty(DECLARES_TAG);
    if (declarations != null) {
        for (String declaration : declarations) {
            ruleset.addDeclaredType(declaration);
        }
    }
    for (Code code : ActionType.ATTRIBUTE_CODE_SET) {
        List<String> values = getProperties().getProperty(code.getColHeader());
        if (values != null) {
            if (values.size() > 1) {
                List<String> cells = getProperties().getPropertyCells(code.getColHeader());
                throw new DecisionTableParseException("Multiple values for " + code.getColHeader() + " in cells " + cells.toString());
            }
            String value = values.get(0);
            switch(code) {
                case SALIENCE:
                    try {
                        ruleset.setSalience(new Integer(value));
                    } catch (NumberFormatException nfe) {
                        throw new DecisionTableParseException("Priority is not an integer literal, in cell " + getProperties().getSinglePropertyCell(code.getColHeader()));
                    }
                    break;
                case DURATION:
                    try {
                        ruleset.setDuration(new Long(value));
                    } catch (NumberFormatException nfe) {
                        throw new DecisionTableParseException("Duration is not an integer literal, in cell " + getProperties().getSinglePropertyCell(code.getColHeader()));
                    }
                    break;
                case TIMER:
                    ruleset.setTimer(value);
                    break;
                case ENABLED:
                    ruleset.setEnabled(RuleSheetParserUtil.isStringMeaningTrue(value));
                    break;
                case CALENDARS:
                    ruleset.setCalendars(value);
                    break;
                case NOLOOP:
                    ruleset.setNoLoop(RuleSheetParserUtil.isStringMeaningTrue(value));
                    break;
                case LOCKONACTIVE:
                    ruleset.setLockOnActive(RuleSheetParserUtil.isStringMeaningTrue(value));
                    break;
                case AUTOFOCUS:
                    ruleset.setAutoFocus(RuleSheetParserUtil.isStringMeaningTrue(value));
                    break;
                case ACTIVATIONGROUP:
                    ruleset.setActivationGroup(value);
                    break;
                case AGENDAGROUP:
                    ruleset.setAgendaGroup(value);
                    break;
                case RULEFLOWGROUP:
                    ruleset.setRuleFlowGroup(value);
                    break;
                case DATEEFFECTIVE:
                    ruleset.setDateEffective(value);
                    break;
                case DATEEXPIRES:
                    ruleset.setDateExpires(value);
                    break;
            }
        }
    }
    return ruleset;
}
Also used : Import(org.drools.template.model.Import) DecisionTableParseException(org.drools.template.parser.DecisionTableParseException) Code(org.drools.decisiontable.parser.ActionType.Code) Global(org.drools.template.model.Global) Package(org.drools.template.model.Package) Rule(org.drools.template.model.Rule)

Example 2 with Import

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

the class SpreadsheetCompilerUnitTest method testPropertiesXLS.

@Test
public void testPropertiesXLS() {
    final List<DataListener> listeners = new ArrayList<DataListener>();
    final DefaultRuleSheetListener listener = new DefaultRuleSheetListener();
    listeners.add(listener);
    final ExcelParser parser = new ExcelParser(listeners);
    final InputStream is = this.getClass().getResourceAsStream("Properties.xls");
    parser.parseFile(is);
    listener.getProperties();
    final String rulesetName = listener.getProperties().getSingleProperty(DefaultRuleSheetListener.RULESET_TAG);
    assertNotNull(rulesetName);
    assertEquals("Properties", rulesetName);
    final List<Import> importList = RuleSheetParserUtil.getImportList(listener.getProperties().getProperty(DefaultRuleSheetListener.IMPORT_TAG));
    assertNotNull(importList);
    assertEquals(1, importList.size());
    assertEquals("java.util.List", importList.get(0).getClassName());
    final List<Global> variableList = RuleSheetParserUtil.getVariableList(listener.getProperties().getProperty(DefaultRuleSheetListener.VARIABLES_TAG));
    assertNotNull(variableList);
    assertEquals(1, variableList.size());
    assertEquals("java.util.List", variableList.get(0).getClassName());
    assertEquals("list", variableList.get(0).getIdentifier());
    final List<String> functions = listener.getProperties().getProperty(DefaultRuleSheetListener.FUNCTIONS_TAG);
    assertNotNull(functions);
    assertEquals(1, functions.size());
    assertEquals("A function", functions.get(0));
    final List<String> queries = listener.getProperties().getProperty(DefaultRuleSheetListener.QUERIES_TAG);
    assertNotNull(queries);
    assertEquals(1, queries.size());
    assertEquals("A query", queries.get(0));
    final List<String> declarations = listener.getProperties().getProperty(DefaultRuleSheetListener.DECLARES_TAG);
    assertNotNull(declarations);
    assertEquals(1, declarations.size());
    assertEquals("A declared type", declarations.get(0));
    final String sequentialFlag = listener.getProperties().getSingleProperty(DefaultRuleSheetListener.SEQUENTIAL_FLAG);
    assertNotNull(sequentialFlag);
    assertEquals("false", sequentialFlag);
    final String escapeQuotesFlag = listener.getProperties().getSingleProperty(DefaultRuleSheetListener.ESCAPE_QUOTES_FLAG);
    assertNotNull(escapeQuotesFlag);
    assertEquals("false", escapeQuotesFlag);
}
Also used : DefaultRuleSheetListener(org.drools.decisiontable.parser.DefaultRuleSheetListener) Import(org.drools.template.model.Import) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) ExcelParser(org.drools.decisiontable.parser.xls.ExcelParser) DataListener(org.drools.template.parser.DataListener) Global(org.drools.template.model.Global) Test(org.junit.Test)

Example 3 with Import

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

the class DefaultTemplateRuleBase method addImports.

private void addImports(org.drools.template.model.Package p) {
    Import drlImport1 = new Import();
    drlImport1.setClassName(Map.class.getName());
    Import drlImport2 = new Import();
    drlImport2.setClassName(HashMap.class.getName());
    p.addImport(drlImport1);
    p.addImport(drlImport2);
}
Also used : Import(org.drools.template.model.Import) HashMap(java.util.HashMap) HashMap(java.util.HashMap) Map(java.util.Map)

Example 4 with Import

use of org.drools.template.model.Import in project drools-wb by kiegroup.

the class DecisionTableXLSToDecisionTableGuidedConverter method makeGlobalsModel.

private GlobalsModel makeGlobalsModel(final List<Import> imports, final List<Global> globals, final ConversionResult result) {
    final GlobalsModel model = new GlobalsModel();
    for (Global global : globals) {
        if (global.getClassName().contains(".")) {
            model.getGlobals().add(new org.drools.workbench.screens.globals.model.Global(global.getIdentifier(), global.getClassName()));
        } else {
            boolean mapped = false;
            for (Import imp : imports) {
                if (imp.getClassName().contains(".")) {
                    final String fullyQualifiedClassName = imp.getClassName();
                    final String leafClassName = fullyQualifiedClassName.substring(fullyQualifiedClassName.lastIndexOf(".") + 1);
                    if (global.getClassName().equals(leafClassName)) {
                        model.getGlobals().add(new org.drools.workbench.screens.globals.model.Global(global.getIdentifier(), fullyQualifiedClassName));
                        mapped = true;
                        break;
                    }
                }
            }
            if (!mapped) {
                result.addMessage("Unable to determine Fully Qualified Class Name for Global '" + global.getIdentifier() + "'. Skipping.", ConversionMessageType.ERROR);
            }
        }
    }
    return model;
}
Also used : Import(org.drools.template.model.Import) GlobalsModel(org.drools.workbench.screens.globals.model.GlobalsModel) Global(org.drools.template.model.Global)

Example 5 with Import

use of org.drools.template.model.Import in project drools-wb by kiegroup.

the class DecisionTableXLSToDecisionTableGuidedConverter method makeDRL.

private String makeDRL(final List<Import> imports, final String baseDRL) {
    final StringBuilder sb = new StringBuilder();
    if (!(imports == null || imports.isEmpty())) {
        for (Import item : imports) {
            sb.append("import ").append(item.getClassName()).append(";\n");
        }
        sb.append("\n");
    }
    sb.append(baseDRL).append("\n");
    return sb.toString();
}
Also used : Import(org.drools.template.model.Import)

Aggregations

Import (org.drools.template.model.Import)11 ArrayList (java.util.ArrayList)5 Global (org.drools.template.model.Global)5 InputStream (java.io.InputStream)4 Test (org.junit.Test)4 ExcelParser (org.drools.decisiontable.parser.xls.ExcelParser)3 DataListener (org.drools.template.parser.DataListener)3 DefaultRuleSheetListener (org.drools.decisiontable.parser.DefaultRuleSheetListener)2 Package (org.drools.template.model.Package)2 Rule (org.drools.template.model.Rule)2 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 StringTokenizer (java.util.StringTokenizer)1 Code (org.drools.decisiontable.parser.ActionType.Code)1 Condition (org.drools.template.model.Condition)1 Consequence (org.drools.template.model.Consequence)1 DecisionTableParseException (org.drools.template.parser.DecisionTableParseException)1 ConversionResult (org.drools.workbench.models.guided.dtable.shared.conversion.ConversionResult)1 GuidedDecisionTable52 (org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52)1