package no.niths.services.school.interfaces;
import java.util.GregorianCalendar;
import java.util.List;
import no.niths.domain.school.Exam;
import no.niths.services.interfaces.GenericService;
/**
* Service Class for Exam
*
* <p>
* Inherits the basic CRUD actions and has methods
* for addRoom, removeRoom,
* addSubject and removeSubject
* </p>
*/
public interface ExamService extends GenericService<Exam> {
/**
* Adds a room to the exam
* @param examId id for exam
* @param roomId id for room
*/
void addRoom(Long examId, Long roomId);
/**
* Removes a room from an exam
* @param examId id for exam
* @param roomId id for room
*/
void removeRoom(Long examId, Long roomId);
/**
* Adds a subject to the exam
* @param examId id for exam
* @param subjectId id for subject
*/
void addSubject(Long examId, Long subjectId);
/**
* Removes a subject from a exam
* @param examId id for exam
*/
void removeSubject(Long examId);
/**
* Returns exams between on the startTime between start and end time
* @param startTime
* @param endTime
* @return
*/
List<Exam> getExamsBetweenDates(GregorianCalendar startTime, GregorianCalendar endTime);
}