Search in sources :

Example 6 with Import

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

the class RuleSheetParserUtil method getImportList.

/**
 * Create a list of Import model objects from cell contents.
 * @param importCells The cells containing text for all the classes to import.
 * @return A list of Import classes, which can be added to the ruleset.
 */
public static List<Import> getImportList(final List<String> importCells) {
    final List<Import> importList = new ArrayList<Import>();
    if (importCells == null)
        return importList;
    for (String importCell : importCells) {
        final StringTokenizer tokens = new StringTokenizer(importCell, ",");
        while (tokens.hasMoreTokens()) {
            final Import imp = new Import();
            imp.setClassName(tokens.nextToken().trim());
            importList.add(imp);
        }
    }
    return importList;
}
Also used : StringTokenizer(java.util.StringTokenizer) Import(org.drools.template.model.Import) ArrayList(java.util.ArrayList)

Example 7 with Import

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

the class SpreadsheetCompilerUnitTest method testPropertiesWithWhiteSpaceXLS.

@Test
public void testPropertiesWithWhiteSpaceXLS() {
    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("PropertiesWithWhiteSpace.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 8 with Import

use of org.drools.template.model.Import 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 Import

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

the class GuidedDecisionTableGeneratorListenerTest method testProperties.

@Test
public void testProperties() {
    final ConversionResult result = new ConversionResult();
    final List<DataListener> listeners = new ArrayList<DataListener>();
    final GuidedDecisionTableGeneratorListener listener = new GuidedDecisionTableGeneratorListener(result, dmo);
    listeners.add(listener);
    // Convert
    final ExcelParser parser = new ExcelParser(listeners);
    final InputStream is = this.getClass().getResourceAsStream("Properties.xls");
    try {
        parser.parseFile(is);
    } finally {
        try {
            is.close();
        } catch (IOException ioe) {
            fail(ioe.getMessage());
        }
    }
    // Check conversion results
    assertEquals(0, result.getMessages().size());
    // Check properties
    List<String> functions = listener.getFunctions();
    assertNotNull(functions);
    assertEquals(1, functions.size());
    assertEquals("function a() { }", functions.get(0));
    List<Global> globals = listener.getGlobals();
    assertNotNull(globals);
    assertEquals(1, globals.size());
    assertEquals("java.util.List", globals.get(0).getClassName());
    assertEquals("list", globals.get(0).getIdentifier());
    List<Import> imports = listener.getImports();
    assertNotNull(imports);
    assertEquals(2, imports.size());
    assertEquals("org.yourco.model.*", imports.get(0).getClassName());
    assertEquals("java.util.Date", imports.get(1).getClassName());
    List<String> queries = listener.getQueries();
    assertNotNull(queries);
    assertEquals(1, queries.size());
    assertEquals("A query", queries.get(0));
    List<String> types = listener.getTypeDeclarations();
    assertNotNull(types);
    assertEquals(1, types.size());
    assertEquals("declare Smurf name : String end", types.get(0));
}
Also used : Import(org.drools.template.model.Import) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) IOException(java.io.IOException) Global(org.drools.template.model.Global) ConversionResult(org.drools.workbench.models.guided.dtable.shared.conversion.ConversionResult) ExcelParser(org.drools.decisiontable.parser.xls.ExcelParser) DataListener(org.drools.template.parser.DataListener) Test(org.junit.Test)

Example 10 with Import

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

the class DecisionTableXLSToDecisionTableGuidedConverter method createNewImports.

private void createNewImports(final Path context, final List<Import> imports, final ConversionResult result) {
    if (imports == null || imports.isEmpty()) {
        return;
    }
    // Get Module's project.imports path
    final KieModule module = moduleService.resolveModule(context);
    final Path externalImportsPath = module.getImportsPath();
    final org.uberfire.java.nio.file.Path nioExternalImportsPath = Paths.convert(externalImportsPath);
    // Load existing PackageImports
    ProjectImports projectImports = new ProjectImports();
    if (Files.exists(nioExternalImportsPath)) {
        projectImports = importsService.load(externalImportsPath);
    }
    // Make collections of existing Imports so we don't duplicate them when adding the new
    List<String> existingImports = new ArrayList<String>();
    for (org.kie.soup.project.datamodel.imports.Import item : projectImports.getImports().getImports()) {
        existingImports.add(item.getType());
    }
    // Add imports
    boolean isModified = false;
    for (Import item : imports) {
        if (!existingImports.contains(item.getClassName())) {
            isModified = true;
            result.addMessage("Created Import for '" + item.getClassName() + "'.", ConversionMessageType.INFO);
            projectImports.getImports().addImport(new org.kie.soup.project.datamodel.imports.Import(item.getClassName()));
        }
    }
    // Save update
    if (isModified) {
        final Metadata metadata = metadataService.getMetadata(context);
        importsService.save(externalImportsPath, projectImports, metadata, "Imports added during XLS conversion");
    }
}
Also used : Path(org.uberfire.backend.vfs.Path) Import(org.drools.template.model.Import) ArrayList(java.util.ArrayList) Metadata(org.guvnor.common.services.shared.metadata.model.Metadata) ProjectImports(org.guvnor.common.services.project.model.ProjectImports) KieModule(org.kie.workbench.common.services.shared.project.KieModule)

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