package fr.openwide.maven.artifact.notifier.core.business.artifact.service; import java.util.List; import fr.openwide.core.jpa.business.generic.service.IGenericEntityService; import fr.openwide.core.jpa.exception.SecurityServiceException; import fr.openwide.core.jpa.exception.ServiceException; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactNotificationRule; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactNotificationRuleType; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.FollowedArtifact; import fr.openwide.maven.artifact.notifier.core.business.user.model.User; public interface IFollowedArtifactService extends IGenericEntityService<Long, FollowedArtifact> { List<FollowedArtifact> listByArtifact(Artifact artifact); List<User> listFollowers(Artifact artifact); List<ArtifactNotificationRule> listArtifactNotificationRules(FollowedArtifact followedArtifact); void addArtifactNotificationRule(FollowedArtifact followedArtifact, String regex, ArtifactNotificationRuleType type) throws ServiceException, SecurityServiceException; void removeArtifactNotificationRule(FollowedArtifact followedArtifact, ArtifactNotificationRule rule) throws ServiceException, SecurityServiceException; void deleteNotifications(Artifact artifact) throws ServiceException, SecurityServiceException; }