public void validateResponsibleForList(
      Teacher teacher, ExecutionCourse executionCourse, Professorship responsibleForAdded)
      throws MaxResponsibleForExceed, InvalidCategory {

    List responsibleFors = executionCourse.responsibleFors();

    if ((!responsibleFors.contains(responsibleForAdded))
        && (responsibleFors.size() >= MAX_RESPONSIBLEFOR_BY_EXECUTION_COURSE)) {
      List infoResponsibleFors =
          (List)
              CollectionUtils.collect(
                  responsibleFors,
                  new Transformer() {

                    @Override
                    public Object transform(Object input) {
                      Professorship responsibleFor = (Professorship) input;
                      InfoProfessorship infoResponsibleFor =
                          InfoProfessorship.newInfoFromDomain(responsibleFor);
                      return infoResponsibleFor;
                    }
                  });

      InfoExecutionCourse infoExecutionCourse =
          InfoExecutionCourse.newInfoFromDomain(executionCourse);
      throw new MaxResponsibleForExceed(infoExecutionCourse, infoResponsibleFors);
    }
  }