package no.java.incogito.application; import fj.Unit; import fj.data.List; import fj.data.Option; import no.java.incogito.domain.Event; import no.java.incogito.domain.Schedule; import no.java.incogito.domain.Session; import no.java.incogito.domain.SessionId; import no.java.incogito.domain.User; import no.java.incogito.domain.User.*; import no.java.incogito.domain.UserSessionAssociation.InterestLevel; /** * @author <a href="mailto:trygve.laugstol@arktekk.no">Trygve Laugstøl</a> * @version $Id$ */ public interface IncogitoApplication { IncogitoConfiguration getConfiguration(); void reloadConfiguration() throws Exception; OperationResult<List<Event>> getEvents(); OperationResult<Event> getEventByName(String eventName); OperationResult<List<Session>> getSessions(String eventName); OperationResult<Session> getSession(String eventName, SessionId sessionId); OperationResult<Session> getSessionByTitle(String eventName, String sessionTitle); OperationResult<User> createUser(User user); OperationResult<Unit> removeUser(UserId userId); OperationResult<User> getUser(UserId userId); OperationResult<Schedule> getSchedule(String eventName, String userId); OperationResult<Schedule> getSchedule(String eventName, Option<String> userId); OperationResult<User> setInterestLevel(String userName, String eventName, SessionId sessionId, InterestLevel interestLevel); OperationResult<byte[]> getSpeakerPhotoForSession(String sessionId, int index); }