/** * removes specified draft from topic * * @param draft draft to be removed */ public void removeDraft(PostDraft draft) { getDrafts().remove(draft); }
/** * Adds draft to current topic * * @param draft draft to add */ public void addDraft(PostDraft draft) { draft.setTopic(this); getDrafts().add(draft); }
/** * Get draft of specified user in current topic * * @param user user to search draft * * @return draft of specified user or null if draft not found */ public PostDraft getDraftForUser(JCUser user) { for (PostDraft draft : getDrafts()) { if (draft.getAuthor().equals(user)) { return draft; } } return null; }
/** * {@inheritDoc} */ @Override public void deleteDraft(Long draftId) throws NotFoundException{ if (!postDraftDao.isExist(draftId)) { throw new NotFoundException("Draft with id=" + draftId + " not found"); } PostDraft draft = postDraftDao.get(draftId); if (!draft.getAuthor().equals(userService.getCurrentUser())) { throw new AccessDeniedException("Only author can delete draft"); } Topic topic = draft.getTopic(); topic.getDrafts().remove(draft); topicDao.saveOrUpdate(topic); logger.debug("Deleted draft id={}", draft.getId()); }