package org.iatoki.judgels.raguel.forum.thread; import com.google.inject.ImplementedBy; import org.iatoki.judgels.play.Page; import org.iatoki.judgels.raguel.forum.Forum; @ImplementedBy(ForumThreadServiceImpl.class) public interface ForumThreadService { Page<ForumThread> getPageOfForumThreads(Forum forum, long pageIndex, long pageSize, String orderBy, String orderDir, String filterString); Page<ForumThreadWithStatistics> getPageOfForumThreadsWithStatistic(Forum forum, long pageIndex, long pageSize, String orderBy, String orderDir, String filterString); Page<ForumThreadWithStatisticsAndStatus> getPageOfForumThreadsWithStatisticAndStatus(Forum forum, String userJid, long pageIndex, long pageSize, String orderBy, String orderDir, String filterString); ForumThread findForumThreadById(long forumThreadId) throws ForumThreadNotFoundException; ForumThread createForumThread(Forum forum, String name, String userJid, String userIpAddress); }