@Override public Status createStatus( String login, String username, String domain, String content, String replyTo, String replyToUsername, List<String> tags) throws ConstraintViolationException { Status status = new Status(); String statusId = TimeUUIDUtils.getUniqueTimeUUIDinMillis().toString(); status.setStatusId(statusId); status.setLogin(login); status.setUsername(username); status.setDomain(domain); status.setContent(content); status.setStatusDate(Calendar.getInstance().getTime()); status.setReplyTo(replyTo); status.setReplyToUsername(replyToUsername); status.setRemoved(false); status.setTags(tags); if (log.isDebugEnabled()) { log.debug("Persisting Status : " + status); } Set<ConstraintViolation<Status>> constraintViolations = validator.validate(status); if (!constraintViolations.isEmpty()) { throw new ConstraintViolationException( new HashSet<ConstraintViolation<?>>(constraintViolations)); } em.persist(status); // Persist tags addTags(keyspaceOperator, STATUS_CF, statusId, tags); return status; }
@Override @Cacheable("status-cache") public Status findStatusById(String statusId) { if (statusId == null || statusId.equals("")) { return null; } if (log.isDebugEnabled()) { log.debug("Finding status : " + statusId); } Status status = em.find(Status.class, statusId); if (status != null) { // Find status's tags List<String> tags = getTags(keyspaceOperator, STATUS_CF, statusId, TAG_COLUMN_MIN_NAME, TAG_COLUMN_MAX_NAME); status.setTags(tags); status = Boolean.TRUE.equals(status.getRemoved()) ? null : status; } return status; }