public TaskStatus calculateOrderStatus(List<Task> tasks) { // All tasks completed → order completed if (areAllTasksCompleted(tasks)) { return TaskStatus.COMPLETED; } // At least one task started → order in preparation if (hasAnyTaskStarted(tasks)) { return TaskStatus.IN_PREPARATION; } // No tasks started → order pending return TaskStatus.PENDING;}
GetOrderStatusPort getOrderStatus = new GetOrderStatusUseCase( taskRepository, orderStatusCalculator);// Check status of order #42TaskStatus status = getOrderStatus.execute(42L);switch (status) { case PENDING: System.out.println("Order is waiting to be prepared"); break; case IN_PREPARATION: System.out.println("Order is being prepared"); break; case COMPLETED: System.out.println("Order is ready for delivery"); break;}