diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/controller/PhasesController.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/controller/PhasesController.java index 674aa63723ff3af2097b3abb29c465a42347385e..1bfe0ccd2c71a5a1e58ce7e7e677f98eee32c0b9 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/controller/PhasesController.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/controller/PhasesController.java @@ -67,9 +67,7 @@ public class PhasesController { @PathVariable(name = "definitionId") Long definitionId, @ApiParam(value = "Phase type", allowableValues = "questionnaire, info, game", required = true) @RequestBody @Valid PhaseCreateDTO phaseCreateDTO) { - AbstractPhaseDTO createdPhase = trainingPhaseFacade.createPhase(definitionId, phaseCreateDTO); - return new ResponseEntity<>(createdPhase, HttpStatus.CREATED); } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/AbstractPhase.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/AbstractPhase.java index 98cf6f7609a821015a108bc55b06d9144e790d6d..c2a77de28ea3639d482df5294f912f191db42173 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/AbstractPhase.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/AbstractPhase.java @@ -23,7 +23,7 @@ public abstract class AbstractPhase implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "phaseGenerator") @SequenceGenerator(name = "phaseGenerator", sequenceName = "phase_seq") - @Column(name = "id_phase", nullable = false, unique = true) + @Column(name = "phase_id", nullable = false, unique = true) private Long id; private String title; diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/DecisionMatrixRow.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/DecisionMatrixRow.java index b1ecdd639fa2499b53eb887637c4e96eeec5d4f2..964d9aa41fe0c9e4d824afa92dc6a915c2f93770 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/DecisionMatrixRow.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/DecisionMatrixRow.java @@ -18,7 +18,7 @@ public class DecisionMatrixRow implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "decisionMatrixRowGenerator") @SequenceGenerator(name = "decisionMatrixRowGenerator", sequenceName = "decision_matrix_row_seq") - @Column(name = "id_decision_matrix_row", nullable = false, unique = true) + @Column(name = "decision_matrix_row_id", nullable = false, unique = true) private Long id; @Column(name = "order_in_training_phase", nullable = false) diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Question.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Question.java index 52bfc08e1f0551d36419b397f53f5165629d7fdf..4f02b68c4f239a213d47f7069199a2d85b94b9a5 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Question.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Question.java @@ -31,7 +31,7 @@ public class Question implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "questionGenerator") @SequenceGenerator(name = "questionGenerator", sequenceName = "question_seq") - @Column(name = "id_question", nullable = false, unique = true) + @Column(name = "question_id", nullable = false, unique = true) private Long id; @Enumerated(EnumType.STRING) @@ -46,7 +46,7 @@ public class Question implements Serializable { private QuestionnairePhase questionnairePhase; @OrderBy - @OneToMany(mappedBy = "question", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "question", cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, orphanRemoval = true, fetch = FetchType.LAZY) private List<QuestionChoice> choices = new ArrayList<>(); @ManyToMany(mappedBy = "questions", fetch = FetchType.LAZY) diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionChoice.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionChoice.java index e866cd4dfa5cfb0dfe8a06b61865d956d05fcfea..1aa21438b9876ffb2dbcc258a51affaa3e32b5f0 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionChoice.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionChoice.java @@ -18,7 +18,7 @@ public class QuestionChoice implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "questionChoiceGenerator") @SequenceGenerator(name = "questionChoiceGenerator", sequenceName = "question_choice_seq") - @Column(name = "id_question_choice", nullable = false, unique = true) + @Column(name = "question_choice_id", nullable = false, unique = true) private Long id; private String text; diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionPhaseRelation.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionPhaseRelation.java index 17f17a526adf5cef28f18dfb4bf82ca0ac3d2752..87fd9068daffc46e90cd74ce0001ab6f0edb3a63 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionPhaseRelation.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionPhaseRelation.java @@ -23,7 +23,7 @@ public class QuestionPhaseRelation implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "questionPhaseGenerator") @SequenceGenerator(name = "questionPhaseGenerator", sequenceName = "question_phase_seq") - @Column(name = "id_question_phase_relation", nullable = false, unique = true) + @Column(name = "question_phase_relation_id", nullable = false, unique = true) private Long id; @Column(name = "order_in_questionnaire", nullable = false) diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionnairePhase.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionnairePhase.java index 7fcfde158858a8a7ecdbc567193fd555a4ace138..85e53f08e5e2e5677c4fcca3a6375176b78ec124 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionnairePhase.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionnairePhase.java @@ -14,18 +14,18 @@ import java.util.ArrayList; import java.util.List; @Entity -@Table(name = "questionnairePhase") +@Table(name = "questionnaire_phase") public class QuestionnairePhase extends AbstractPhase { @Enumerated(EnumType.STRING) private QuestionnaireType questionnaireType; @OrderBy - @OneToMany(mappedBy = "questionnairePhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "questionnairePhase", cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, orphanRemoval = true, fetch = FetchType.LAZY) private List<Question> questions = new ArrayList<>(); @OrderBy - @OneToMany(mappedBy = "questionnairePhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "questionnairePhase", cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, orphanRemoval = true, fetch = FetchType.LAZY) private List<QuestionPhaseRelation> questionPhaseRelations = new ArrayList<>(); public List<Question> getQuestions() { diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Task.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Task.java index 60e04d8b7328ec7ce6e3a3c74c4003179c0bbe76..8a5cd20c69e6b3d8fb1e5f8a47bf9e70ff3f591a 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Task.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Task.java @@ -19,7 +19,7 @@ public class Task implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "taskGenerator") @SequenceGenerator(name = "taskGenerator", sequenceName = "task_seq") - @Column(name = "id_task", nullable = false, unique = true) + @Column(name = "task_id", nullable = false, unique = true) private Long id; private String title; @@ -27,6 +27,8 @@ public class Task implements Serializable { private String answer; private String solution; private int incorrectAnswerLimit; + private boolean isSandboxModified; + private int sandboxChangeExpectedDuration; @Column(name = "order_in_training_phase", nullable = false) private Integer order; @@ -98,6 +100,21 @@ public class Task implements Serializable { this.trainingPhase = trainingPhase; } + public boolean isSandboxModified() { + return isSandboxModified; + } + + public void setSandboxModified(boolean sandboxModified) { + isSandboxModified = sandboxModified; + } + + public int getSandboxChangeExpectedDuration() { + return sandboxChangeExpectedDuration; + } + + public void setSandboxChangeExpectedDuration(int sandboxChangeExpectedDuration) { + this.sandboxChangeExpectedDuration = sandboxChangeExpectedDuration; + } @Override public String toString() { @@ -108,7 +125,10 @@ public class Task implements Serializable { ", answer='" + answer + '\'' + ", solution='" + solution + '\'' + ", incorrectAnswerLimit=" + incorrectAnswerLimit + + ", isSandboxModified=" + isSandboxModified + + ", sandboxChangeExpectedDuration=" + sandboxChangeExpectedDuration + ", order=" + order + + ", trainingPhase=" + trainingPhase.getId() + '}'; } } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/TrainingPhase.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/TrainingPhase.java index f63988c7afe46b8d0f44dc3912b3d2ca1c9f424d..be1db20ab43f314eef6258b2f61bff641484e8a9 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/TrainingPhase.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/TrainingPhase.java @@ -18,15 +18,15 @@ public class TrainingPhase extends AbstractPhase { private int allowedWrongAnswers; @OrderBy - @OneToMany(mappedBy = "trainingPhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "trainingPhase", cascade = CascadeType.REMOVE, orphanRemoval = true, fetch = FetchType.LAZY) private List<Task> tasks = new ArrayList<>(); @OrderBy - @OneToMany(mappedBy = "trainingPhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "trainingPhase", cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, orphanRemoval = true, fetch = FetchType.LAZY) private List<DecisionMatrixRow> decisionMatrix; @OrderBy - @OneToMany(mappedBy = "relatedTrainingPhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "relatedTrainingPhase", cascade = CascadeType.REMOVE, orphanRemoval = true, fetch = FetchType.LAZY) private List<QuestionPhaseRelation> questionPhaseRelations = new ArrayList<>(); public int getEstimatedDuration() { diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskDTO.java index d975486ab87e15708d4dc9ae767533d755432ff3..af151412a425139f006058a18b55e17752e0ae58 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskDTO.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskDTO.java @@ -9,6 +9,8 @@ public class TaskDTO { private String answer; private String solution; private int incorrectAnswerLimit; + private boolean isSandboxModified; + private int sandboxChangeExpectedDuration; public Long getId() { return id; @@ -66,9 +68,25 @@ public class TaskDTO { this.incorrectAnswerLimit = incorrectAnswerLimit; } + public boolean isSandboxModified() { + return isSandboxModified; + } + + public void setSandboxModified(boolean sandboxModified) { + isSandboxModified = sandboxModified; + } + + public int getSandboxChangeExpectedDuration() { + return sandboxChangeExpectedDuration; + } + + public void setSandboxChangeExpectedDuration(int sandboxChangeExpectedDuration) { + this.sandboxChangeExpectedDuration = sandboxChangeExpectedDuration; + } + @Override public String toString() { - return "TaskDto{" + + return "TaskDTO{" + "id=" + id + ", title='" + title + '\'' + ", order=" + order + @@ -76,6 +94,8 @@ public class TaskDTO { ", answer='" + answer + '\'' + ", solution='" + solution + '\'' + ", incorrectAnswerLimit=" + incorrectAnswerLimit + - "} " + super.toString(); + ", isSandboxModified=" + isSandboxModified + + ", sandboxChangeExpectedDuration=" + sandboxChangeExpectedDuration + + '}'; } } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskUpdateDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskUpdateDTO.java index bf3b10a3906d8ac6052f97b98a53cf5b6cbd7471..9e5d27868d9ad36663cf1cbb28d579f79489fd86 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskUpdateDTO.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskUpdateDTO.java @@ -29,6 +29,13 @@ public class TaskUpdateDTO { @PositiveOrZero(message = "Limit of the number of provided incorrect answers must not be a negative number") private Integer incorrectAnswerLimit; + @ApiModelProperty(value = "It defines whether the sandbox can be modified", example = "true") + private boolean isSandboxModified; + + @ApiModelProperty(value = "It defines the expected duration of sandbox change defined in seconds", example = "15") + @PositiveOrZero(message = "Estimated duration of sandbox change must not be a negative number") + private int sandboxChangeExpectedDuration; + public String getTitle() { return title; } @@ -69,14 +76,32 @@ public class TaskUpdateDTO { this.incorrectAnswerLimit = incorrectAnswerLimit; } + public boolean isSandboxModified() { + return isSandboxModified; + } + + public void setSandboxModified(boolean sandboxModified) { + isSandboxModified = sandboxModified; + } + + public int getSandboxChangeExpectedDuration() { + return sandboxChangeExpectedDuration; + } + + public void setSandboxChangeExpectedDuration(int sandboxChangeExpectedDuration) { + this.sandboxChangeExpectedDuration = sandboxChangeExpectedDuration; + } + @Override public String toString() { - return "TaskUpdateDto{" + + return "TaskUpdateDTO{" + "title='" + title + '\'' + ", content='" + content + '\'' + ", answer='" + answer + '\'' + ", solution='" + solution + '\'' + ", incorrectAnswerLimit=" + incorrectAnswerLimit + + ", isSandboxModified=" + isSandboxModified + + ", sandboxChangeExpectedDuration=" + sandboxChangeExpectedDuration + '}'; } } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingPhaseFacade.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingPhaseFacade.java index e527581d134be522e8d3a177265b228c9879556c..f2fbf5e1f60bf53d92527018eb327b1ba9f5a661 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingPhaseFacade.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingPhaseFacade.java @@ -50,11 +50,8 @@ public class TrainingPhaseFacade { public List<AbstractPhaseDTO> deletePhase(Long definitionId, Long phaseId) { - phaseService.deletePhase(definitionId, phaseId); - trainingPhaseService.alignDecisionMatrixForPhasesInTrainingDefinition(definitionId); - return getPhases(definitionId); } @@ -63,7 +60,6 @@ public class TrainingPhaseFacade { } public List<AbstractPhaseDTO> getPhases(Long definitionId) { - return phaseService.getPhases(definitionId); } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/InfoPhaseService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/InfoPhaseService.java index 5d109ab38897407f15c2fbc93666a8305bc1cafe..557d3466fb30108c1205b901dca5aac254267aa7 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/InfoPhaseService.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/InfoPhaseService.java @@ -33,14 +33,12 @@ public class InfoPhaseService { infoPhase.setOrder(abstractPhaseRepository.getCurrentMaxOrder(trainingDefinitionId) + 1); InfoPhase persistedEntity = infoPhaseRepository.save(infoPhase); - return BeanMapper.INSTANCE.toDto(persistedEntity); } public InfoPhaseDTO updateInfoPhase(Long definitionId, Long phaseId, InfoPhaseUpdateDTO infoPhaseUpdateDto) { InfoPhase infoPhaseUpdate = BeanMapper.INSTANCE.toEntity(infoPhaseUpdateDto); infoPhaseUpdate.setId(phaseId); - InfoPhase persistedInfoPhase = infoPhaseRepository.findById(infoPhaseUpdate.getId()) .orElseThrow(() -> new RuntimeException("Info phase was not found")); // TODO throw proper exception once kypo2-training is migrated @@ -51,7 +49,6 @@ public class InfoPhaseService { infoPhaseUpdate.setOrder(persistedInfoPhase.getOrder()); InfoPhase savedEntity = infoPhaseRepository.save(infoPhaseUpdate); - return BeanMapper.INSTANCE.toDto(savedEntity); } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/PhaseService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/PhaseService.java index b4aab2b75c8419820a08fc9a7329b4c09f3e4204..db837ce5901184f5bedffcc0b9b78d4e3124ac5a 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/PhaseService.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/PhaseService.java @@ -30,7 +30,6 @@ public class PhaseService { // TODO add check to trainingDefinitionId and phaseId (field structure will be probably changed) - int phaseOrder = phase.getOrder(); abstractPhaseRepository.decreaseOrderAfterPhaseWasDeleted(definitionId, phaseOrder); @@ -60,9 +59,7 @@ public class PhaseService { .orElseThrow(() -> new RuntimeException("Phase was not found")); // TODO throw proper exception once kypo2-training is migrated - int fromOrder = phaseFrom.getOrder(); - if (fromOrder < newPosition) { abstractPhaseRepository.decreaseOrderOfPhasesOnInterval(phaseFrom.getTrainingDefinitionId(), fromOrder, newPosition); } else if (fromOrder > newPosition) { @@ -74,7 +71,6 @@ public class PhaseService { phaseFrom.setOrder(newPosition); abstractPhaseRepository.save(phaseFrom); - trainingPhaseService.alignDecisionMatrixForPhasesInTrainingDefinition(phaseFrom.getTrainingDefinitionId()); } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionnairePhaseService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionnairePhaseService.java index bd93d710804c0500698a52a31deb46a535b2b77a..04ed529a647a0ca54fcc63b4169d03aabd5e11b9 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionnairePhaseService.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionnairePhaseService.java @@ -50,7 +50,6 @@ public class QuestionnairePhaseService { } public QuestionnairePhaseDTO createDefaultQuestionnairePhase(Long trainingDefinitionId, PhaseCreateDTO phaseCreateDTO) { - QuestionnairePhase questionnairePhase = new QuestionnairePhase(); questionnairePhase.setTitle("Title of questionnaire phase"); questionnairePhase.setTrainingDefinitionId(trainingDefinitionId); @@ -63,7 +62,6 @@ public class QuestionnairePhaseService { } QuestionnairePhase persistedEntity = questionnairePhaseRepository.save(questionnairePhase); - return BeanMapper.INSTANCE.toDto(persistedEntity); } @@ -92,10 +90,7 @@ public class QuestionnairePhaseService { } QuestionnairePhase savedEntity = questionnairePhaseRepository.save(questionnairePhase); - - QuestionnairePhaseDTO result = BeanMapper.INSTANCE.toDto(savedEntity); - - return result; + return BeanMapper.INSTANCE.toDto(savedEntity); } private List<QuestionPhaseRelation> resolveQuestionnairePhaseRelationsUpdate(QuestionnairePhase questionnairePhase, QuestionnaireUpdateDTO questionnaireUpdateDto) { diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TaskService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TaskService.java index a4498217eef466dea946e73f7b2d94c6e6c03997..67ccb756d62c6aa87d3ec87092b3dda88706b490 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TaskService.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TaskService.java @@ -46,7 +46,6 @@ public class TaskService { task.setIncorrectAnswerLimit(1); Task persistedEntity = taskRepository.save(task); - return BeanMapper.INSTANCE.toDto(persistedEntity); } @@ -63,7 +62,6 @@ public class TaskService { task.setOrder(taskRepository.getCurrentMaxOrder(phaseId) + 1); Task persistedEntity = taskRepository.save(task); - return BeanMapper.INSTANCE.toDto(persistedEntity); } @@ -92,7 +90,6 @@ public class TaskService { taskUpdate.setOrder(persistedTask.getOrder()); Task savedEntity = taskRepository.save(taskUpdate); - return BeanMapper.INSTANCE.toDto(savedEntity); } @@ -104,7 +101,6 @@ public class TaskService { // TODO add check to trainingDefinitionId and phaseId (field structure will be probably changed) taskRepository.decreaseOrderAfterTaskWasDeleted(phaseId, task.getOrder()); - taskRepository.delete(task); } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TrainingPhaseService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TrainingPhaseService.java index e733b29f6041e8cf2d8912288778a1f0b30fc813..eb966328881ed69d2ed02badf9162fec60e9dd8f 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TrainingPhaseService.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TrainingPhaseService.java @@ -36,7 +36,6 @@ public class TrainingPhaseService { } public TrainingPhaseDTO createDefaultTrainingPhase(Long trainingDefinitionId) { - TrainingPhase trainingPhase = new TrainingPhase(); trainingPhase.setTitle("Title of training phase"); trainingPhase.setTrainingDefinitionId(trainingDefinitionId); @@ -45,7 +44,6 @@ public class TrainingPhaseService { trainingPhase.setDecisionMatrix(prepareDefaultDecisionMatrix(trainingDefinitionId, trainingPhase)); TrainingPhase persistedEntity = trainingPhaseRepository.save(trainingPhase); - return BeanMapper.INSTANCE.toDto(persistedEntity); } @@ -68,7 +66,6 @@ public class TrainingPhaseService { } TrainingPhase savedEntity = trainingPhaseRepository.save(trainingPhase); - return BeanMapper.INSTANCE.toDto(savedEntity); } @@ -95,7 +92,6 @@ public class TrainingPhaseService { result.add(decisionMatrixRow); } - return result; } @@ -110,7 +106,6 @@ public class TrainingPhaseService { } final int expectedNumberOfRows = currentPhaseOrder + 1; - if (numberOfRows == expectedNumberOfRows) { return; } else if (numberOfRows < expectedNumberOfRows) { @@ -118,7 +113,6 @@ public class TrainingPhaseService { trainingPhase.getDecisionMatrix().addAll(newDecisionMatrixRows); } else { List<DecisionMatrixRow> neededDecisionMatrixRows = getOnlyNeededDecisionMatrixRows(expectedNumberOfRows, trainingPhase); - trainingPhase.getDecisionMatrix().clear(); trainingPhase.getDecisionMatrix().addAll(neededDecisionMatrixRows); } @@ -135,13 +129,11 @@ public class TrainingPhaseService { result.add(decisionMatrixRow); } - return result; } private List<DecisionMatrixRow> getOnlyNeededDecisionMatrixRows(int expectedNumberOfRows, TrainingPhase trainingPhase) { List<DecisionMatrixRow> decisionMatrix = trainingPhase.getDecisionMatrix(); - return decisionMatrix.stream() .sorted(Comparator.comparingInt(DecisionMatrixRow::getOrder)) .limit(expectedNumberOfRows)