if (!studentsList.containsAll(shiftStudents)) result.add(Cloner.get(shift));
if (!studentsList.containsAll(shiftStudents)) { final InfoShift infoShift = InfoShift.newInfoFromDomain(shift); result.add(infoShift); }
    public Object run(Integer executionCourseId, Integer distributedTestId) throws FenixServiceException {        ISuportePersistente persistentSuport;        try {            persistentSuport = PersistenceSupportFactory.getDefaultPersistenceSupport();            List studentsList = new ArrayList();            IDistributedTest distributedTest = new DistributedTest(distributedTestId);            if (distributedTestId != null) //lista de alunos que tem teste                studentsList = persistentSuport.getIPersistentStudentTestQuestion()                        .readStudentsByDistributedTest(distributedTest);            IExecutionCourse executionCourse = (IExecutionCourse) persistentSuport                    .getIPersistentExecutionCourse().readByOID(ExecutionCourse.class, executionCourseId);            if (executionCourse == null) {                throw new InvalidArgumentsServiceException();            }            List infoShiftList = persistentSuport.getITurnoPersistente().readByExecutionCourse(                    executionCourse);            Iterator itShiftList = infoShiftList.iterator();            List result = new ArrayList();            ITurnoAlunoPersistente turnoAlunoPersistente = persistentSuport.getITurnoAlunoPersistente();            while (itShiftList.hasNext()) {                IShift shift = (IShift) itShiftList.next();                List shiftStudents = turnoAlunoPersistente.readByShift(shift);                if (!studentsList.containsAll(shiftStudents))                    result.add(Cloner.get(shift));            }            return result;        } catch (ExcepcaoPersistencia e) {            throw new FenixServiceException(e);        }    }