Search in sources :

Example 6 with PackageDataModelOracle

use of org.kie.soup.project.datamodel.oracle.PackageDataModelOracle in project drools by kiegroup.

the class RuleModelDRLPersistenceTest method testImports.

@Test
public void testImports() {
    final String drl = "import java.util.ArrayList;\n" + "rule \"r0\"\n" + "dialect \"mvel\"" + "when\n" + "then\n" + "end\n";
    PackageDataModelOracle dmo = mock(PackageDataModelOracle.class);
    final RuleModel m = RuleModelDRLPersistenceImpl.getInstance().unmarshal(drl, Collections.EMPTY_LIST, dmo);
    assertNotNull(m);
    assertEquals(1, m.getImports().getImports().size());
    assertEquals("java.util.ArrayList", m.getImports().getImports().get(0).getType());
}
Also used : PackageDataModelOracle(org.kie.soup.project.datamodel.oracle.PackageDataModelOracle) RuleModel(org.drools.workbench.models.datamodel.rule.RuleModel) Test(org.junit.Test)

Example 7 with PackageDataModelOracle

use of org.kie.soup.project.datamodel.oracle.PackageDataModelOracle in project drools by kiegroup.

the class RuleModelDRLPersistenceTest method testFreeFormatDRLCondition.

@Test
public void testFreeFormatDRLCondition() {
    final String drl = "rule \"r0\"\n" + "dialect \"mvel\"\n" + "when\n" + "$a : Applicant( )\n" + "Here's something typed by the user as free-format DRL\n" + "$b : Bananna( )\n" + "then\n" + "end\n";
    PackageDataModelOracle dmo = mock(PackageDataModelOracle.class);
    final RuleModel m = RuleModelDRLPersistenceImpl.getInstance().unmarshal(drl, Collections.EMPTY_LIST, dmo);
    assertNotNull(m);
    // LHS
    assertEquals(3, m.lhs.length);
    // Condition line 1
    assertTrue(m.lhs[0] instanceof FactPattern);
    final FactPattern fp1 = (FactPattern) m.lhs[0];
    assertEquals("$a", fp1.getBoundName());
    assertEquals("Applicant", fp1.getFactType());
    // Condition line 2
    assertTrue(m.lhs[1] instanceof FreeFormLine);
    final FreeFormLine ffl = (FreeFormLine) m.lhs[1];
    assertEquals("Here's something typed by the user as free-format DRL", ffl.getText());
    // Condition line 3
    assertTrue(m.lhs[2] instanceof FactPattern);
    final FactPattern fp2 = (FactPattern) m.lhs[2];
    assertEquals("$b", fp2.getBoundName());
    assertEquals("Bananna", fp2.getFactType());
}
Also used : FreeFormLine(org.drools.workbench.models.datamodel.rule.FreeFormLine) PackageDataModelOracle(org.kie.soup.project.datamodel.oracle.PackageDataModelOracle) FromEntryPointFactPattern(org.drools.workbench.models.datamodel.rule.FromEntryPointFactPattern) CompositeFactPattern(org.drools.workbench.models.datamodel.rule.CompositeFactPattern) FromCollectCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromCollectCompositeFactPattern) FactPattern(org.drools.workbench.models.datamodel.rule.FactPattern) FromAccumulateCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromAccumulateCompositeFactPattern) FromCompositeFactPattern(org.drools.workbench.models.datamodel.rule.FromCompositeFactPattern) RuleModel(org.drools.workbench.models.datamodel.rule.RuleModel) Test(org.junit.Test)

Example 8 with PackageDataModelOracle

use of org.kie.soup.project.datamodel.oracle.PackageDataModelOracle in project drools-wb by kiegroup.

the class ScenarioTestEditorServiceImpl method constructContent.

