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

#32 Action for Missing Missing Input Data: Rename Output Column Name, if there is a connection

parent 884d9856
No related branches found
No related tags found
No related merge requests found
......@@ -19,12 +19,14 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputColumn;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputData;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnNode;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnOutputColumn;
import de.unikoblenz.fgbks.core.dmn.domain.vdmn.utils.VDmnFunctions;
import de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntryElement;
import de.unikoblenz.fgbks.core.dmn.verification.result.actions.Action;
import de.unikoblenz.fgbks.core.dmn.verification.result.actions.VerificationFix;
import de.unikoblenz.fgbks.core.dmn.verification.verifier.AbstractVerifier;
import de.unikoblenz.fgbks.core.dmn.verification.verifier.DmnVerifier;
import de.unikoblenz.fgbks.core.dmn.verification.verifier.types.MissingInputDataVerification;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -44,6 +46,7 @@ public class MissingInputDataVerifier extends AbstractVerifier {
}
private void checkExistingInputData(VDmnInputColumn inputColumn, List<VDmnNode> inputNodes) {
List<VDmnOutputColumn> potentialNoNameOutputs = new ArrayList<>();
// if the inputColumn has no name, add the column
if (inputColumn.getName().isPresent()) {
Name inputColumnName = inputColumn.getName().get();
......@@ -64,6 +67,12 @@ public class MissingInputDataVerifier extends AbstractVerifier {
&& outputColumn.getName().get().equals(inputColumnName)) {
return;
}
if (!outputColumn.getName().isPresent()
&& (outputColumn.getTypeRef().equals(inputColumn.getTypeRef())
|| outputColumn.getValues().stream()
.allMatch(v -> v.getText().getValue().isEmpty()))) {
potentialNoNameOutputs.add(outputColumn);
}
}
}
}
......@@ -72,6 +81,28 @@ public class MissingInputDataVerifier extends AbstractVerifier {
vreFactory
.addElement(VerificationResultEntryElement.create(inputColumn))
.addVerificationFix(SHOW_INPUT_COLUMNS);
// Actions for renaming output Column
potentialNoNameOutputs.forEach(
o ->
vreFactory.addVerificationFix(
VerificationFix.getBuilder()
.withFixName(
new Name(
"Name \""
+ inputColumn.getName().get().getValue()
+ "\" the output column in decision \""
+ VDmnFunctions.getDecisionStringName(o.getVDmnDecision())
+ "\""))
.addAction(
Action.getBuilder()
.withActionType(UPDATE)
.withActionScope(OUTPUT_COLUMN)
.addIdValue(o.getVDmnDecision().getDecisionId())
.addIdValue(o.getOutputId())
.addValue("name", inputColumn.getName().get().getValue())
.addValue("typeRef", inputColumn.getTypeRef().getName())
.build())
.build()));
// Action for creating input Data
if (inputColumn.getName().isPresent()) {
vreFactory.addVerificationFix(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment