Skip to content
Snippets Groups Projects
Commit 8efda965 authored by Jonas Blatt's avatar Jonas Blatt :ant:
Browse files

#9 Action for new output column in Missing Input Data Verifier

parent 45ac1b0b
No related branches found
No related tags found
No related merge requests found
...@@ -72,7 +72,7 @@ public class MissingInputDataVerifier extends AbstractVerifier { ...@@ -72,7 +72,7 @@ public class MissingInputDataVerifier extends AbstractVerifier {
vreFactory vreFactory
.addVerificationFix( .addVerificationFix(
VerificationFix.getBuilder() VerificationFix.getBuilder()
.withFixName(new Name("Add new Data Input")) .withFixName(new Name("New Data Input"))
.addAction( .addAction(
Action.getBuilder() Action.getBuilder()
.withActionType(ActionType.CREATE) .withActionType(ActionType.CREATE)
...@@ -96,7 +96,9 @@ public class MissingInputDataVerifier extends AbstractVerifier { ...@@ -96,7 +96,9 @@ public class MissingInputDataVerifier extends AbstractVerifier {
// Actions for connecting to existing input Data // Actions for connecting to existing input Data
searchPossibleInputData(inputColumn); searchPossibleInputData(inputColumn);
// Actions for connection to existing decisions // Actions for connection to existing decisions
searchPossibleInputDecissions(inputColumn); searchPossibleInputDecisions(inputColumn);
// Actions for creating output columns in connected decisions
searchPossibleConnectedDecisions(inputColumn);
} }
// Add to result // Add to result
vreFactory.addToEntry( vreFactory.addToEntry(
...@@ -125,7 +127,7 @@ public class MissingInputDataVerifier extends AbstractVerifier { ...@@ -125,7 +127,7 @@ public class MissingInputDataVerifier extends AbstractVerifier {
} }
} }
private void searchPossibleInputDecissions(VDmnInputColumn inputColumn) { private void searchPossibleInputDecisions(VDmnInputColumn inputColumn) {
for (VDmnDecision decision : dmnObjectContainer.getVDmnDefinition().getVDmnDecisions()) { for (VDmnDecision decision : dmnObjectContainer.getVDmnDefinition().getVDmnDecisions()) {
for (VDmnOutputColumn outputColumn : for (VDmnOutputColumn outputColumn :
decision.getVDmnDecisionTable().getVDmnOutputColumns().stream() decision.getVDmnDecisionTable().getVDmnOutputColumns().stream()
...@@ -157,4 +159,24 @@ public class MissingInputDataVerifier extends AbstractVerifier { ...@@ -157,4 +159,24 @@ public class MissingInputDataVerifier extends AbstractVerifier {
} }
} }
} }
private void searchPossibleConnectedDecisions(VDmnInputColumn inputColumn) {
for (VDmnNode node : inputColumn.getVDmnDecision().getVDmnInformationRequirements()) {
if (node.isDecision()) {
VDmnDecision decision = (VDmnDecision) node;
vreFactory.addVerificationFix(
VerificationFix.getBuilder()
.withFixName("New Output Column in decision " + getDecisionStringName(decision))
.addAction(
Action.getBuilder()
.withActionType(ActionType.CREATE)
.withActionScope(ActionScope.OUTPUT_COLUMN)
.addIdValue(decision.getDecisionId())
.addValue("name", inputColumn.getName().get().getValue())
.addValue("typeRef", inputColumn.getTypeRef().getName())
.build())
.build());
}
}
}
} }
...@@ -192,11 +192,13 @@ function performVerificationFixCREATE(verificationEntry, fixAction) { ...@@ -192,11 +192,13 @@ function performVerificationFixCREATE(verificationEntry, fixAction) {
createInputData(verificationEntry, fixAction); createInputData(verificationEntry, fixAction);
break; break;
case 'INPUT_COLUMN': case 'INPUT_COLUMN':
createInputColumn(verificationEntry, fixAction); createColumn(verificationEntry, fixAction, 'dmn:InputClause');
break;
case 'OUTPUT_COLUMN':
createColumn(verificationEntry, fixAction, 'dmn:OutputClause');
break; break;
case 'INPUT_ENTRY': case 'INPUT_ENTRY':
case 'OUTPUT_ENTRY': case 'OUTPUT_ENTRY':
case 'OUTPUT_COLUMN':
case 'DECISION': case 'DECISION':
default: default:
alert("ACTION undefined: " + fixAction.actionType + ' -> ' alert("ACTION undefined: " + fixAction.actionType + ' -> '
...@@ -247,13 +249,19 @@ function createInputData(verificationEntry, fixAction) { ...@@ -247,13 +249,19 @@ function createInputData(verificationEntry, fixAction) {
* *
* @param {VerificationEntry} verificationEntry * @param {VerificationEntry} verificationEntry
* @param {Action} fixAction * @param {Action} fixAction
* @param {String} colType
*/ */
function createInputColumn(verificationEntry, fixAction) { function createColumn(verificationEntry, fixAction, colType) {
openViewWithId(fixAction.actionValues['decisionId']); openViewWithId(fixAction.actionValues['decisionId']);
const modeler = getCurrentModeler(); const modeler = getCurrentModeler();
let col = modeler.addCol({type: 'dmn:InputClause'}); let col = modeler.addCol({type: colType});
col.businessObject.inputExpression.typeRef = fixAction.actionValues['typeRef'].toLowerCase(); if (colType === 'dmn:InputClause') {
col.businessObject.inputExpression.text = fixAction.actionValues['name']; col.businessObject.inputExpression.typeRef = fixAction.actionValues['typeRef'].toLowerCase();
col.businessObject.inputExpression.text = fixAction.actionValues['name'];
} else {
col.businessObject.typeRef = fixAction.actionValues['typeRef'].toLowerCase();
col.businessObject.name = fixAction.actionValues['name'];
}
openViewWithId(fixAction.actionValues['decisionId']); openViewWithId(fixAction.actionValues['decisionId']);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment