package net.sourceforge.fenixedu.applicationTier.Servico.manager; import java.util.List; import net.sourceforge.fenixedu.applicationTier.FenixService; import net.sourceforge.fenixedu.applicationTier.Servico.exceptions.FenixServiceException; import net.sourceforge.fenixedu.applicationTier.Servico.exceptions.NonExistingServiceException; import net.sourceforge.fenixedu.domain.CurricularCourse; import net.sourceforge.fenixedu.domain.ExecutionCourse; import pt.ist.fenixWebFramework.security.accessControl.Checked; import pt.ist.fenixWebFramework.services.Service; public class DissociateExecutionCourse extends FenixService { @Checked("RolePredicates.MANAGER_PREDICATE") @Service public static void run(Integer executionCourseId, Integer curricularCourseId) throws FenixServiceException { final CurricularCourse curricularCourse = (CurricularCourse) rootDomainObject.readDegreeModuleByOID(curricularCourseId); if (curricularCourse == null) { throw new NonExistingServiceException("message.nonExistingCurricularCourse", null); } final ExecutionCourse executionCourse = rootDomainObject.readExecutionCourseByOID(executionCourseId); if (executionCourse == null) { throw new NonExistingServiceException("message.nonExisting.executionCourse", null); } List executionCourses = curricularCourse.getAssociatedExecutionCourses(); List curricularCourses = executionCourse.getAssociatedCurricularCourses(); if (!executionCourses.isEmpty() && !curricularCourses.isEmpty()) { executionCourses.remove(executionCourse); curricularCourses.remove(curricularCourse); } } }