Search in sources :

Example 41 with ItemDefinition

use of org.kie.workbench.common.dmn.api.definition.v1_1.ItemDefinition in project drools by kiegroup.

the class DMNCompilerImpl method processItemDefinitions.

private void processItemDefinitions(DMNCompilerContext ctx, DMNFEELHelper feel, DMNModelImpl model, Definitions dmndefs) {
    Definitions.normalize(dmndefs);
    List<ItemDefinition> ordered = new ItemDefinitionDependenciesSorter(model.getNamespace()).sort(dmndefs.getItemDefinition());
    for (ItemDefinition id : ordered) {
        ItemDefNodeImpl idn = new ItemDefNodeImpl(id);
        DMNType type = buildTypeDef(ctx, feel, model, idn, id, true);
        idn.setType(type);
        model.addItemDefinition(idn);
    }
}
Also used : ItemDefinition(org.kie.dmn.model.v1_1.ItemDefinition) ItemDefNodeImpl(org.kie.dmn.core.ast.ItemDefNodeImpl) DMNType(org.kie.dmn.api.core.DMNType)

Example 42 with ItemDefinition

use of org.kie.workbench.common.dmn.api.definition.v1_1.ItemDefinition in project drools by kiegroup.

the class ItemDefinitionDependenciesGeneratedTest method addDepsToItemDefinition.

private static void addDepsToItemDefinition(final ItemDefinition itemDefinition, final List<ItemDefinition> dependencies, final int numberOfDeps, final Set<String> usedNames) {
    int addedDepsCount = 0;
    for (ItemDefinition dependency : dependencies) {
        if (!usedNames.contains(dependency.getName())) {
            createAndAddDependency(itemDefinition, dependency);
            usedNames.add(dependency.getName());
            addedDepsCount++;
            if (addedDepsCount == numberOfDeps) {
                return;
            }
        }
    }
}
Also used : ItemDefinition(org.kie.dmn.model.v1_1.ItemDefinition)

Example 43 with ItemDefinition

use of org.kie.workbench.common.dmn.api.definition.v1_1.ItemDefinition in project drools by kiegroup.

the class ItemDefinitionDependenciesGeneratedTest method createItemDefinitionWithDeps.

private static ItemDefinition createItemDefinitionWithDeps(final ItemDefinition itemDefinitionTemplate, final List<ItemDefinition> dependencies, final int maxNumberOfDepsPerItemDefinition, final Set<String> usedNames) {
    // New ItemDefinition is created, so the original one stays untouched.
    final ItemDefinition it = new ItemDefinition();
    it.setName(itemDefinitionTemplate.getName());
    final List<ItemDefinition> possibleDependencies = dependencies.stream().filter(item -> !item.getName().equals(it.getName())).collect(Collectors.toList());
    addDepsToItemDefinition(it, possibleDependencies, maxNumberOfDepsPerItemDefinition, usedNames);
    return it;
}
Also used : Logger(org.slf4j.Logger) Collection(java.util.Collection) RunWith(org.junit.runner.RunWith) LoggerFactory(org.slf4j.LoggerFactory) Set(java.util.Set) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) ItemDefinition(org.kie.dmn.model.v1_1.ItemDefinition) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) List(java.util.List) QName(javax.xml.namespace.QName) Parameterized(org.junit.runners.Parameterized) ItemDefinition(org.kie.dmn.model.v1_1.ItemDefinition)

Example 44 with ItemDefinition

use of org.kie.workbench.common.dmn.api.definition.v1_1.ItemDefinition in project drools by kiegroup.

the class ItemDefinitionDependenciesTest method build.

private ItemDefinition build(String name, ItemDefinition... components) {
    ItemDefinition res = new ItemDefinition();
    res.setName(name);
    for (ItemDefinition ic : components) {
        ItemDefinition c = new ItemDefinition();
        c.setName("_" + name + "-" + ic.getName());
        c.setTypeRef(new QName(TEST_NS, ic.getName()));
        res.getItemComponent().add(c);
    }
    return res;
}
Also used : QName(javax.xml.namespace.QName) ItemDefinition(org.kie.dmn.model.v1_1.ItemDefinition)

Example 45 with ItemDefinition

use of org.kie.workbench.common.dmn.api.definition.v1_1.ItemDefinition in project drools by kiegroup.

the class ItemDefinitionDependenciesTest method testOrdering1.

@Test
public void testOrdering1() {
    ItemDefinition tCollateralRiskCategory = build("tCollateralRiskCategory");
    ItemDefinition tCreditRiskCategory = build("tCreditRiskCategory");
    ItemDefinition tAffordabilityCategory = build("tAffordabilityCategory");
    ItemDefinition tLoanRecommendation = build("tLoanRecommendation");
    ItemDefinition tLoan = build("tLoan");
    ItemDefinition tAge = build("tAge");
    ItemDefinition temploementStatus = build("temploementStatus");
    ItemDefinition tCreditScore = build("tCreditScore");
    ItemDefinition tRiskCategory = build("tRiskCategory");
    ItemDefinition tIncomeRisk = build("tIncomeRisk");
    ItemDefinition tBorrowe = build("tBorrowe", tAge, temploementStatus);
    ItemDefinition tPrequalification = build("tPrequalification");
    List<ItemDefinition> originalList = Arrays.asList(new ItemDefinition[] { tCollateralRiskCategory, tCreditRiskCategory, tAffordabilityCategory, tLoanRecommendation, tLoan, tAge, temploementStatus, tCreditScore, tRiskCategory, tIncomeRisk, tBorrowe, tPrequalification });
    List<ItemDefinition> orderedList = orderingStrategy(originalList);
    assertTrue("Index of tAge < tBorrowe", orderedList.indexOf(tAge) < orderedList.indexOf(tBorrowe));
    assertTrue("Index of temploementStatus < tBorrowe", orderedList.indexOf(temploementStatus) < orderedList.indexOf(tBorrowe));
}
Also used : ItemDefinition(org.kie.dmn.model.v1_1.ItemDefinition) Test(org.junit.Test)

Aggregations

ItemDefinition (org.kie.dmn.model.v1_1.ItemDefinition)22 ItemDefinition (org.eclipse.bpmn2.ItemDefinition)21 ArrayList (java.util.ArrayList)17 RootElement (org.eclipse.bpmn2.RootElement)13 Message (org.eclipse.bpmn2.Message)10 AdHocSubProcess (org.eclipse.bpmn2.AdHocSubProcess)9 Process (org.eclipse.bpmn2.Process)9 SubProcess (org.eclipse.bpmn2.SubProcess)9 Test (org.junit.Test)9 List (java.util.List)7 Entry (java.util.Map.Entry)7 SimpleFeatureMapEntry (org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.SimpleFeatureMapEntry)7 QName (javax.xml.namespace.QName)6 FlowElement (org.eclipse.bpmn2.FlowElement)6 FeatureMap (org.eclipse.emf.ecore.util.FeatureMap)6 ServiceTask (org.eclipse.bpmn2.ServiceTask)5 DataInput (org.eclipse.bpmn2.DataInput)4 DataOutput (org.eclipse.bpmn2.DataOutput)4 FlowElementsContainer (org.eclipse.bpmn2.FlowElementsContainer)4 Interface (org.eclipse.bpmn2.Interface)4