try { return Cloner.get((IExecutionCourse) arg0); } catch (ExcepcaoPersistencia e) { throw new RuntimeException(); }
return Cloner.get((IExecutionCourse) arg0);
    public List run(Integer degreeId, Integer executionPeriodId) throws FenixServiceException    {        try        {            ISuportePersistente ps = SuportePersistenteOJB.getInstance();            IPersistentExecutionPeriod persistentExecutionPeriod = ps.getIPersistentExecutionPeriod();            ICursoPersistente persistentDegree = ps.getICursoPersistente();            IExecutionPeriod executionPeriod = new ExecutionPeriod(executionPeriodId);            final IExecutionPeriod executionPeriod2Compare =                (IExecutionPeriod) persistentExecutionPeriod.readByOId(executionPeriod, false);            if (executionPeriod2Compare == null)            {                throw new InvalidArgumentsServiceException();            }            ICurso degree = new Curso(degreeId);            degree = (ICurso) persistentDegree.readByOId(degree, false);            if (degree == null)            {                throw new InvalidArgumentsServiceException();            }            List curricularPlans = degree.getDegreeCurricularPlans();            Iterator iter = curricularPlans.iterator();            List curricularCourses = new ArrayList();            while (iter.hasNext())            {                IDegreeCurricularPlan degreeCurricularPlan = (IDegreeCurricularPlan) iter.next();                curricularCourses.addAll(degreeCurricularPlan.getCurricularCourses());            }            List executionCourses = new ArrayList();            iter = curricularCourses.iterator();            while (iter.hasNext())            {                ICurricularCourse curricularCourse = (ICurricularCourse) iter.next();                executionCourses                    .addAll(                        CollectionUtils                        .select(curricularCourse.getAssociatedExecutionCourses(), new Predicate()                {                    public boolean evaluate(Object arg0)                    {                        IExecutionCourse executionCourse = (IExecutionCourse) arg0;                        return executionCourse.getExecutionPeriod().equals(executionPeriod2Compare);                    }                }));            }            List infoExecutionCourses =                (List) CollectionUtils.collect(executionCourses, new Transformer()            {                public Object transform(Object arg0)                {                    try					{						return Cloner.get((IExecutionCourse) arg0);					}					catch (ExcepcaoPersistencia e)					{						throw new RuntimeException();					}                }            });            return infoExecutionCourses;        }        catch (ExcepcaoPersistencia e)        {            throw new FenixServiceException(e);        }           }