package com.openseedbox.models; import java.util.Date; import java.util.List; import siena.Column; import siena.Table; @Table("user_message") public class UserMessage extends ModelBase { public static enum State { MESSAGE, ERROR } private State state; private String heading; private String message; @Column("user_id") private User user; @Column("create_date") private Date createDate; private boolean retrieved; public UserMessage() { retrieved = false; createDate = new Date(); state = State.ERROR; } /** * Retrieve all unretrieved messages for the specified user. * Note: retrieving an unretrieved message marks it as retrieved! * @param u The user to retrieve unretrieved messages for * @return A list of unretrieved messages */ public static List<UserMessage> retrieveForUser(User u) { List<UserMessage> all = UserMessage.all().filter("user", u).filter("retrieved", false).fetch(); for (UserMessage um : all) { um.setRetrieved(true); } UserMessage.batch().update(all); return all; } /* Getters and Setters */ public State getState() { return state; } public void setState(State state) { this.state = state; } public String getHeading() { return heading; } public void setHeading(String heading) { this.heading = heading; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } public boolean isRetrieved() { return retrieved; } public void setRetrieved(boolean retrieved) { this.retrieved = retrieved; } }