List<Registration> students = rootDomainObject.getStudents();
List<Registration> students = rootDomainObject.getRegistrations();
    public void run(Integer teacherID, Integer executionPeriodID, final Integer studentNumber,            Double percentage, AdviseType adviseType, RoleType roleType) throws ExcepcaoPersistencia, FenixServiceException {        Teacher teacher = rootDomainObject.readTeacherByOID(teacherID);        ExecutionPeriod executionPeriod = rootDomainObject.readExecutionPeriodByOID(executionPeriodID);        List<Registration> students = rootDomainObject.getStudents();        Registration registration = (Registration) CollectionUtils.find(students, new Predicate() {            public boolean evaluate(Object arg0) {                Registration tempStudent = (Registration) arg0;                return tempStudent.getNumber().equals(studentNumber);            }        });        if (registration == null) {            throw new FenixServiceException("errors.invalid.student-number");        }        TeacherService teacherService = teacher.getTeacherServiceByExecutionPeriod(executionPeriod);        if (teacherService == null) {            teacherService = new TeacherService(teacher, executionPeriod);        }        List<Advise> advises = registration.getAdvisesByTeacher(teacher);        Advise advise = null;        if (advises == null || advises.isEmpty()) {            advise = new Advise(teacher, registration, adviseType, executionPeriod, executionPeriod);        } else {            advise = advises.iterator().next();        }        TeacherAdviseService teacherAdviseService = advise.getTeacherAdviseServiceByExecutionPeriod(executionPeriod);        if (teacherAdviseService == null) {            teacherAdviseService = new TeacherAdviseService(teacherService, advise, percentage, roleType);        } else {            teacherAdviseService.updatePercentage(percentage, roleType);        }    }