package ru.khasang.cachoeira.commands.task;
import ru.khasang.cachoeira.commands.Command;
import ru.khasang.cachoeira.model.ITask;
import java.time.LocalDate;
public class SetTaskStartAndFinishDateCommand implements Command {
private final ITask task;
private final LocalDate startDate;
private final long taskWidthInDays;
private LocalDate oldStartDate;
private LocalDate oldFinishDate;
public SetTaskStartAndFinishDateCommand(ITask task, LocalDate startDate, long taskWidthInDays) {
this.task = task;
this.startDate = startDate;
this.taskWidthInDays = taskWidthInDays;
}
@Override
public void execute() {
oldStartDate = task.getStartDate();
oldFinishDate = task.getFinishDate();
task.setStartDateAndVerify(startDate);
task.setFinishDateAndVerify(startDate.plusDays(taskWidthInDays));
}
@Override
public void undo() {
task.setStartDateAndVerify(oldStartDate);
task.setFinishDateAndVerify(oldFinishDate);
}
}