@Override
 protected DegreeChangeIndividualCandidacyProcess executeActivity(
     DegreeChangeIndividualCandidacyProcess process, User userView, Object object) {
   process.editCandidacyHabilitations((DegreeChangeIndividualCandidacyProcessBean) object);
   process.getCandidacy().editObservations((DegreeChangeIndividualCandidacyProcessBean) object);
   process.editCandidacyInformation((DegreeChangeIndividualCandidacyProcessBean) object);
   process
       .getCandidacy()
       .setUtlStudent(((DegreeChangeIndividualCandidacyProcessBean) object).getUtlStudent());
   return process;
 }
  private static boolean isAllowedToManageProcess(
      DegreeChangeIndividualCandidacyProcess process, User userView) {
    Set<AcademicProgram> programs =
        AcademicAuthorizationGroup.getProgramsForOperation(
            userView.getPerson(), AcademicOperationType.MANAGE_INDIVIDUAL_CANDIDACIES);

    if (process == null || process.getCandidacy() == null) {
      return false;
    }

    return programs.contains(process.getCandidacy().getSelectedDegree());
  }
    @Override
    protected DegreeChangeIndividualCandidacyProcess executeActivity(
        DegreeChangeIndividualCandidacyProcess process, User userView, Object object) {
      process.getCandidacy().setState(IndividualCandidacyState.STAND_BY);

      return process;
    }
 @Override
 protected DegreeChangeIndividualCandidacyProcess executeActivity(
     DegreeChangeIndividualCandidacyProcess process, User userView, Object object) {
   DegreeChangeIndividualCandidacyResultBean bean =
       (DegreeChangeIndividualCandidacyResultBean) object;
   process.getCandidacy().setState(bean.getState());
   return process;
 }
 @Override
 protected DegreeChangeIndividualCandidacyProcess executeActivity(
     DegreeChangeIndividualCandidacyProcess process, User userView, Object object) {
   process
       .getCandidacy()
       .createRegistration(
           getDegreeCurricularPlan(process), CycleType.FIRST_CYCLE, getIngression(process));
   return process;
 }
    @Override
    protected DegreeChangeIndividualCandidacyProcess executeActivity(
        DegreeChangeIndividualCandidacyProcess process, User userView, Object object) {
      DegreeChangeIndividualCandidacyProcessBean bean =
          (DegreeChangeIndividualCandidacyProcessBean) object;
      process.editCandidacyHabilitations(bean);
      process.getCandidacy().editSelectedDegree(bean.getSelectedDegree());
      process.getCandidacy().editObservations(bean);

      process.editPrecedentDegreeInformation(bean);

      return process;
    }
 @Override
 protected DegreeChangeIndividualCandidacyProcess executeActivity(
     DegreeChangeIndividualCandidacyProcess process, User userView, Object object) {
   DegreeChangeIndividualCandidacyResultBean bean =
       (DegreeChangeIndividualCandidacyResultBean) object;
   DegreeChangeIndividualCandidacySeriesGrade degreeChangeIndividualCandidacySeriesGrade =
       process
           .getCandidacy()
           .getDegreeChangeIndividualCandidacySeriesGradeForDegree(bean.getDegree());
   degreeChangeIndividualCandidacySeriesGrade.setAffinity(bean.getAffinity());
   degreeChangeIndividualCandidacySeriesGrade.setDegreeNature(bean.getDegreeNature());
   degreeChangeIndividualCandidacySeriesGrade.setApprovedEctsRate(bean.getApprovedEctsRate());
   degreeChangeIndividualCandidacySeriesGrade.setGradeRate(bean.getGradeRate());
   degreeChangeIndividualCandidacySeriesGrade.setSeriesCandidacyGrade(
       bean.getSeriesCandidacyGrade());
   degreeChangeIndividualCandidacySeriesGrade.setState(bean.getSeriesGradeState());
   return process;
 }