use of org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITDecisionTable in project kie-wb-common by kiegroup.
the class DecisionTablePropertyConverter method dmnFromWB.
public static JSITDecisionTable dmnFromWB(final DecisionTable wb) {
final JSITDecisionTable result = new JSITDecisionTable();
result.setId(wb.getId().getValue());
final Optional<String> description = Optional.ofNullable(DescriptionPropertyConverter.dmnFromWB(wb.getDescription()));
description.ifPresent(result::setDescription);
QNamePropertyConverter.setDMNfromWB(wb.getTypeRef(), result::setTypeRef);
for (final RuleAnnotationClause annotation : wb.getAnnotations()) {
final JSITRuleAnnotationClause converted = RuleAnnotationClausePropertyConverter.dmnFromWB(annotation);
result.addAnnotation(converted);
}
for (InputClause input : wb.getInput()) {
final JSITInputClause c = InputClausePropertyConverter.dmnFromWB(input);
result.addInput(c);
}
for (OutputClause input : wb.getOutput()) {
final JSITOutputClause c = OutputClausePropertyConverter.dmnFromWB(input);
result.addOutput(c);
}
if (result.getOutput().size() == 1) {
final JSITOutputClause at = Js.uncheckedCast(result.getOutput().get(0));
// DROOLS-3281
at.setName(null);
// DROOLS-5178
at.setTypeRef(null);
}
for (DecisionRule dr : wb.getRule()) {
final JSITDecisionRule c = DecisionRulePropertyConverter.dmnFromWB(dr);
result.addRule(c);
}
if (Objects.nonNull(wb.getHitPolicy())) {
switch(wb.getHitPolicy()) {
case ANY:
result.setHitPolicy(Js.uncheckedCast(JSITHitPolicy.ANY.value()));
break;
case COLLECT:
result.setHitPolicy(Js.uncheckedCast(JSITHitPolicy.COLLECT.value()));
break;
case FIRST:
result.setHitPolicy(Js.uncheckedCast(JSITHitPolicy.FIRST.value()));
break;
case UNIQUE:
result.setHitPolicy(Js.uncheckedCast(JSITHitPolicy.UNIQUE.value()));
break;
case PRIORITY:
result.setHitPolicy(Js.uncheckedCast(JSITHitPolicy.PRIORITY.value()));
break;
case RULE_ORDER:
result.setHitPolicy(Js.uncheckedCast(JSITHitPolicy.RULE_ORDER.value()));
break;
case OUTPUT_ORDER:
result.setHitPolicy(Js.uncheckedCast(JSITHitPolicy.OUTPUT_ORDER.value()));
break;
}
}
if (Objects.nonNull(wb.getAggregation())) {
final String wbBuiltinAggregator = wb.getAggregation().value();
result.setAggregation(Js.uncheckedCast(wbBuiltinAggregator));
}
if (Objects.nonNull(wb.getPreferredOrientation())) {
final String wbPreferredOrientation = wb.getPreferredOrientation().value();
result.setPreferredOrientation(Js.uncheckedCast(wbPreferredOrientation));
}
result.setOutputLabel(wb.getOutputLabel());
return result;
}
Aggregations