From ec7606c09d17a7b31713073a0e052c22b1cb1562 Mon Sep 17 00:00:00 2001 From: Jan Tymel <410388@mail.muni.cz> Date: Fri, 22 Jan 2021 07:08:36 +0100 Subject: [PATCH] Fix DecisionMatrixRows alignment when phases' order are changed Related to #1 --- .../example/demo/service/PhaseLevelService.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/example/demo/service/PhaseLevelService.java b/src/main/java/com/example/demo/service/PhaseLevelService.java index c8f8c020..981b3919 100644 --- a/src/main/java/com/example/demo/service/PhaseLevelService.java +++ b/src/main/java/com/example/demo/service/PhaseLevelService.java @@ -69,8 +69,10 @@ public class PhaseLevelService { public void alignDecisionMatrixForPhasesInTrainingDefinition(Long trainingDefinitionId) { List<PhaseLevel> phaseLevels = phaseLevelRepository.findAllByTrainingDefinitionIdOrderByOrder(trainingDefinitionId); + int currentPhaseOrder = 0; for (PhaseLevel phaseLevel : phaseLevels) { - alignDecisionMatrixForPhase(phaseLevel); + alignDecisionMatrixForPhase(phaseLevel, currentPhaseOrder); + currentPhaseOrder++; } } @@ -91,7 +93,7 @@ public class PhaseLevelService { return result; } - private void alignDecisionMatrixForPhase(PhaseLevel phaseLevel) { + private void alignDecisionMatrixForPhase(PhaseLevel phaseLevel, int currentPhaseOrder) { if (Objects.isNull(phaseLevel)) { return; } @@ -101,15 +103,15 @@ public class PhaseLevelService { numberOfRows = phaseLevel.getDecisionMatrix().size(); } - final int expextedNumberOfRows = phaseLevel.getOrder() + 1; + final int expectedNumberOfRows = currentPhaseOrder + 1; - if (numberOfRows == expextedNumberOfRows) { + if (numberOfRows == expectedNumberOfRows) { return; - } else if (numberOfRows < expextedNumberOfRows) { - List<DecisionMatrixRow> newDecisionMatrixRows = getNewDecisionMatrixRows(numberOfRows, expextedNumberOfRows, phaseLevel); + } else if (numberOfRows < expectedNumberOfRows) { + List<DecisionMatrixRow> newDecisionMatrixRows = getNewDecisionMatrixRows(numberOfRows, expectedNumberOfRows, phaseLevel); phaseLevel.getDecisionMatrix().addAll(newDecisionMatrixRows); } else { - List<DecisionMatrixRow> neededDecisionMatrixRows = getOnlyNeededDecisionMatrixRows(expextedNumberOfRows, phaseLevel); + List<DecisionMatrixRow> neededDecisionMatrixRows = getOnlyNeededDecisionMatrixRows(expectedNumberOfRows, phaseLevel); phaseLevel.getDecisionMatrix().clear(); phaseLevel.getDecisionMatrix().addAll(neededDecisionMatrixRows); -- GitLab