@Override
  protected void setStartInformation(
      ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    if (!hasExecutionInterval(request)) {
      final List<ExecutionInterval> executionIntervals = getExecutionIntervalsWithCandidacyPeriod();

      if (executionIntervals.size() == 1) {
        final ExecutionInterval executionInterval = executionIntervals.iterator().next();
        final List<SecondCycleCandidacyProcess> candidacyProcesses =
            getCandidacyProcesses(executionInterval);

        if (candidacyProcesses.size() == 1) {
          final SecondCycleCandidacyProcess process = candidacyProcesses.iterator().next();
          setCandidacyProcessInformation(request, process);
          setCandidacyProcessInformation(actionForm, getProcess(request));
          request.setAttribute("candidacyProcesses", candidacyProcesses);
          ChooseDegreeBean chooseDegreeBean = getChooseDegreeBean(request);
          chooseDegreeBean.setCandidacyProcess(process);
          return;
        }
      }

      request.setAttribute("canCreateProcess", canCreateProcess(getProcessType().getName()));
      request.setAttribute("executionIntervals", executionIntervals);

    } else {
      final ExecutionInterval executionInterval = getExecutionInterval(request);
      final SecondCycleCandidacyProcess candidacyProcess =
          getCandidacyProcess(request, executionInterval);

      if (candidacyProcess != null) {
        setCandidacyProcessInformation(request, candidacyProcess);
        setCandidacyProcessInformation(actionForm, getProcess(request));
      } else {
        final List<SecondCycleCandidacyProcess> candidacyProcesses =
            getCandidacyProcesses(executionInterval);

        if (candidacyProcesses.size() == 1) {
          final SecondCycleCandidacyProcess process = candidacyProcesses.iterator().next();
          setCandidacyProcessInformation(request, process);
          setCandidacyProcessInformation(actionForm, getProcess(request));
          request.setAttribute("candidacyProcesses", candidacyProcesses);
          ChooseDegreeBean chooseDegreeBean = getChooseDegreeBean(request);
          chooseDegreeBean.setCandidacyProcess(process);
          return;
        }

        request.setAttribute("canCreateProcess", canCreateProcess(getProcessType().getName()));
        request.setAttribute("executionIntervals", getExecutionIntervalsWithCandidacyPeriod());
      }
      request.setAttribute("candidacyProcesses", getCandidacyProcesses(executionInterval));
    }
  }
  protected void setChooseDegreeBean(HttpServletRequest request) {
    ChooseDegreeBean chooseDegreeBean =
        (ChooseDegreeBean) getObjectFromViewState("choose.degree.bean");

    if (chooseDegreeBean == null) {
      chooseDegreeBean = new ChooseDegreeBean();
    }
    final SecondCycleCandidacyProcess process = (SecondCycleCandidacyProcess) readProcess(request);
    chooseDegreeBean.setCandidacyProcess(process);

    request.setAttribute("chooseDegreeBean", chooseDegreeBean);
  }