targe
}
for (Task subTask : task.getSubTasks()) {
- getAllDependencyTargetTask(targetTasks, subTask);
+ this.getAllDependencyTargetTask(targetTasks, subTask);
}
return targetTasks;
}
/**
- * Deletes the {@link DependencyLink} between the specified source and target
- * {@link DependencyRelatedObject}s.
+ * Deletes the {@link DependencyLink} between the specified source and target {@link DependencyRelatedObject}s.
*
* Then the target object's placement is then updated according to its remaining dependencies.
- * @param target the dependency target
- * @param source the dependency source
+ *
+ * @param target
+ * the dependency target
+ * @param source
+ * the dependency source
*/
public void deleteDependencyLink(EObject target, EObject source) {
if (target instanceof DependencyRelatedObject targetObject) {
@@ -282,13 +312,12 @@ public void deleteDependencyLink(EObject target, EObject source) {
}
for (DependencyLink targetDependencyLink : targetObject.getDependencies()) {
- followMoveDependency(targetDependencyLink.getSource());
+ this.followMoveDependency(targetDependencyLink.getSource());
}
}
}
-
- public void createDependencyLink(EObject target, EObject source, org.eclipse.sirius.components.gantt.StartOrEnd sourceStartOrEnd, org.eclipse.sirius.components.gantt.StartOrEnd targetStartOrEnd) {
+ public void createDependencyLink(EObject source, EObject target, org.eclipse.sirius.components.gantt.StartOrEnd sourceStartOrEnd, org.eclipse.sirius.components.gantt.StartOrEnd targetStartOrEnd) {
DependencyLink dependencyLink = PepperFactory.eINSTANCE.createDependencyLink();
if (sourceStartOrEnd.equals(org.eclipse.sirius.components.gantt.StartOrEnd.END)) {
dependencyLink.setSourceKind(StartOrEnd.END);
@@ -320,8 +349,10 @@ public void createDependencyLink(EObject target, EObject source, org.eclipse.sir
/**
* Checks if the source task already depends on one of the target task's ancestor tasks.
*
- * @param sourceObject the {@link DependencyRelatedObject} source
- * @param parent the parent {@link Task} of the target
+ * @param sourceObject
+ * the {@link DependencyRelatedObject} source
+ * @param parent
+ * the parent {@link Task} of the target
* @return {@code true} if the source already depends on the specified parent or one of its ancestors; {@code false} otherwise
*/
private boolean isParentCycle(DependencyRelatedObject sourceObject, Task parent) {
@@ -332,7 +363,7 @@ private boolean isParentCycle(DependencyRelatedObject sourceObject, Task parent)
}
boolean isParentCycle = false;
if (parent.eContainer() instanceof Task grandParent) {
- isParentCycle = isParentCycle(sourceObject, grandParent);
+ isParentCycle = this.isParentCycle(sourceObject, grandParent);
}
return isParentCycle;
}
@@ -343,7 +374,7 @@ private boolean isCycle(DependencyRelatedObject sourceObject, DependencyRelatedO
if (dep.getSource().equals(targetObject)) {
isCycle = true;
} else if (!isCycle) {
- isCycle = isCycle(dep.getSource(), targetObject);
+ isCycle = this.isCycle(dep.getSource(), targetObject);
}
}
return isCycle;
@@ -352,8 +383,10 @@ private boolean isCycle(DependencyRelatedObject sourceObject, DependencyRelatedO
/**
* Validates a dependency creation request.
*
- * @param sourceObject the dependency source
- * @param targetObject the dependency target
+ * @param sourceObject
+ * the dependency source
+ * @param targetObject
+ * the dependency target
* @return {@code true} if the dependency is invalid because it would create a cycle or duplicate a dependency; {@code false} otherwise
*/
private boolean isDuplicateOrCycle(DependencyRelatedObject sourceObject, DependencyRelatedObject targetObject) {
@@ -361,16 +394,17 @@ private boolean isDuplicateOrCycle(DependencyRelatedObject sourceObject, Depende
boolean isParentChildDependency = sourceObject.equals(targetObject.eContainer()) || targetObject.equals(sourceObject.eContainer());
boolean isParentCycle = false;
if (targetObject.eContainer() instanceof Task parent) {
- isParentCycle = isParentCycle(sourceObject, parent);
+ isParentCycle = this.isParentCycle(sourceObject, parent);
}
- boolean isCycle = isCycle(sourceObject, targetObject);
+ boolean isCycle = this.isCycle(sourceObject, targetObject);
if (isParentChildDependency) {
this.feedbackMessageService.addFeedbackMessage(new Message("Creating a dependency between a parent task and one of its children is not possible.", MessageLevel.ERROR));
}
if (isParentCycle) {
- this.feedbackMessageService.addFeedbackMessage(new Message("Creating a dependency when the source task already depends on one of the target task's parent tasks is not possible", MessageLevel.ERROR));
+ this.feedbackMessageService.addFeedbackMessage(
+ new Message("Creating a dependency when the source task already depends on one of the target task's parent tasks is not possible", MessageLevel.ERROR));
}
if (isCycle) {
this.feedbackMessageService.addFeedbackMessage(new Message("Creating a cyclic dependency is not possible.", MessageLevel.ERROR));
@@ -395,10 +429,10 @@ private boolean isDuplicateOrCycle(DependencyRelatedObject sourceObject, Depende
}
/**
- * Finds all {@link DependencyRelatedObject} instances that depend on the given
- * {@link DependencyRelatedObject} and update them according to their dependency relationships.
+ * Finds all {@link DependencyRelatedObject} instances that depend on the given {@link DependencyRelatedObject} and update them according to their dependency relationships.
*
- * @param sourceObject the object that has been moved
+ * @param sourceObject
+ * the object that has been moved
*/
public void followMoveDependency(DependencyRelatedObject sourceObject) {
List targetTasks = new ArrayList<>();
@@ -418,7 +452,7 @@ public void followMoveDependency(DependencyRelatedObject sourceObject) {
}
if (sourceObject instanceof Task sourceTask) {
this.followTaskMoveDependency(targetTasks, sourceTask);
- followMoveDependenciesParent(sourceTask);
+ this.followMoveDependenciesParent(sourceTask);
}
if (sourceObject instanceof Workpackage sourceWorkpackage) {
this.followWorkpackageMoveDependency(targetWorkpackages, sourceWorkpackage);
@@ -428,8 +462,10 @@ public void followMoveDependency(DependencyRelatedObject sourceObject) {
/**
* Updates the dates of all {@link Workpackage} that depend on the given source {@link Workpackage}.
*
- * @param targetWorkpackages the dependent workpackages
- * @param sourceWorkpackage the workpackage that has been moved
+ * @param targetWorkpackages
+ * the dependent workpackages
+ * @param sourceWorkpackage
+ * the workpackage that has been moved
*/
private void followWorkpackageMoveDependency(List targetWorkpackages, Workpackage sourceWorkpackage) {
List dependencies = new ArrayList<>();
@@ -441,14 +477,14 @@ private void followWorkpackageMoveDependency(List targetWorkpackage
LocalDate laterEnd = null;
for (DependencyLink dep : workpackage.getDependencies()) {
if (dep.getTargetKind().equals(StartOrEnd.END)) {
- LocalDate newLocalDate = getlaterLocalDate(dep);
+ LocalDate newLocalDate = this.getlaterLocalDate(dep);
if (laterEnd == null || laterEnd.isBefore(newLocalDate)) {
laterEnd = newLocalDate;
winnerEnd = dep;
}
}
if (dep.getTargetKind().equals(StartOrEnd.START)) {
- LocalDate newLocalDate = getlaterLocalDate(dep);
+ LocalDate newLocalDate = this.getlaterLocalDate(dep);
if (laterStart == null || laterStart.isBefore(newLocalDate)) {
laterStart = newLocalDate;
winnerStart = dep;
@@ -458,20 +494,19 @@ private void followWorkpackageMoveDependency(List targetWorkpackage
for (DependencyLink dep : workpackage.getDependencies()) {
if ((dep.equals(winnerStart) && winnerEnd == null) || (dep.equals(winnerEnd) && winnerStart == null)) {
Workpackage bestSourceWorkpackage = (Workpackage) dep.getSource();
- setWorkpackageNewDates(workpackage, dep);
+ this.setWorkpackageNewDates(workpackage, dep);
if (bestSourceWorkpackage == sourceWorkpackage) {
dependencies.add(workpackage);
}
} else if (dep.equals(winnerEnd)) {
Workpackage bestSourceWorkpackage = (Workpackage) dep.getSource();
- setWorkpackageNewEndDate(workpackage, dep);
+ this.setWorkpackageNewEndDate(workpackage, dep);
if (bestSourceWorkpackage == sourceWorkpackage) {
dependencies.add(workpackage);
}
- }
- else if (dep.equals(winnerStart)) {
+ } else if (dep.equals(winnerStart)) {
Workpackage bestSourceWorkpackage = (Workpackage) dep.getSource();
- setWorkpackageNewStartDate(workpackage, dep);
+ this.setWorkpackageNewStartDate(workpackage, dep);
if (bestSourceWorkpackage == sourceWorkpackage) {
dependencies.add(workpackage);
}
@@ -481,7 +516,8 @@ else if (dep.equals(winnerStart)) {
if (workpackage.getStartDate().isAfter(workpackage.getEndDate())) {
workpackageComputationService.updateDuration(workpackage, 1);
workpackageComputationService.updateEndDate(workpackage, workpackage.getStartDate().plusDays(1));
- this.feedbackMessageService.addFeedbackMessage(new Message("Task dependencies overlap : End date has been changed to avoid to have end date before start date.", MessageLevel.WARNING));
+ this.feedbackMessageService.addFeedbackMessage(
+ new Message("Task dependencies overlap : End date has been changed to avoid to have end date before start date.", MessageLevel.WARNING));
}
}
}
@@ -493,8 +529,10 @@ else if (dep.equals(winnerStart)) {
/**
* Updates the dates of all {@link Task} that depend on the given source {@link Task}.
*
- * @param targetTasks the dependent workpackages
- * @param sourceTask the workpackage that has been moved
+ * @param targetTasks
+ * the dependent workpackages
+ * @param sourceTask
+ * the workpackage that has been moved
*/
private void followTaskMoveDependency(List targetTasks, Task sourceTask) {
List dependencies = new ArrayList<>();
@@ -524,21 +562,19 @@ private void followTaskMoveDependency(List targetTasks, Task sourceTask) {
//if the task is only pointed to one extremity
if ((dep.equals(winnerStart) && winnerEnd == null) || (dep.equals(winnerEnd) && winnerStart == null)) {
Task bestSourceTask = (Task) dep.getSource();
- setTaskNewDates(task, dep);
+ this.setTaskNewDates(task, dep);
if (bestSourceTask == sourceTask) {
dependencies.add(task);
}
- }
- else if (dep.equals(winnerEnd)) {
+ } else if (dep.equals(winnerEnd)) {
Task bestSourceTask = (Task) dep.getSource();
- setTaskNewEndDate(task, dep);
+ this.setTaskNewEndDate(task, dep);
if (bestSourceTask == sourceTask) {
dependencies.add(task);
}
- }
- else if (dep.equals(winnerStart)) {
+ } else if (dep.equals(winnerStart)) {
Task bestSourceTask = (Task) dep.getSource();
- setTaskNewStartDate(task, dep);
+ this.setTaskNewStartDate(task, dep);
if (bestSourceTask == sourceTask) {
dependencies.add(task);
}
@@ -547,7 +583,7 @@ else if (dep.equals(winnerStart)) {
if (winnerEnd != null && winnerStart != null) {
if (task.getEndTime().isBefore(task.getStartTime())) {
Instant newEndTime = task.getStartTime().plus(12, ChronoUnit.HOURS);
- setTaskDuration(task, task.getStartTime(), newEndTime);
+ this.setTaskDuration(task, task.getStartTime(), newEndTime);
taskComputationService.updateEndTime(task, newEndTime.minus(1, ChronoUnit.MINUTES));
this.feedbackMessageService.addFeedbackMessage(new Message("Task dependencies overlap.", MessageLevel.ERROR));
}
@@ -563,75 +599,50 @@ private boolean isMilestone(Task task) {
}
private int startAdjustmentMinutes(Task sourceTask) {
- if (isMilestone(sourceTask)) {
+ if (this.isMilestone(sourceTask)) {
return 0;
- }
- else {
+ } else {
return 1;
}
}
private int endAdjustmentMinutes(Task sourceTask, Task targetTask) {
int adjustment = 0;
- if (isMilestone(sourceTask)) {
+ if (this.isMilestone(sourceTask)) {
adjustment--;
}
- if (isMilestone(targetTask)) {
+ if (this.isMilestone(targetTask)) {
adjustment++;
}
return adjustment;
}
- private static Instant getTaskStartTime(Task task) {
- if (task.isComputeStartEndDynamically()) {
- return task.getSubTasks().stream()
- .map(PepperMMJavaService::getTaskStartTime)
- .min(Instant::compareTo)
- .orElse(task.getStartTime());
- }
- return task.getStartTime();
- }
-
- private static Instant getTaskEndTime(Task task) {
- if (task.isComputeStartEndDynamically()) {
- return task.getSubTasks().stream()
- .map(PepperMMJavaService::getTaskEndTime)
- .max(Instant::compareTo)
- .orElse(task.getEndTime());
- }
- return task.getEndTime();
- }
-
/**
- * Propagates dependency updates through the hierarchy of dynamically computed
- * parent {@link Task}s.
+ * Propagates dependency updates through the hierarchy of dynamically computed parent {@link Task}s.
*
- * The parent task hierarchy is traversed recursively and
- * {@link #followMoveDependency(DependencyRelatedObject)} is invoked on each
- * parent task.
+ * The parent task hierarchy is traversed recursively and {@link #followMoveDependency(DependencyRelatedObject)} is invoked on each parent task.
*
- * @param task the task from which dependency updates are propagated
+ * @param task
+ * the task from which dependency updates are propagated
*/
public void followMoveDependenciesParent(Task task) {
if (task.eContainer() instanceof Task parentTask) {
if (parentTask.isComputeStartEndDynamically()) {
- followMoveDependency(parentTask);
- followMoveDependenciesParent(parentTask);
+ this.followMoveDependency(parentTask);
+ this.followMoveDependenciesParent(parentTask);
}
}
}
/**
- * Recalculates and updates the start and end dates of the specified target {@link Task}
- * according to the given {@link DependencyLink}.
+ * Recalculates and updates the start and end dates of the specified target {@link Task} according to the given {@link DependencyLink}.
*
- * The task duration is preserved during the calculation. Only the start and
- * end instants are shifted to satisfy the dependency constraints.
+ * The task duration is preserved during the calculation. Only the start and end instants are shifted to satisfy the dependency constraints.
*
- * @param task the target {@link Task} whose start and end dates must be updated
- * according to the dependency
- * @param dep the {@link DependencyLink} defining the relationship between the source
- * and the target tasks, including the dependency type and delay
+ * @param task
+ * the target {@link Task} whose start and end dates must be updated according to the dependency
+ * @param dep
+ * the {@link DependencyLink} defining the relationship between the source and the target tasks, including the dependency type and delay
*/
private void setTaskNewDates(Task task, DependencyLink dep) {
Task bestSourceTask = (Task) dep.getSource();
@@ -644,29 +655,21 @@ private void setTaskNewDates(Task task, DependencyLink dep) {
StartOrEnd targetStartOrEnd = dep.getTargetKind();
if (sourceStartOrEnd == StartOrEnd.END && targetStartOrEnd == StartOrEnd.START) {
Instant newTaskStart = sourceEnd.plus(delay, ChronoUnit.HOURS)
- .plus(startAdjustmentMinutes(bestSourceTask), ChronoUnit.MINUTES);
- Instant newTaskEnd = Instant.ofEpochSecond(newTaskStart.getEpochSecond() + oldTaskEnd.getEpochSecond() - oldTaskStart.getEpochSecond());
- taskComputationService.updateEndTime(task, newTaskEnd);
+ .plus(this.startAdjustmentMinutes(bestSourceTask), ChronoUnit.MINUTES);
taskComputationService.updateStartTime(task, newTaskStart);
} else if (sourceStartOrEnd == StartOrEnd.START && targetStartOrEnd == StartOrEnd.START) {
Instant newTaskStart = sourceStart.plus(delay, ChronoUnit.HOURS);
- Instant newTaskEnd = Instant.ofEpochSecond(newTaskStart.getEpochSecond() + oldTaskEnd.getEpochSecond() - oldTaskStart.getEpochSecond());
- taskComputationService.updateEndTime(task, newTaskEnd);
taskComputationService.updateStartTime(task, newTaskStart);
} else if (sourceStartOrEnd == StartOrEnd.END && targetStartOrEnd == StartOrEnd.END) {
Instant newTaskEnd = sourceEnd.plus(delay, ChronoUnit.HOURS)
- .plus(endAdjustmentMinutes(bestSourceTask, task), ChronoUnit.MINUTES);
- Instant newTaskStart = Instant.ofEpochSecond(newTaskEnd.getEpochSecond() - (oldTaskEnd.getEpochSecond() - oldTaskStart.getEpochSecond()));
+ .plus(this.endAdjustmentMinutes(bestSourceTask, task), ChronoUnit.MINUTES);
taskComputationService.updateEndTime(task, newTaskEnd);
- taskComputationService.updateStartTime(task, newTaskStart);
} else if (sourceStartOrEnd == StartOrEnd.START && targetStartOrEnd == StartOrEnd.END) {
Instant newTaskEnd = sourceStart.plus(delay, ChronoUnit.HOURS).minus(1, ChronoUnit.MINUTES);
- if (isMilestone(task)) {
+ if (this.isMilestone(task)) {
newTaskEnd = newTaskEnd.plus(1, ChronoUnit.MINUTES);
}
- Instant newTaskStart = Instant.ofEpochSecond(newTaskEnd.getEpochSecond() - (oldTaskEnd.getEpochSecond() - oldTaskStart.getEpochSecond()));
taskComputationService.updateEndTime(task, newTaskEnd);
- taskComputationService.updateStartTime(task, newTaskStart);
}
}
@@ -682,14 +685,14 @@ private void setTaskNewEndDate(Task task, DependencyLink dep) {
Instant newTaskEnd = task.getEndTime();
if (sourceStartOrEnd == StartOrEnd.END) {
newTaskEnd = sourceEnd.plus(delay, ChronoUnit.HOURS)
- .plus(endAdjustmentMinutes(bestSourceTask, task), ChronoUnit.MINUTES);
+ .plus(this.endAdjustmentMinutes(bestSourceTask, task), ChronoUnit.MINUTES);
} else if (sourceStartOrEnd == StartOrEnd.START) {
newTaskEnd = sourceStart.plus(delay, ChronoUnit.HOURS).minus(1, ChronoUnit.MINUTES);
- if (isMilestone(task)) {
+ if (this.isMilestone(task)) {
newTaskEnd = newTaskEnd.plus(1, ChronoUnit.MINUTES);
}
}
- setTaskDuration(task, task.getStartTime(), newTaskEnd);
+ this.setTaskDuration(task, task.getStartTime(), newTaskEnd);
taskComputationService.updateEndTime(task, newTaskEnd);
}
@@ -705,11 +708,11 @@ private void setTaskNewStartDate(Task task, DependencyLink dep) {
Instant newTaskStart = task.getStartTime();
if (sourceStartOrEnd == StartOrEnd.END) {
newTaskStart = sourceEnd.plus(delay, ChronoUnit.HOURS)
- .plus(startAdjustmentMinutes(bestSourceTask), ChronoUnit.MINUTES);
+ .plus(this.startAdjustmentMinutes(bestSourceTask), ChronoUnit.MINUTES);
} else if (sourceStartOrEnd == StartOrEnd.START) {
newTaskStart = sourceStart.plus(delay, ChronoUnit.HOURS);
}
- setTaskDuration(task, task.getStartTime(), newTaskStart);
+ this.setTaskDuration(task, task.getStartTime(), newTaskStart);
taskComputationService.updateStartTime(task, newTaskStart);
}
@@ -740,23 +743,19 @@ private void setWorkpackageNewDates(Workpackage workpackage, DependencyLink depe
if (sourceStartOrEnd == StartOrEnd.END && targetStartOrEnd == StartOrEnd.START) {
LocalDate newWorkpackageStart = sourceEnd.plusDays(delay);
LocalDate newWorkpackageEnd = newWorkpackageStart.plusDays(duration);
- workpackageComputationService.updateEndDate(workpackage, newWorkpackageEnd);
workpackageComputationService.updateStartDate(workpackage, newWorkpackageStart);
} else if (sourceStartOrEnd == StartOrEnd.START && targetStartOrEnd == StartOrEnd.START) {
LocalDate newWorkpackageStart = sourceStart.plusDays(delay);
LocalDate newWorkpackageEnd = newWorkpackageStart.plusDays(duration);
- workpackageComputationService.updateEndDate(workpackage, newWorkpackageEnd);
workpackageComputationService.updateStartDate(workpackage, newWorkpackageStart);
} else if (sourceStartOrEnd == StartOrEnd.END && targetStartOrEnd == StartOrEnd.END) {
LocalDate newWorkpackageEnd = sourceEnd.plusDays(delay);
LocalDate newWorkpackageStart = newWorkpackageEnd.minusDays(duration);
workpackageComputationService.updateEndDate(workpackage, newWorkpackageEnd);
- workpackageComputationService.updateStartDate(workpackage, newWorkpackageStart);
} else if (sourceStartOrEnd == StartOrEnd.START && targetStartOrEnd == StartOrEnd.END) {
LocalDate newWorkpackageEnd = sourceStart.plusDays(delay);
LocalDate newWorkpackageStart = newWorkpackageEnd.minusDays(duration);
workpackageComputationService.updateEndDate(workpackage, newWorkpackageEnd);
- workpackageComputationService.updateStartDate(workpackage, newWorkpackageStart);
}
}
@@ -803,17 +802,6 @@ private void setWorkpackageNewStartDate(Workpackage workpackage, DependencyLink
workpackageComputationService.updateStartDate(workpackage, newWorkpackageStart);
}
- private static Instant getlaterInstant(DependencyLink dep) {
- Instant laterInstant = null;
- Task source = (Task) dep.getSource();
- if (dep.getSourceKind() == StartOrEnd.END) {
- laterInstant = getTaskEndTime(source).plus(dep.getDuration(), ChronoUnit.HOURS);
- } else if (dep.getSourceKind() == StartOrEnd.START) {
- laterInstant = getTaskStartTime(source).plus(dep.getDuration(), ChronoUnit.HOURS);
- }
- return laterInstant;
- }
-
private LocalDate getlaterLocalDate(DependencyLink dep) {
LocalDate laterLocalDate = null;
Workpackage source = (Workpackage) dep.getSource();
@@ -825,10 +813,9 @@ private LocalDate getlaterLocalDate(DependencyLink dep) {
return laterLocalDate;
}
-
public void editDependencyLinkDuration(DependencyLink depLink, int newDuration) {
depLink.setDuration(newDuration);
- followMoveDependency(depLink.getSource());
+ this.followMoveDependency(depLink.getSource());
}
public List getTasksWithTag(TaskTag tag, Workpackage workpackage) {
@@ -915,15 +902,14 @@ public void moveTaskIntoTarget(Task sourceTask, EObject target, int indexInTarge
}
}
-
public void createWorkpackage(EObject context) {
Workpackage newWorkpackage = PepperFactory.eINSTANCE.createWorkpackage();
newWorkpackage.setName("New Workpackage");
if (context instanceof Workpackage workpackage) {
// The new task follows the context task and has the same duration than the context task.
if (workpackage.getEndDate() != null && workpackage.getStartDate() != null) {
- workpackageComputationService.updateStartDate(newWorkpackage, workpackage.getEndDate().plusDays(1));
- workpackageComputationService.updateEndDate(newWorkpackage, workpackage.getEndDate().plusDays(workpackage.getEndDate().toEpochDay() - workpackage.getStartDate().toEpochDay() + 1));
+ workpackageComputationService.updateStartDate(newWorkpackage, workpackage.getEndDate());
+ workpackageComputationService.updateEndDate(newWorkpackage, workpackage.getEndDate().plusDays(workpackage.getEndDate().toEpochDay() - workpackage.getStartDate().toEpochDay()));
}
EObject parent = context.eContainer();
@@ -981,7 +967,7 @@ public void editWorkpackage(EObject eObject, String name, String description, Lo
workpackageComputationService.updateEndDate(workpackage, endDate);
}
if (!startDateControlledByDependency || !endDateControlledByDependency) {
- followMoveDependency(workpackage);
+ this.followMoveDependency(workpackage);
}
}
}
@@ -1047,12 +1033,13 @@ private void moveTaskInSubTasks(Task sourceTask, int indexInTarget, Task targetT
}
public Task moveTaskInTag(Task moveTask, int index, TaskTag targetTag) {
- Optional workPackageOpt = getParent(moveTask, Workpackage.class);
+ Optional workPackageOpt = this.getParent(moveTask, Workpackage.class);
if (workPackageOpt.isPresent()) {
// We retrieve all tasks with the same tag (in the same lane).
List allTaskInTheLane = this.getTasksWithTag(targetTag, workPackageOpt.get());
- Optional firstTaskAfterTheDroppedTaskWithSameParent = allTaskInTheLane.subList(index, allTaskInTheLane.size()).stream().filter(task -> task.eContainer().equals(moveTask.eContainer())).findFirst();
+ Optional firstTaskAfterTheDroppedTaskWithSameParent = allTaskInTheLane.subList(index, allTaskInTheLane.size()).stream()
+ .filter(task -> task.eContainer().equals(moveTask.eContainer())).findFirst();
List tasksBeforeTheDroppedTaskWithSameParent = allTaskInTheLane.subList(0, index).stream().filter(task -> task.eContainer().equals(moveTask.eContainer())).toList();
Optional lastTaskBeforeTheDroppedTaskWithSameParent = Optional.empty();
@@ -1124,8 +1111,7 @@ public void moveTagAtIndex(TaskTag movedTag, int index) {
}
/**
- * When a lane is moved, we change the underlying tag ordering. We need to compute the new index in the project tag
- * list.
+ * When a lane is moved, we change the underlying tag ordering. We need to compute the new index in the project tag list.
*
* @param tag
* the tag to move.
@@ -1135,8 +1121,7 @@ public void moveTagAtIndex(TaskTag movedTag, int index) {
* the current deck representation tag list (might be a sub set of the project tag list).
* @param tagFolder
* the TagFolder owning the tags.
- * @return the index on which the tag should be moved in the project tag list to match the new index in the deck
- * representation.
+ * @return the index on which the tag should be moved in the project tag list to match the new index in the deck representation.
*/
private int computeIndexOfTagToMove(TaskTag tag, int index, List tagList, TagFolder tagFolder) {
int newIndex;
diff --git a/backend/pepper-starter/src/main/java/pepper/starter/services/representations/gantt/ViewGanttDescriptionBuilder.java b/backend/pepper-starter/src/main/java/pepper/starter/services/representations/gantt/ViewGanttDescriptionBuilder.java
index 762c995..6e0b445 100644
--- a/backend/pepper-starter/src/main/java/pepper/starter/services/representations/gantt/ViewGanttDescriptionBuilder.java
+++ b/backend/pepper-starter/src/main/java/pepper/starter/services/representations/gantt/ViewGanttDescriptionBuilder.java
@@ -127,7 +127,7 @@ private CreateTaskDependencyTool createTaskDependencyTool() {
return new GanttBuilders().newCreateTaskDependencyTool()
.name("Create Task Dependency")
.body(new ChangeContextBuilder()
- .expression("aql:targetObject.createDependencyLink(sourceObject, sourceStartOrEnd, targetStartOrEnd)")
+ .expression("aql:sourceObject.createDependencyLink(targetObject, sourceStartOrEnd, targetStartOrEnd)")
.build())
.build();
}
diff --git a/backend/pepper-starter/src/test/java/pepper/starter/configuration/view/PepperMMJavaServiceTests.java b/backend/pepper-starter/src/test/java/pepper/starter/configuration/view/PepperMMJavaServiceTests.java
index 5d8c005..586d54d 100644
--- a/backend/pepper-starter/src/test/java/pepper/starter/configuration/view/PepperMMJavaServiceTests.java
+++ b/backend/pepper-starter/src/test/java/pepper/starter/configuration/view/PepperMMJavaServiceTests.java
@@ -40,6 +40,7 @@
import pepper.peppermm.TagFolder;
import pepper.peppermm.Task;
import pepper.peppermm.TaskTag;
+import pepper.peppermm.TaskTimeBoundariesConstraint;
import pepper.peppermm.Workpackage;
import pepper.starter.services.representations.PepperMMJavaService;
@@ -58,10 +59,17 @@ public class PepperMMJavaServiceTests {
.atZone(ZoneId.systemDefault());
private static final String ZONE = ZONED_DATE_TIME.getOffset().toString();
- private static final String DATE2024_01_01_T00_00_00 = "2024-01-01T00:00:00" + ZONE;
- private static final String DATE2024_01_01_T23_59_00 = "2024-01-01T23:59:00" + ZONE;
- private static final String DATE2024_01_02_T00_00_00 = "2024-01-02T00:00:00" + ZONE;
- private static final String DATE2024_01_02_T23_59_00 = "2024-01-02T23:59:00" + ZONE;
+ private static final String MONDAY_2026_01_05_T00_00_00 = "2026-01-05T00:00:00" + ZONE;
+ private static final String MONDAY_2026_01_05_T23_59_00 = "2026-01-05T23:59:00" + ZONE;
+ private static final String TUESDAY_2026_01_06_T00_00_00 = "2026-01-06T00:00:00" + ZONE;
+ private static final String TUESDAY_2026_01_06_T23_59_00 = "2026-01-06T23:59:00" + ZONE;
+
+
+ private static final LocalDate MONDAY_20260105 = LocalDate.ofYearDay(2026, 5);
+ private static final LocalDate TUESDAY_20260106 = LocalDate.ofYearDay(2026, 6);
+ private static final LocalDate WEDNESDAY_20260107 = LocalDate.ofYearDay(2026, 7);
+ private static final LocalDate THURSDAY_20260108 = LocalDate.ofYearDay(2026, 8);
+ private static final LocalDate FRIDAY_20260109 = LocalDate.ofYearDay(2026, 9);
private final Workpackage workpackage = PepperFactory.eINSTANCE.createWorkpackage();
@@ -87,77 +95,84 @@ public void editTask() {
taskComputationService.updateEndTime(task, Instant.now());
workpackage.getOwnedTasks().add(task);
var service = new PepperMMJavaService(new IFeedbackMessageService.NoOp(), new TaskComputationService(), new WorkpackageComputationService());
- service.editTask(task, NEW_NAME, NEW_DESCRIPTION, Instant.parse(DATE2024_01_01_T00_00_00), Instant.parse(DATE2024_01_01_T23_59_00), 10, false);
+ service.editTask(task, NEW_NAME, NEW_DESCRIPTION, Instant.parse(MONDAY_2026_01_05_T00_00_00), Instant.parse(MONDAY_2026_01_05_T23_59_00), 10, false);
assertThat(task.getName()).isEqualTo(NEW_NAME);
assertThat(task.getDescription()).isEqualTo(NEW_DESCRIPTION);
- assertThat(task.getStartTime()).isEqualTo(Instant.parse(DATE2024_01_01_T00_00_00));
- assertThat(task.getEndTime()).isEqualTo(Instant.parse(DATE2024_01_01_T23_59_00));
+ assertThat(task.getStartTime()).isEqualTo(Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ assertThat(task.getEndTime()).isEqualTo(Instant.parse(MONDAY_2026_01_05_T23_59_00));
assertThat(task.getProgress()).isEqualTo(10);
}
@Test
public void editTaskWithDependency() {
- Task task = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task, Instant.parse(DATE2024_01_01_T23_59_00));
+ Task task1 = PepperFactory.eINSTANCE.createTask();
+ taskComputationService.updateStartTime(task1, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task1, Instant.parse(MONDAY_2026_01_05_T23_59_00));
- Task taskDependency = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(taskDependency, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(taskDependency, Instant.parse(DATE2024_01_01_T23_59_00));
- Task masterTask = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(masterTask, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(masterTask, Instant.parse(DATE2024_01_01_T23_59_00));
+ Task task2 = PepperFactory.eINSTANCE.createTask();
+ task2.setCalculationOption(TaskTimeBoundariesConstraint.START_DURATION);
+ taskComputationService.updateStartTime(task2, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateDuration(task2, 24);
- workpackage.getOwnedTasks().add(task);
- workpackage.getOwnedTasks().add(taskDependency);
- workpackage.getOwnedTasks().add(masterTask);
+ Task task3 = PepperFactory.eINSTANCE.createTask();
+ task3.setCalculationOption(TaskTimeBoundariesConstraint.START_DURATION);
+ taskComputationService.updateStartTime(task3, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateDuration(task3, 24);
+
+ workpackage.getOwnedTasks().add(task3);
+ workpackage.getOwnedTasks().add(task2);
+ workpackage.getOwnedTasks().add(task1);
DependencyLink dependencyLinkOfTask = PepperFactory.eINSTANCE.createDependencyLink();
dependencyLinkOfTask.setDuration(0);
dependencyLinkOfTask.setTargetKind(pepper.peppermm.StartOrEnd.START);
dependencyLinkOfTask.setSourceKind(pepper.peppermm.StartOrEnd.END);
- dependencyLinkOfTask.setSource(taskDependency);
- task.getDependencies().add(dependencyLinkOfTask);
+ dependencyLinkOfTask.setSource(task2);
+ task3.getDependencies().add(dependencyLinkOfTask);
DependencyLink dependencyLinkOfTaskDependency = PepperFactory.eINSTANCE.createDependencyLink();
dependencyLinkOfTaskDependency.setDuration(0);
dependencyLinkOfTaskDependency.setTargetKind(pepper.peppermm.StartOrEnd.START);
dependencyLinkOfTaskDependency.setSourceKind(pepper.peppermm.StartOrEnd.END);
- dependencyLinkOfTaskDependency.setSource(masterTask);
- taskDependency.getDependencies().add(dependencyLinkOfTaskDependency);
+ dependencyLinkOfTaskDependency.setSource(task1);
+ task2.getDependencies().add(dependencyLinkOfTaskDependency);
var service = new PepperMMJavaService(new IFeedbackMessageService.NoOp(), new TaskComputationService(), new WorkpackageComputationService());
- service.editTask(taskDependency, null, null, Instant.parse(DATE2024_01_02_T00_00_00), Instant.parse(DATE2024_01_02_T00_00_00).plus(1, ChronoUnit.DAYS), null, false);
- assertThat(taskDependency.getStartTime()).isEqualTo(Instant.parse(DATE2024_01_01_T00_00_00));
- assertThat(taskDependency.getEndTime()).isEqualTo(Instant.parse(DATE2024_01_01_T23_59_00));
-
- service.editTask(masterTask, null, null, Instant.parse(DATE2024_01_02_T00_00_00), Instant.parse(DATE2024_01_02_T00_00_00).plus(1, ChronoUnit.DAYS), null, false);
- assertThat(masterTask.getStartTime()).isEqualTo(DATE2024_01_02_T00_00_00);
- assertThat(masterTask.getEndTime()).isEqualTo(DATE2024_01_02_T23_59_00);
- assertThat(taskDependency.getStartTime()).isEqualTo(masterTask.getEndTime().plus(1, ChronoUnit.MINUTES));
- assertThat(taskDependency.getEndTime()).isEqualTo(masterTask.getEndTime().plus(1, ChronoUnit.DAYS));
+ service.editTask(task2, null, null, Instant.parse(TUESDAY_2026_01_06_T00_00_00), Instant.parse(TUESDAY_2026_01_06_T00_00_00).plus(1, ChronoUnit.DAYS), null, false);
+ assertThat(task2.getStartTime()).isEqualTo(Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ assertThat(task2.getEndTime()).isEqualTo(Instant.parse(MONDAY_2026_01_05_T23_59_00));
+
+ service.editTask(task1, null, null, Instant.parse(TUESDAY_2026_01_06_T00_00_00), Instant.parse(TUESDAY_2026_01_06_T00_00_00).plus(1, ChronoUnit.DAYS), null, false);
+ assertThat(task1.getStartTime()).isEqualTo(TUESDAY_2026_01_06_T00_00_00);
+ assertThat(task1.getEndTime()).isEqualTo(TUESDAY_2026_01_06_T23_59_00);
+ assertThat(task2.getStartTime()).isEqualTo(task1.getEndTime().plus(1, ChronoUnit.MINUTES));
+ assertThat(task2.getEndTime()).isEqualTo(task1.getEndTime().plus(1, ChronoUnit.DAYS));
// Verify transitive dependency propagation
- assertThat(task.getStartTime()).isEqualTo(taskDependency.getEndTime().plus(1, ChronoUnit.MINUTES));
- assertThat(task.getEndTime()).isEqualTo(taskDependency.getEndTime().plus(1, ChronoUnit.DAYS));
+ assertThat(task3.getStartTime()).isEqualTo(task2.getEndTime().plus(1, ChronoUnit.MINUTES));
+ assertThat(task3.getEndTime()).isEqualTo(task2.getEndTime().plus(1, ChronoUnit.DAYS));
}
@Test
public void editSubTaskOfDynamicTaskWithDependency() {
Task task1 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task1, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task1, Instant.parse(DATE2024_01_01_T23_59_00));
+ task1.setCalculationOption(TaskTimeBoundariesConstraint.START_END);
+ taskComputationService.updateStartTime(task1, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task1, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task task2 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task2, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task2, Instant.parse(DATE2024_01_01_T23_59_00));
+ task2.setCalculationOption(TaskTimeBoundariesConstraint.START_END);
+ taskComputationService.updateStartTime(task2, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task2, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task task3 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task3, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task3, Instant.parse(DATE2024_01_01_T23_59_00));
+ task3.setCalculationOption(TaskTimeBoundariesConstraint.START_END);
+ taskComputationService.updateStartTime(task3, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task3, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task task31 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task31, Instant.parse(DATE2024_01_02_T00_00_00));
- taskComputationService.updateEndTime(task31, Instant.parse(DATE2024_01_02_T23_59_00));
+ task31.setCalculationOption(TaskTimeBoundariesConstraint.START_END);
+ taskComputationService.updateStartTime(task31, Instant.parse(TUESDAY_2026_01_06_T00_00_00));
+ taskComputationService.updateEndTime(task31, Instant.parse(TUESDAY_2026_01_06_T23_59_00));
workpackage.getOwnedTasks().add(task1);
workpackage.getOwnedTasks().add(task2);
@@ -177,7 +192,7 @@ public void editSubTaskOfDynamicTaskWithDependency() {
service.editTask(task31, null, null, task31.getStartTime(), task31.getEndTime().plus(1, ChronoUnit.DAYS), null, true);
assertThat(task3.getSubTasks().size()).isEqualTo(1);
- assertThat(task31.getEndTime()).isEqualTo(Instant.parse(DATE2024_01_02_T23_59_00).plus(1, ChronoUnit.DAYS));
+ assertThat(task31.getEndTime()).isEqualTo(Instant.parse(TUESDAY_2026_01_06_T23_59_00).plus(1, ChronoUnit.DAYS));
assertThat(task1.getStartTime()).isEqualTo(task31.getEndTime().plus(1, ChronoUnit.MINUTES));
}
@@ -186,40 +201,41 @@ public void editSubTaskOfDynamicTaskWithDependency() {
@Test
public void createDependencyLink() {
Task task = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task, Instant.parse(DATE2024_01_01_T23_59_00));
+ task.setCalculationOption(TaskTimeBoundariesConstraint.START_DURATION);
+ taskComputationService.updateStartTime(task, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateDuration(task, 24);
Task taskDependency = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(taskDependency, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(taskDependency, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(taskDependency, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(taskDependency, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task masterTask = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(masterTask, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(masterTask, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(masterTask, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(masterTask, Instant.parse(MONDAY_2026_01_05_T23_59_00));
workpackage.getOwnedTasks().add(task);
workpackage.getOwnedTasks().add(taskDependency);
workpackage.getOwnedTasks().add(masterTask);
var service = new PepperMMJavaService(new IFeedbackMessageService.NoOp(), new TaskComputationService(), new WorkpackageComputationService());
- service.createDependencyLink(task, taskDependency, StartOrEnd.END, StartOrEnd.START);
+ service.createDependencyLink(taskDependency, task, StartOrEnd.END, StartOrEnd.START);
assertThat(task.getDependencies().size()).isEqualTo(1);
assertThat(task.getDependencies().get(0).getSource()).isEqualTo(taskDependency);
- assertThat(task.getStartTime()).isEqualTo(Instant.parse(DATE2024_01_02_T00_00_00));
- assertThat(task.getEndTime()).isEqualTo(Instant.parse(DATE2024_01_02_T23_59_00));
+ assertThat(task.getStartTime()).isEqualTo(Instant.parse(TUESDAY_2026_01_06_T00_00_00));
+ assertThat(task.getEndTime()).isEqualTo(Instant.parse(TUESDAY_2026_01_06_T23_59_00));
- service.createDependencyLink(taskDependency, masterTask, StartOrEnd.END, StartOrEnd.END);
+ service.createDependencyLink(masterTask, taskDependency, StartOrEnd.END, StartOrEnd.END);
assertThat(taskDependency.getDependencies().size()).isEqualTo(1);
assertThat(taskDependency.getDependencies().get(0).getSource()).isEqualTo(masterTask);
assertThat(taskDependency.getStartTime()).isEqualTo(masterTask.getStartTime());
assertThat(taskDependency.getEndTime()).isEqualTo(masterTask.getEndTime());
// Verify transitive dependency propagation
assertThat(task.getStartTime()).isEqualTo(taskDependency.getEndTime().plus(1, ChronoUnit.MINUTES));
- assertThat(task.getEndTime()).isEqualTo(Instant.parse(DATE2024_01_02_T23_59_00));
+ assertThat(task.getEndTime()).isEqualTo(Instant.parse(TUESDAY_2026_01_06_T23_59_00));
// Verify that cyclic dependencies are impossible
assertThat(masterTask.getDependencies()).isEmpty();
- service.createDependencyLink(masterTask, task, StartOrEnd.END, StartOrEnd.START);
+ service.createDependencyLink(task, masterTask, StartOrEnd.END, StartOrEnd.START);
assertThat(masterTask.getDependencies()).isEmpty();
}
@@ -228,16 +244,16 @@ public void createDependencyLink() {
public void deleteDependencyLink() {
Task task1 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task1, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task1, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(task1, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task1, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task task2 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task2, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task2, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(task2, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task2, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task task3 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task3, Instant.parse(DATE2024_01_02_T00_00_00));
- taskComputationService.updateEndTime(task3, Instant.parse(DATE2024_01_02_T23_59_00));
+ taskComputationService.updateStartTime(task3, Instant.parse(TUESDAY_2026_01_06_T00_00_00));
+ taskComputationService.updateEndTime(task3, Instant.parse(TUESDAY_2026_01_06_T23_59_00));
workpackage.getOwnedTasks().add(task1);
workpackage.getOwnedTasks().add(task2);
@@ -272,7 +288,7 @@ public void computeTaskDurationDays() {
var service = new PepperMMJavaService(new IFeedbackMessageService.NoOp(), new TaskComputationService(), new WorkpackageComputationService());
var result = service.computeTaskDurationDays(task);
assertThat(result).isNotNull();
- assertThat(result).isEqualTo("01d01h");
+ assertThat(result).isEqualTo("01d00h");
}
@Test
@@ -304,12 +320,12 @@ public void createCard() {
@Test
public void createTask() {
Task task11 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task11, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task11, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(task11, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task11, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task task1 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task1, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task1, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(task1, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task1, Instant.parse(MONDAY_2026_01_05_T23_59_00));
task1.getSubTasks().add(task11);
workpackage.getOwnedTasks().add(task1);
@@ -320,8 +336,8 @@ public void createTask() {
service.createTask(task1);
assertThat(task1.getSubTasks()).hasSize(2);
- assertThat(task1.getSubTasks().get(1).getStartTime()).isEqualTo(Instant.parse(DATE2024_01_02_T00_00_00));
- assertThat(task1.getSubTasks().get(1).getEndTime()).isEqualTo(Instant.parse(DATE2024_01_02_T23_59_00));
+ assertThat(task1.getSubTasks().get(1).getStartTime()).isEqualTo(Instant.parse(TUESDAY_2026_01_06_T00_00_00));
+ assertThat(task1.getSubTasks().get(1).getEndTime()).isEqualTo(Instant.parse(TUESDAY_2026_01_06_T23_59_00));
service.createTask(task11);
assertThat(task11.getSubTasks()).hasSize(1);
@@ -332,29 +348,29 @@ public void createTask() {
@Test
public void deleteTask() {
Task task11 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task11, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task11, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(task11, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task11, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task task1 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task1, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task1, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(task1, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task1, Instant.parse(MONDAY_2026_01_05_T23_59_00));
task1.getSubTasks().add(task11);
Task task2 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task2, Instant.parse(DATE2024_01_01_T00_00_00));
- taskComputationService.updateEndTime(task2, Instant.parse(DATE2024_01_01_T23_59_00));
+ taskComputationService.updateStartTime(task2, Instant.parse(MONDAY_2026_01_05_T00_00_00));
+ taskComputationService.updateEndTime(task2, Instant.parse(MONDAY_2026_01_05_T23_59_00));
Task task3 = PepperFactory.eINSTANCE.createTask();
- taskComputationService.updateStartTime(task3, Instant.parse(DATE2024_01_02_T00_00_00));
- taskComputationService.updateEndTime(task3, Instant.parse(DATE2024_01_02_T23_59_00));
+ taskComputationService.updateStartTime(task3, Instant.parse(TUESDAY_2026_01_06_T00_00_00));
+ taskComputationService.updateEndTime(task3, Instant.parse(TUESDAY_2026_01_06_T23_59_00));
workpackage.getOwnedTasks().add(task1);
workpackage.getOwnedTasks().add(task2);
workpackage.getOwnedTasks().add(task3);
var service = new PepperMMJavaService(new IFeedbackMessageService.NoOp(), new TaskComputationService(), new WorkpackageComputationService());
- service.createDependencyLink(task2, task3, StartOrEnd.END, StartOrEnd.START);
- service.createDependencyLink(task2, task11, StartOrEnd.END, StartOrEnd.START);
+ service.createDependencyLink(task3, task2, StartOrEnd.END, StartOrEnd.START);
+ service.createDependencyLink(task11, task2, StartOrEnd.END, StartOrEnd.START);
service.deleteDependencyRelatedObject(task1);
assertThat(workpackage.getOwnedTasks()).hasSize(2);
@@ -366,28 +382,28 @@ public void deleteTask() {
public void createWorkpackage() {
Project project = PepperFactory.eINSTANCE.createProject();
Workpackage projectWorkpackage = PepperFactory.eINSTANCE.createWorkpackage();
- workpackageComputationService.updateStartDate(projectWorkpackage, LocalDate.ofYearDay(2026, 1));
- workpackageComputationService.updateEndDate(projectWorkpackage, LocalDate.ofYearDay(2026, 3));
+ workpackageComputationService.updateStartDate(projectWorkpackage, MONDAY_20260105);
+ workpackageComputationService.updateEndDate(projectWorkpackage, WEDNESDAY_20260107);
project.getOwnedWorkpackages().add(projectWorkpackage);
var service = new PepperMMJavaService(new IFeedbackMessageService.NoOp(), new TaskComputationService(), new WorkpackageComputationService());
service.createWorkpackage(projectWorkpackage);
assertThat(project.getOwnedWorkpackages()).hasSize(2);
- assertThat(project.getOwnedWorkpackages().get(1).getStartDate()).isEqualTo(LocalDate.ofYearDay(2026, 4));
- assertThat(project.getOwnedWorkpackages().get(1).getEndDate()).isEqualTo(LocalDate.ofYearDay(2026, 6));
+ assertThat(project.getOwnedWorkpackages().get(1).getStartDate()).isEqualTo(WEDNESDAY_20260107);
+ assertThat(project.getOwnedWorkpackages().get(1).getEndDate()).isEqualTo(FRIDAY_20260109);
}
@Test
public void editWorkpackage() {
- workpackageComputationService.updateStartDate(workpackage, LocalDate.ofYearDay(2026, 5));
- workpackageComputationService.updateEndDate(workpackage, LocalDate.ofYearDay(2026, 8));
+ workpackageComputationService.updateStartDate(workpackage, MONDAY_20260105);
+ workpackageComputationService.updateEndDate(workpackage, TUESDAY_20260106);
var service = new PepperMMJavaService(new IFeedbackMessageService.NoOp(), new TaskComputationService(), new WorkpackageComputationService());
- service.editWorkpackage(workpackage, NEW_NAME, NEW_DESCRIPTION, LocalDate.ofYearDay(2026, 1), LocalDate.ofYearDay(2026, 3), 10, false);
+ service.editWorkpackage(workpackage, NEW_NAME, NEW_DESCRIPTION, WEDNESDAY_20260107, FRIDAY_20260109, 10, false);
assertThat(workpackage.getName()).isEqualTo(NEW_NAME);
assertThat(workpackage.getDescription()).isEqualTo(NEW_DESCRIPTION);
- assertThat(workpackage.getStartDate()).isEqualTo(LocalDate.ofYearDay(2026, 1));
- assertThat(workpackage.getEndDate()).isEqualTo(LocalDate.ofYearDay(2026, 3));
+ assertThat(workpackage.getStartDate()).isEqualTo(WEDNESDAY_20260107);
+ assertThat(workpackage.getEndDate()).isEqualTo(FRIDAY_20260109);
assertThat(workpackage.getProgress()).isEqualTo(10);
}
diff --git a/backend/releng/pepper-resources/checkstyle/CheckstyleConfiguration.xml b/backend/releng/pepper-resources/checkstyle/CheckstyleConfiguration.xml
index ae5d25b..86bf22f 100644
--- a/backend/releng/pepper-resources/checkstyle/CheckstyleConfiguration.xml
+++ b/backend/releng/pepper-resources/checkstyle/CheckstyleConfiguration.xml
@@ -170,11 +170,6 @@
-
-
-
-
-