Search in sources :

Example 16 with Decision

use of org.kie.dmn.model.v1_1.Decision in project drools by kiegroup.

the class DMNRuntimeTest method testCycleDetectionSelfReference.

@Test
public void testCycleDetectionSelfReference() {
    final Definitions defs = buildSimplifiedDefinitions("ns", "self");
    final DecisionNodeImpl decision = buildSimplifiedDecisionNode(defs, "self");
    decision.addDependency("self", decision);
    final DMNModelImpl model = new DMNModelImpl(defs);
    model.setDefinitions(defs);
    model.addDecision(decision);
    final DMNRuntime runtime = DMNRuntimeUtil.createRuntime(this.getClass());
    final DMNResult result = runtime.evaluateAll(model, DMNFactory.newContext());
    assertTrue(result.hasErrors());
}
Also used : DMNResult(org.kie.dmn.api.core.DMNResult) TDefinitions(org.kie.dmn.model.v1_1.TDefinitions) Definitions(org.kie.dmn.model.api.Definitions) DMNModelImpl(org.kie.dmn.core.impl.DMNModelImpl) DecisionNodeImpl(org.kie.dmn.core.ast.DecisionNodeImpl) DMNRuntime(org.kie.dmn.api.core.DMNRuntime) Test(org.junit.Test)

Example 17 with Decision

use of org.kie.dmn.model.v1_1.Decision in project drools by kiegroup.

the class DMNRuntimeTest method buildSimplifiedDefinitions.

private Definitions buildSimplifiedDefinitions(final String namespace, final String... decisions) {
    final Definitions def = new TDefinitions();
    def.setNamespace(namespace);
    for (final String d : decisions) {
        final Decision dec = new TDecision();
        dec.setName(d);
        def.getDrgElement().add(dec);
        def.addChildren(dec);
        dec.setParent(def);
    }
    return def;
}
Also used : TDefinitions(org.kie.dmn.model.v1_1.TDefinitions) Definitions(org.kie.dmn.model.api.Definitions) TDecision(org.kie.dmn.model.v1_1.TDecision) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) TDefinitions(org.kie.dmn.model.v1_1.TDefinitions) TDecision(org.kie.dmn.model.v1_1.TDecision) Decision(org.kie.dmn.model.api.Decision)

Example 18 with Decision

use of org.kie.dmn.model.v1_1.Decision in project drools by kiegroup.

the class DMNRuntimeTest method buildSimplifiedDefinitions.

private Definitions buildSimplifiedDefinitions(final String namespace, final String... decisions) {
    final Definitions def = new TDefinitions();
    def.setNamespace(namespace);
    for (final String d : decisions) {
        final Decision dec = new TDecision();
        dec.setName(d);
        def.getDrgElement().add(dec);
        def.addChildren(dec);
        dec.setParent(def);
    }
    return def;
}
Also used : TDefinitions(org.kie.dmn.model.v1_1.TDefinitions) Definitions(org.kie.dmn.model.api.Definitions) TDecision(org.kie.dmn.model.v1_1.TDecision) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) TDefinitions(org.kie.dmn.model.v1_1.TDefinitions) TDecision(org.kie.dmn.model.v1_1.TDecision) Decision(org.kie.dmn.model.api.Decision)

Example 19 with Decision

use of org.kie.dmn.model.v1_1.Decision in project drools by kiegroup.

the class DMNRuntimeTest method testCycleDetectionSelfReference.

@Test
public void testCycleDetectionSelfReference() {
    final Definitions defs = buildSimplifiedDefinitions("ns", "self");
    final DecisionNodeImpl decision = buildSimplifiedDecisionNode(defs, "self");
    decision.addDependency("self", decision);
    final DMNModelImpl model = new DMNModelImpl(defs);
    model.setDefinitions(defs);
    model.addDecision(decision);
    final DMNRuntime runtime = DMNRuntimeUtil.createRuntime(this.getClass());
    final DMNResult result = runtime.evaluateAll(model, DMNFactory.newContext());
    assertTrue(result.hasErrors());
}
Also used : DMNResult(org.kie.dmn.api.core.DMNResult) TDefinitions(org.kie.dmn.model.v1_1.TDefinitions) Definitions(org.kie.dmn.model.api.Definitions) DMNModelImpl(org.kie.dmn.core.impl.DMNModelImpl) DecisionNodeImpl(org.kie.dmn.core.ast.DecisionNodeImpl) DMNRuntime(org.kie.dmn.api.core.DMNRuntime) Test(org.junit.Test)

Example 20 with Decision

use of org.kie.dmn.model.v1_1.Decision in project drools by kiegroup.

the class DefinitionsConverter method writeChildren.

