@Atomic
  public static void run(InfoShift infoShift, List<String> schoolClassOIDs)
      throws FenixServiceException {
    check(RolePredicates.RESOURCE_ALLOCATION_MANAGER_PREDICATE);

    final Shift shift = FenixFramework.getDomainObject(infoShift.getExternalId());
    if (shift == null) {
      throw new InvalidArgumentsServiceException();
    }

    for (final String schoolClassOID : schoolClassOIDs) {
      final SchoolClass schoolClass = FenixFramework.getDomainObject(schoolClassOID);
      if (schoolClass == null) {
        throw new InvalidArgumentsServiceException();
      }

      shift.associateSchoolClass(schoolClass);
    }
  }