@Override
protected TestScenarioModelContent constructContent(Path path, Overview overview) {
    final Scenario scenario = load(path);
    final String packageName = moduleService.resolvePackage(path).getPackageName();
    final PackageDataModelOracle dataModelOracle = getDataModel(path);
    final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
    final Set<String> usedFullyQualifiedClassNames = getUsedFullyQualifiedClassNames(scenario, dataModelOracle);
    DataModelOracleUtilities.populateDataModel(dataModelOracle, dataModel, usedFullyQualifiedClassNames);
    // Signal opening to interested parties
    resourceOpenedEvent.fire(new ResourceOpenedEvent(path, safeSessionInfo));
    return new TestScenarioModelContent(scenario, overview, packageName, dataModel);
}
Also used : PackageDataModelOracleBaselinePayload(org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload) TestScenarioModelContent(org.drools.workbench.screens.testscenario.model.TestScenarioModelContent) PackageDataModelOracle(org.kie.soup.project.datamodel.oracle.PackageDataModelOracle) ResourceOpenedEvent(org.uberfire.workbench.events.ResourceOpenedEvent) Scenario(org.drools.workbench.models.testscenarios.shared.Scenario)

Example 9 with PackageDataModelOracle

use of org.kie.soup.project.datamodel.oracle.PackageDataModelOracle in project drools-wb by kiegroup.

the class ScenarioTestEditorServiceImpl method addDependentImportsToScenario.

void addDependentImportsToScenario(final Scenario scenario, final Path path) {
    final PackageDataModelOracle dataModel = getDataModel(path);
    final Set<String> usedFullyQualifiedClassNames = getUsedFullyQualifiedClassNames(scenario, dataModel);
    for (String className : usedFullyQualifiedClassNames) {
        final Import imp = new Import(className);
        final List<Import> scenarioImports = scenario.getImports().getImports();
        if (!scenarioImports.contains(imp)) {
            scenarioImports.add(imp);
        }
    }
}
Also used : Import(org.kie.soup.project.datamodel.imports.Import) PackageDataModelOracle(org.kie.soup.project.datamodel.oracle.PackageDataModelOracle)

Example 10 with PackageDataModelOracle

use of org.kie.soup.project.datamodel.oracle.PackageDataModelOracle in project drools-wb by kiegroup.

the class GuidedDecisionTableEditorServiceImpl method loadDataModel.

@Override
public PackageDataModelOracleBaselinePayload loadDataModel(final Path path) {
    try {
        final PackageDataModelOracle oracle = dataModelService.getDataModel(path);
        final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
        // There are no classes to pre-load into the DMO when requesting a new Data Model only
        DataModelOracleUtilities.populateDataModel(oracle, dataModel, new HashSet<String>());
        return dataModel;
    } catch (Exception e) {
        throw ExceptionUtilities.handleException(e);
    }
}
Also used : PackageDataModelOracleBaselinePayload(org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload) PackageDataModelOracle(org.kie.soup.project.datamodel.oracle.PackageDataModelOracle) FileAlreadyExistsException(org.uberfire.java.nio.file.FileAlreadyExistsException)

Aggregations

PackageDataModelOracle (org.kie.soup.project.datamodel.oracle.PackageDataModelOracle)40 Test (org.junit.Test)24 PackageDataModelOracleBaselinePayload (org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload)19 Path (org.uberfire.backend.vfs.Path)18 RuleModel (org.drools.workbench.models.datamodel.rule.RuleModel)12 GuidedDecisionTable52 (org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52)12 RawMVELEvaluator (org.kie.soup.project.datamodel.commons.util.RawMVELEvaluator)12 ConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52)11 Pattern52 (org.drools.workbench.models.guided.dtable.shared.model.Pattern52)11 AsyncPackageDataModelOracle (org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle)11 ModuleDataModelOracle (org.kie.soup.project.datamodel.oracle.ModuleDataModelOracle)10 LimitedEntryConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52)9 ModelField (org.kie.soup.project.datamodel.oracle.ModelField)9 FileAlreadyExistsException (org.uberfire.java.nio.file.FileAlreadyExistsException)8 ResourceOpenedEvent (org.uberfire.workbench.events.ResourceOpenedEvent)8 ActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52)7 ActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52)7 DTCellValue52 (org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52)7 LimitedEntryActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52)6 LimitedEntryActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionSetFieldCol52)6