package scrum.server.collaboration; import ilarkesto.auth.Auth; import ilarkesto.base.Utl; import ilarkesto.base.time.DateAndTime; import scrum.server.admin.User; public class Comment extends GComment implements Comparable<Comment> { public String getAuthorLabel() { if (isAuthorSet()) return getAuthor().getName(); if (isAuthorNameSet()) return getAuthorName(); return "anonymous"; } @Override public void ensureIntegrity() { super.ensureIntegrity(); if (Utl.isEmpty(getText()) && getDateAndTime().getPeriodToNow().toHours() > 1) getDao().deleteEntity(this); if (isAuthorSet()) setAuthorName(getAuthor().getName()); if (!isDateAndTimeSet()) setDateAndTime(DateAndTime.now()); } @Override public boolean isVisibleFor(User user) { return Auth.isVisible(getParent(), user); } public boolean isEditableBy(User user) { return isAuthor(user); } @Override public int compareTo(Comment other) { return Utl.compare(getDateAndTime(), other.getDateAndTime()); } @Override public String toString() { return "[" + getAuthorName() + "@" + getDateAndTime() + "] " + getText(); } }