package net.sourceforge.fenixedu.applicationTier.Servico.resourceAllocationManager; import pt.ist.fenixWebFramework.services.Service; import pt.ist.fenixWebFramework.security.accessControl.Checked; import java.util.ArrayList; 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.dataTransferObject.InfoExam; import net.sourceforge.fenixedu.domain.Exam; import net.sourceforge.fenixedu.domain.space.AllocatableSpace; /** * @author Luis Cruz & Sara Ribeiro */ public class EditExamRooms extends FenixService { @Checked("RolePredicates.RESOURCE_ALLOCATION_MANAGER_PREDICATE") @Service public static InfoExam run(InfoExam infoExam, final List roomsForExam) throws FenixServiceException { final List finalRoomList = new ArrayList(); for (final Integer id : roomsForExam) { finalRoomList.add((AllocatableSpace) rootDomainObject.readResourceByOID(id)); } final Exam exam = (Exam) rootDomainObject.readEvaluationByOID(infoExam.getIdInternal()); if (exam == null) { throw new NonExistingServiceException(); } // Remove all elements // TODO : Do this more intelegently. exam.getAssociatedRooms().clear(); // Add all elements exam.getAssociatedRooms().addAll(finalRoomList); return InfoExam.newInfoFromDomain(exam); } }