package svanimpe.reminders.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.TableGenerator;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import static svanimpe.reminders.util.Utilities.cleanUp;
@Entity
@NamedQueries({
@NamedQuery(name = "List.findByOwner", query = "SELECT l FROM List l WHERE l.owner = :owner"),
@NamedQuery(name = "List.findSize", query = "SELECT COUNT(r) FROM Reminder r WHERE r.list = :list")
})
public class List
{
@Id
@GeneratedValue(generator = "LIST_ID")
@TableGenerator(name = "LIST_ID", table = "ID_GEN", allocationSize = 1)
@Min(value = 0, message = "a list's id must be greater than 0")
private long id;
@NotNull(message = "LIST_TITLE")
private String title;
@ManyToOne
@NotNull(message = "a list must be assigned to a user")
private User owner;
public long getId()
{
return id;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = cleanUp(title);
}
public User getOwner()
{
return owner;
}
public void setOwner(User owner)
{
this.owner = owner;
}
@Override
public int hashCode()
{
int hash = 5;
hash = 83 * hash + (int) (this.id ^ (this.id >>> 32));
return hash;
}
@Override
public boolean equals(Object obj)
{
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final List other = (List) obj;
if (this.id != other.id) {
return false;
}
return true;
}
}