IEnrolment enrollment = (IEnrolment) obj;
IEnrollment enrollment = (IEnrollment) obj;
	protected Object execute(Object object) throws FenixServiceException	{		List input = (List) object;				Integer fromStudentCurricularPlanID = (Integer) input.get(0);		Integer toStudentCurricularPlanID = (Integer) input.get(1);		Integer studentNumber = (Integer) input.get(2);		TipoCurso degreeType = (TipoCurso) input.get(3);				List output = new ArrayList();		try		{			ISuportePersistente persistenceDAO = SuportePersistenteOJB.getInstance();			IStudentCurricularPlanPersistente studentCurricularPlanDAO = persistenceDAO.getIStudentCurricularPlanPersistente();			final IStudentCurricularPlan fromStudentCurricularPlan = (IStudentCurricularPlan) studentCurricularPlanDAO.readByOID(				StudentCurricularPlan.class, fromStudentCurricularPlanID);			final IStudentCurricularPlan toStudentCurricularPlan = (IStudentCurricularPlan) studentCurricularPlanDAO.readByOID(				StudentCurricularPlan.class, toStudentCurricularPlanID);			List enrollmentsThatMayGiveEquivalences = (List) CollectionUtils.select(fromStudentCurricularPlan.getEnrolments(),				new Predicate()			{				public boolean evaluate(Object obj)				{					IEnrolment enrollment = (IEnrolment) obj;					return (isAnAprovedEnrollment(enrollment) && isAnEnrollmentWithNoEquivalences(enrollment,							toStudentCurricularPlan.getDegreeCurricularPlan(), fromStudentCurricularPlan));				}			});			List aprovedAndEnrolledEnrollments = (List) CollectionUtils.select(				toStudentCurricularPlan.getEnrolments(), new Predicate()			{				public boolean evaluate(Object obj)				{					IEnrolment enrollment = (IEnrolment) obj;					return (isAnAprovedEnrollment(enrollment) || isAnEnroledEnrollment(enrollment));				}			});			final List aprovedAndEnrolledCurricularCourses = (List) CollectionUtils.collect(				aprovedAndEnrolledEnrollments, new Transformer()			{				public Object transform(Object obj)				{					IEnrolment enrollment = (IEnrolment) obj;					return enrollment.getCurricularCourse();				}			});			List curricularCoursesThatMayGetEquivalences = (List) CollectionUtils.select(				toStudentCurricularPlan.getDegreeCurricularPlan().getCurricularCourses(), new Predicate()			{				public boolean evaluate(Object obj)				{					ICurricularCourse curricularCourse = (ICurricularCourse) obj;					return !aprovedAndEnrolledCurricularCourses.contains(curricularCourse);				}			});			output.add(0, enrollmentsThatMayGiveEquivalences);			output.add(1, curricularCoursesThatMayGetEquivalences);			output.add(2, getActiveStudentCurricularPlan(studentNumber, degreeType));		} catch (ExcepcaoPersistencia e)		{			throw new FenixServiceException(e);		}		return output;	}