package eu.ecb.mora.dmn; import java.io.File; import org.camunda.bpm.model.dmn.DecisionTableOrientation; import org.camunda.bpm.model.dmn.Dmn; import org.camunda.bpm.model.dmn.DmnModelInstance; import org.camunda.bpm.model.dmn.HitPolicy; import org.camunda.bpm.model.dmn.instance.Decision; import org.camunda.bpm.model.dmn.instance.DecisionTable; import org.camunda.bpm.model.dmn.instance.Definitions; import org.camunda.bpm.model.dmn.instance.Input; import org.camunda.bpm.model.dmn.instance.InputEntry; import org.camunda.bpm.model.dmn.instance.InputExpression; import org.camunda.bpm.model.dmn.instance.Output; import org.camunda.bpm.model.dmn.instance.OutputEntry; import org.camunda.bpm.model.dmn.instance.Rule; import org.camunda.bpm.model.dmn.instance.Text; public class TestDMN { public TestDMN() { // TODO Auto-generated constructor stub } public static void main(String[] args) { TestDMN dmn = new TestDMN(); dmn.execute(); } private void execute() { DmnModelInstance modelInstance = Dmn.createEmptyModel(); Definitions definitions = modelInstance.newInstance(Definitions.class); definitions.setNamespace("http://camunda.org/schema/1.0/dmn"); definitions.setName("definitions"); definitions.setId("definitions"); modelInstance.setDefinitions(definitions); Decision decision = modelInstance.newInstance(Decision.class); decision.setId("decision_id"); decision.setName("decision_name"); definitions.addChildElement(decision); DecisionTable table = modelInstance.newInstance(DecisionTable.class); table.setId("decisionTable"); table.setPreferredOrientation(DecisionTableOrientation.Rule_as_Row); table.setHitPolicy(HitPolicy.FIRST); decision.addChildElement(table); Input input = modelInstance.newInstance(Input.class); input.setId("ELEMENT1_ID"); input.setLabel("ELEMENT1_name"); input.setCamundaInputVariable("ELEMENT2"); table.getInputs().add(input); InputExpression ie = modelInstance.newInstance(InputExpression.class); ie.setId("expression_1"); ie.setTypeRef("date"); input.addChildElement(ie); Text text = modelInstance.newInstance(Text.class); text.setTextContent("ELEMENT1_ID"); ie.addChildElement(text); Output result1 = modelInstance.newInstance(Output.class); result1.setId("result1"); result1.setLabel("result1"); result1.setTypeRef("boolean"); table.getOutputs().add(result1); Output message = modelInstance.newInstance(Output.class); message.setId("message"); message.setLabel("message"); message.setTypeRef("string"); table.getOutputs().add(message); Rule rule = modelInstance.newInstance(Rule.class); rule.setId("rule_1"); table.getRules().add(rule); InputEntry ine = modelInstance.newInstance(InputEntry.class); ine.setId("ine1"); ine.setTextContent(""); ine.setExpressionLanguage("feel"); rule.getInputEntries().add(ine); Text txt = modelInstance.newInstance(Text.class); txt.setTextContent(""); ine.setText(txt); OutputEntry out = modelInstance.newInstance(OutputEntry.class); out.setId("out1"); out.setExpressionLanguage("feel"); txt = modelInstance.newInstance(Text.class); txt.setTextContent("false"); out.setText(txt); rule.getOutputEntries().add(out); out = modelInstance.newInstance(OutputEntry.class); out.setId("out2"); out.setExpressionLanguage("feel"); txt = modelInstance.newInstance(Text.class); txt.setTextContent("\"Dies ist ein Text\""); // out.setTextContent("Dies ist ein Text"); out.setText(txt); rule.getOutputEntries().add(out); String convertToString = Dmn.convertToString(modelInstance); Dmn.writeModelToFile(new File("src/test/resources/dmn/dmnfile01.dmn"), modelInstance); } }