package org.iatoki.judgels.raguel.forum; import com.google.inject.ImplementedBy; import org.iatoki.judgels.raguel.forum.module.ForumModule; import java.util.Collection; import java.util.List; @ImplementedBy(ForumServiceImpl.class) public interface ForumService { boolean forumExistsByJid(String forumJid); List<Forum> getAllForumsForReferences(); List<Forum> getChildForums(String parentJid, long maxDepth); List<Forum> getAllowedChildForums(String parentJid, long maxDepth); List<ForumWithStatus> getChildForumsWithStatus(String parentJid, String userJid, long maxDepth); List<ForumWithStatus> getAllowedChildForumsWithStatus(String parentJid, String userJid, long maxDepth); Forum findForumById(long forumId) throws ForumNotFoundException; Forum findForumByJid(String forumJid); void createForum(Forum parentForum, String name, String description, String userJid, String userIpAddress); void updateForum(Forum forum, Forum parentForum, String name, String description, String userJid, String userIpAddress); void updateForumModuleConfiguration(String forumJid, Collection<ForumModule> forumModules, String userJid, String userIpAddress); }