public Sprint createNextSprint() { Sprint sprint = sprintDao.newEntityInstance(); sprint.setProject(this); sprint.setLabel("Next Sprint"); if (isCurrentSprintSet()) { sprint.setBegin(getCurrentSprint().getEnd()); Integer length = getCurrentSprint().getLengthInDays(); if (length != null) sprint.setEnd(sprint.getBegin().addDays(length)); } sprintDao.saveEntity(sprint); setNextSprint(sprint); return sprint; }
public void switchToNextSprint() { Sprint oldSprint = getCurrentSprint(); oldSprint.close(); oldSprint.setEnd(Date.today()); getCurrentSprintSnapshot().update(); Sprint newSprint = getNextSprint(); if (newSprint == null) newSprint = createNextSprint(); if (!newSprint.isBeginSet() || newSprint.getBegin().isPast()) newSprint.setBegin(Date.today()); if (!newSprint.isEndSet() || newSprint.getEnd().isBeforeOrSame(newSprint.getBegin())) newSprint.setEnd(newSprint.getBegin().addDays(oldSprint.getLengthInDays())); setCurrentSprint(newSprint); createNextSprint(); createSprintSnapshot(); for (Task task : oldSprint.getTasks()) { if (task.isClosed()) { taskDao.deleteEntity(task); } } }