@Override
protected void writeChildren(HierarchicalStreamWriter writer, MarshallingContext context, Object parent) {
    super.writeChildren(writer, context, parent);
    Definitions def = (Definitions) parent;
    for (Import i : def.getImport()) {
        writeChildrenNode(writer, context, i, IMPORT);
    }
    for (ItemDefinition id : def.getItemDefinition()) {
        writeChildrenNode(writer, context, id, ITEM_DEFINITION);
    }
    for (DRGElement e : def.getDrgElement()) {
        String nodeName = DRG_ELEMENT;
        if (e instanceof BusinessKnowledgeModel) {
            nodeName = "businessKnowledgeModel";
        } else if (e instanceof Decision) {
            nodeName = "decision";
        } else if (e instanceof InputData) {
            nodeName = "inputData";
        } else if (e instanceof KnowledgeSource) {
            nodeName = "knowledgeSource";
        }
        writeChildrenNode(writer, context, e, nodeName);
    }
    for (Artifact a : def.getArtifact()) {
        String nodeName = ARTIFACT;
        if (a instanceof Association) {
            nodeName = "association";
        } else if (a instanceof TextAnnotation) {
            nodeName = "textAnnotation";
        }
        writeChildrenNode(writer, context, a, nodeName);
    }
    for (ElementCollection ec : def.getElementCollection()) {
        writeChildrenNode(writer, context, ec, ELEMENT_COLLECTION);
    }
    for (BusinessContextElement bce : def.getBusinessContextElement()) {
        String nodeName = BUSINESS_CONTEXT_ELEMENT;
        if (bce instanceof OrganizationUnit) {
            nodeName = "organizationUnit";
        } else if (bce instanceof PerformanceIndicator) {
            nodeName = "performanceIndicator";
        }
        writeChildrenNode(writer, context, bce, nodeName);
    }
}
Also used : Import(org.kie.dmn.model.api.Import) PerformanceIndicator(org.kie.dmn.model.api.PerformanceIndicator) TDefinitions(org.kie.dmn.model.v1_1.TDefinitions) Definitions(org.kie.dmn.model.api.Definitions) ItemDefinition(org.kie.dmn.model.api.ItemDefinition) BusinessContextElement(org.kie.dmn.model.api.BusinessContextElement) Decision(org.kie.dmn.model.api.Decision) Artifact(org.kie.dmn.model.api.Artifact) Association(org.kie.dmn.model.api.Association) KnowledgeSource(org.kie.dmn.model.api.KnowledgeSource) OrganizationUnit(org.kie.dmn.model.api.OrganizationUnit) BusinessKnowledgeModel(org.kie.dmn.model.api.BusinessKnowledgeModel) ElementCollection(org.kie.dmn.model.api.ElementCollection) InputData(org.kie.dmn.model.api.InputData) TextAnnotation(org.kie.dmn.model.api.TextAnnotation) DRGElement(org.kie.dmn.model.api.DRGElement)

Aggregations

Decision (org.kie.workbench.common.dmn.api.definition.v1_1.Decision)10 InputData (org.kie.workbench.common.dmn.api.definition.v1_1.InputData)6 KnowledgeSource (org.kie.workbench.common.dmn.api.definition.v1_1.KnowledgeSource)6 View (org.kie.workbench.common.stunner.core.graph.content.view.View)6 Definitions (org.kie.dmn.model.api.Definitions)5 TDefinitions (org.kie.dmn.model.v1_1.TDefinitions)5 BusinessKnowledgeModel (org.kie.workbench.common.dmn.api.definition.v1_1.BusinessKnowledgeModel)5 List (java.util.List)4 Test (org.junit.Test)4 DMNRuntime (org.kie.dmn.api.core.DMNRuntime)4 TextAnnotation (org.kie.workbench.common.dmn.api.definition.v1_1.TextAnnotation)4 DMNShape (org.kie.workbench.common.dmn.backend.definition.v1_1.dd.DMNShape)4 XMLEncoderDiagramMetadataMarshaller (org.kie.workbench.common.stunner.core.backend.service.XMLEncoderDiagramMetadataMarshaller)4 Edge (org.kie.workbench.common.stunner.core.graph.Edge)4 DMNResult (org.kie.dmn.api.core.DMNResult)3 DecisionNode (org.kie.dmn.api.core.ast.DecisionNode)3 Decision (org.kie.dmn.model.api.Decision)3 DRGElement (org.kie.workbench.common.dmn.api.definition.v1_1.DRGElement)3 Id (org.kie.workbench.common.dmn.api.property.dmn.Id)3 Bounds (org.kie.workbench.common.dmn.backend.definition.v1_1.dd.org.omg.spec.CMMN_20151109_DC.Bounds)3