use of org.kie.dmn.model.v1_1.DecisionService in project drools by kiegroup.
the class XStreamMarshaller method newXStream.
private XStream newXStream() {
XStream xStream = createTrustingXStream(staxDriver, Definitions.class.getClassLoader());
xStream.alias("artifact", Artifact.class);
xStream.alias("definitions", Definitions.class);
xStream.alias("inputData", InputData.class);
xStream.alias("decision", Decision.class);
xStream.alias("variable", InformationItem.class);
xStream.alias("informationRequirement", InformationRequirement.class);
xStream.alias("requiredInput", DMNElementReference.class);
xStream.alias("literalExpression", LiteralExpression.class);
// TODO will need to remove dups and find missing element not captured?
xStream.alias("DMNElement", DMNElement.class);
xStream.alias("allowedValues", UnaryTests.class);
xStream.alias("artifact", Artifact.class);
xStream.alias("association", Association.class);
xStream.alias("authorityRequirement", AuthorityRequirement.class);
xStream.alias("authorityRequirement", AuthorityRequirement.class);
xStream.alias("authorityRequirement", AuthorityRequirement.class);
xStream.alias("binding", Binding.class);
xStream.alias("businessContextElement", BusinessContextElement.class);
xStream.alias("businessKnowledgeModel", BusinessKnowledgeModel.class);
xStream.alias("column", InformationItem.class);
xStream.alias("context", Context.class);
xStream.alias("contextEntry", ContextEntry.class);
xStream.alias("decision", Decision.class);
xStream.alias("decisionMade", DMNElementReference.class);
xStream.alias("decisionMaker", DMNElementReference.class);
xStream.alias("decisionOwned", DMNElementReference.class);
xStream.alias("decisionOwner", DMNElementReference.class);
xStream.alias("decisionService", DecisionService.class);
xStream.alias("decisionTable", DecisionTable.class);
xStream.alias("defaultOutputEntry", LiteralExpression.class);
xStream.alias("definitions", Definitions.class);
xStream.alias("drgElement", DMNElementReference.class);
// xStream.alias("drgElement", DRGElement.class ); ambiguity, also referring to top-level xsd element just under xsd root.
xStream.alias("elementCollection", ElementCollection.class);
xStream.alias("elementCollection", ElementCollection.class);
xStream.alias("encapsulatedDecision", DMNElementReference.class);
xStream.alias("encapsulatedLogic", FunctionDefinition.class);
xStream.alias("expression", Expression.class);
xStream.alias("formalParameter", InformationItem.class);
xStream.alias("functionDefinition", FunctionDefinition.class);
xStream.alias("impactedPerformanceIndicator", DMNElementReference.class);
xStream.alias("impactingDecision", DMNElementReference.class);
xStream.alias("import", Import.class);
xStream.alias("import", Import.class);
// TODO where?
xStream.alias("importedElement", String.class);
xStream.alias("importedValues", ImportedValues.class);
xStream.alias("informationItem", InformationItem.class);
xStream.alias("informationRequirement", InformationRequirement.class);
xStream.alias("input", InputClause.class);
xStream.alias("inputData", DMNElementReference.class);
xStream.alias("inputData", InputData.class);
xStream.alias("inputDecision", DMNElementReference.class);
xStream.alias("inputEntry", UnaryTests.class);
xStream.alias("inputExpression", LiteralExpression.class);
xStream.alias("inputValues", UnaryTests.class);
xStream.alias("invocation", Invocation.class);
xStream.alias("itemComponent", ItemDefinition.class);
xStream.alias("itemDefinition", ItemDefinition.class);
xStream.alias("itemDefinition", ItemDefinition.class);
xStream.alias("knowledgeRequirement", KnowledgeRequirement.class);
xStream.alias("knowledgeRequirement", KnowledgeRequirement.class);
xStream.alias("knowledgeSource", KnowledgeSource.class);
xStream.alias("literalExpression", LiteralExpression.class);
xStream.alias("namedElement", NamedElement.class);
xStream.alias("organizationUnit", OrganizationUnit.class);
xStream.alias("output", OutputClause.class);
xStream.alias("outputDecision", DMNElementReference.class);
xStream.alias("outputEntry", LiteralExpression.class);
xStream.alias("outputValues", UnaryTests.class);
xStream.alias("owner", DMNElementReference.class);
xStream.alias("parameter", InformationItem.class);
xStream.alias("performanceIndicator", PerformanceIndicator.class);
xStream.alias("relation", Relation.class);
xStream.alias("requiredAuthority", DMNElementReference.class);
xStream.alias("requiredDecision", DMNElementReference.class);
xStream.alias("requiredDecision", DMNElementReference.class);
xStream.alias("requiredInput", DMNElementReference.class);
xStream.alias("requiredInput", DMNElementReference.class);
xStream.alias("requiredKnowledge", DMNElementReference.class);
xStream.alias("rule", DecisionRule.class);
xStream.alias("sourceRef", DMNElementReference.class);
xStream.alias("supportedObjective", DMNElementReference.class);
xStream.alias("targetRef", DMNElementReference.class);
xStream.alias("textAnnotation", TextAnnotation.class);
// TODO where?
xStream.alias("type", String.class);
xStream.alias("typeRef", QName.class);
xStream.alias("usingProcess", DMNElementReference.class);
xStream.alias("usingTask", DMNElementReference.class);
xStream.alias("variable", InformationItem.class);
xStream.alias("variable", InformationItem.class);
xStream.alias("variable", InformationItem.class);
xStream.alias("variable", InformationItem.class);
// xStream.alias("allowedAnswers", xsd:string.class );
// xStream.alias("description", xsd:string.class );
// xStream.alias("question", xsd:string.class );
// xStream.alias("text", xsd:string.class );
// xStream.alias("text", xsd:string.class );
// xStream.alias("text", xsd:string.class );
xStream.alias("row", org.kie.dmn.model.v1_1.List.class);
xStream.alias("list", org.kie.dmn.model.v1_1.List.class);
xStream.alias("extensionElements", DMNElement.ExtensionElements.class);
// Manually imported TEXT = String
xStream.alias(LiteralExpressionConverter.TEXT, String.class);
xStream.alias(TextAnnotationConverter.TEXT, String.class);
xStream.alias(UnaryTestsConverter.TEXT, String.class);
xStream.alias(DecisionConverter.QUESTION, String.class);
xStream.alias(DecisionConverter.ALLOWED_ANSWERS, String.class);
xStream.alias(DMNElementConverter.DESCRIPTION, String.class);
xStream.registerConverter(new AssociationConverter(xStream));
xStream.registerConverter(new AuthorityRequirementConverter(xStream));
xStream.registerConverter(new BindingConverter(xStream));
xStream.registerConverter(new BusinessKnowledgeModelConverter(xStream));
xStream.registerConverter(new ContextConverter(xStream));
xStream.registerConverter(new ContextEntryConverter(xStream));
xStream.registerConverter(new DecisionConverter(xStream));
xStream.registerConverter(new DecisionRuleConverter(xStream));
xStream.registerConverter(new DecisionServiceConverter(xStream));
xStream.registerConverter(new DecisionTableConverter(xStream));
xStream.registerConverter(new DefinitionsConverter(xStream));
xStream.registerConverter(new DMNElementReferenceConverter(xStream));
xStream.registerConverter(new FunctionDefinitionConverter(xStream));
xStream.registerConverter(new ImportConverter(xStream));
xStream.registerConverter(new ImportedValuesConverter(xStream));
xStream.registerConverter(new InformationItemConverter(xStream));
xStream.registerConverter(new InformationRequirementConverter(xStream));
xStream.registerConverter(new InputClauseConverter(xStream));
xStream.registerConverter(new InputDataConverter(xStream));
xStream.registerConverter(new InvocationConverter(xStream));
xStream.registerConverter(new ItemDefinitionConverter(xStream));
xStream.registerConverter(new KnowledgeRequirementConverter(xStream));
xStream.registerConverter(new KnowledgeSourceConverter(xStream));
xStream.registerConverter(new LiteralExpressionConverter(xStream));
xStream.registerConverter(new OrganizationUnitConverter(xStream));
xStream.registerConverter(new OutputClauseConverter(xStream));
xStream.registerConverter(new PerformanceIndicatorConverter(xStream));
xStream.registerConverter(new RelationConverter(xStream));
xStream.registerConverter(new TextAnnotationConverter(xStream));
xStream.registerConverter(new UnaryTestsConverter(xStream));
xStream.registerConverter(new QNameConverter());
xStream.registerConverter(new DMNListConverter(xStream));
xStream.registerConverter(new ElementCollectionConverter(xStream));
xStream.registerConverter(new ExtensionElementsConverter(xStream, extensionRegisters));
xStream.ignoreUnknownElements();
for (DMNExtensionRegister extensionRegister : extensionRegisters) {
extensionRegister.registerExtensionConverters(xStream);
}
return xStream;
}
use of org.kie.dmn.model.v1_1.DecisionService in project drools by kiegroup.
the class DecisionServicesConverter method writeChildren.
@Override
protected void writeChildren(HierarchicalStreamWriter writer, MarshallingContext context, Object parent) {
super.writeChildren(writer, context, parent);
DecisionServices decisionServices = (DecisionServices) parent;
for (DecisionService ds : decisionServices.getDecisionService()) {
writeChildrenNode(writer, context, ds, DECISION_SERVICE);
}
}
use of org.kie.dmn.model.v1_1.DecisionService in project drools by kiegroup.
the class DecisionServicesConverter method assignChildElement.
@Override
protected void assignChildElement(Object parent, String nodeName, Object child) {
DecisionServices decisionServices = (DecisionServices) parent;
// We need to clear the namespace prefix for drools:KIE because DMNModelInstrumentedBaseConverter#writeAttributes will try to write it again.
// The namespace is registered in the XStreamMapper#configureQNameMap method by the extension register
decisionServices.getNsContext().remove("drools", DMNModelInstrumentedBase.URI_KIE);
switch(nodeName) {
case DECISION_SERVICE:
decisionServices.getDecisionService().add((DecisionService) child);
break;
}
}
use of org.kie.dmn.model.v1_1.DecisionService in project drools by kiegroup.
the class DMNXMLLoaderTest method testLoadingDecisionServices.
@Test
public void testLoadingDecisionServices() {
final DMNMarshaller DMNMarshaller = DMNMarshallerFactory.newMarshallerWithExtensions(Arrays.asList(new DecisionServicesExtensionRegister()));
final InputStream is = this.getClass().getResourceAsStream("0004-decision-services.dmn");
final InputStreamReader isr = new InputStreamReader(is);
final Definitions def = DMNMarshaller.unmarshal(isr);
assertThat(def.getDecisionService().size(), is(2));
DecisionService decisionService1 = def.getDecisionService().get(0);
assertThat(decisionService1.getId(), is("_70386614-9838-420b-a2ae-ff901ada63fb"));
assertThat(decisionService1.getName(), is("A Only Knowing B and C"));
assertThat(decisionService1.getDescription(), is("Description of A (BC)"));
assertThat(decisionService1.getOutputDecision().size(), is(1));
assertThat(decisionService1.getEncapsulatedDecision().size(), is(0));
assertThat(decisionService1.getInputDecision().size(), is(2));
assertThat(decisionService1.getInputData().size(), is(0));
assertThat(decisionService1.getOutputDecision().get(0).getHref(), is("#_c2b44706-d479-4ceb-bb74-73589d26dd04"));
DecisionService decisionService2 = def.getDecisionService().get(1);
assertThat(decisionService2.getId(), is("_4620ef13-248a-419e-bc68-6b601b725a03"));
assertThat(decisionService2.getName(), is("A only as output knowing D and E"));
assertThat(decisionService2.getOutputDecision().size(), is(1));
assertThat(decisionService2.getEncapsulatedDecision().size(), is(2));
assertThat(decisionService2.getInputDecision().size(), is(0));
assertThat(decisionService2.getInputData().size(), is(2));
assertThat(decisionService2.getInputData().get(0).getHref(), is("#_bcea16fb-6c19-4bde-b37d-73407002c064"));
assertThat(decisionService2.getInputData().get(1).getHref(), is("#_207b9195-a441-47f2-9414-2fad64b463f9"));
}
use of org.kie.dmn.model.v1_1.DecisionService in project drools by kiegroup.
the class DecisionServiceConverter method writeChildren.
@Override
protected void writeChildren(HierarchicalStreamWriter writer, MarshallingContext context, Object parent) {
super.writeChildren(writer, context, parent);
DecisionService decisionService = (DecisionService) parent;
for (DMNElementReference ref : decisionService.getOutputDecision()) {
writeChildrenNode(writer, context, ref, OUTPUT_DECISION);
}
for (DMNElementReference ref : decisionService.getEncapsulatedDecision()) {
writeChildrenNode(writer, context, ref, ENCAPSULATED_DECISION);
}
for (DMNElementReference ref : decisionService.getInputDecision()) {
writeChildrenNode(writer, context, ref, INPUT_DECISION);
}
for (DMNElementReference ref : decisionService.getInputData()) {
writeChildrenNode(writer, context, ref, INPUT_DATA);
}
}
Aggregations