package com.idega.block.article.business; import java.util.List; import java.util.Map; import com.idega.block.article.bean.CommentsViewerProperties; import com.idega.block.article.data.Comment; import com.idega.builder.bean.AdvancedProperty; import com.idega.business.file.FileDownloadNotificationProperties; import com.idega.core.file.data.ICFile; import com.idega.presentation.IWContext; import com.idega.user.data.User; import com.sun.syndication.feed.atom.Entry; import com.sun.syndication.feed.atom.Feed; public interface CommentsPersistenceManager { public boolean hasRightsToViewComments(String identifier); public boolean hasRightsToViewComments(Long identifier); public boolean hasRightsToWriteComments(Long identifier); public boolean hasFullRightsForComments(String identifier); public boolean hasFullRightsForComments(Long identifier); public String getLinkToCommentsXML(String identifier); public String getFeedTitle(IWContext iwc, String identifier); public String getFeedSubtitle(IWContext iwc, String identifier); public boolean storeFeed(String identifier, Feed comments); public Feed getCommentsFeed(String identifier); public User getUserAvailableToReadWriteCommentsFeed(IWContext iwc); public Object addComment(CommentsViewerProperties properties); public boolean markCommentAsRead(Object primaryKey); public List<? extends Entry> getEntriesToFormat(Feed comments, CommentsViewerProperties properties); public boolean setCommentPublished(Object primaryKey, boolean makePublic); public boolean setCommentRead(Object primaryKey); public String getCommentFilesPath(CommentsViewerProperties properties); public Comment getComment(Object primaryKey); public boolean isCommentsCreationEnabled(CommentsViewerProperties properties); public String getTaskNameForAttachments(); public ICFile getCommentAttachment(String icFileId); public String getUriToAttachment(String commentId, ICFile attachment, User user); public boolean isNotificationsAutoEnabled(CommentsViewerProperties properties); public List<String> getPersonsToNotifyAboutComment(CommentsViewerProperties properties, Object commentId, boolean justPublished); public String getHandlerRoleKey(); public List<String> getEmails(List<? extends Entry> entries, String commentAuthorEmail); public boolean canWriteComments(CommentsViewerProperties properties); public List<AdvancedProperty> getLinksForRecipients(List<String> recipients, CommentsViewerProperties properties); public Map<String, String> getUriToDocument(FileDownloadNotificationProperties properties, String identifier , List<User> users); public String getUriForCommentLink(CommentsViewerProperties properties); public String getFeedContent(Feed feed); }