/**
* ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium.
*/
package org.esupportail.helpdesk.domain.beans;
import java.io.Serializable;
/**
* This class is used to store the bookmarks.
*/
public final class Bookmark implements Serializable {
/**
* The serialization id.
*/
private static final long serialVersionUID = -3256367100138207823L;
/**
* Primary key.
*/
private Long id;
/**
* The user.
*/
private User user;
/**
* The ticket.
*/
private Ticket ticket;
/**
* The ticket.
*/
private ArchivedTicket archivedTicket;
/**
* Bean constructor.
*/
public Bookmark() {
super();
}
/**
* Constructor.
* @param user
*/
private Bookmark(final User user) {
this();
this.user = user;
}
/**
* Constructor.
* @param user
* @param ticket
*/
public Bookmark(final User user, final Ticket ticket) {
this(user);
this.ticket = ticket;
}
/**
* Constructor.
* @param user
* @param archivedTicket
*/
public Bookmark(final User user, final ArchivedTicket archivedTicket) {
this(user);
this.archivedTicket = archivedTicket;
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (!(obj instanceof Bookmark)) {
return false;
}
return ((Bookmark) obj).getId() == getId();
}
/**
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
if (getId() == null) {
return 0;
}
return getId().intValue();
}
/**
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return getClass().getSimpleName() + "#" + hashCode() + "["
+ ", id=[" + id + "]"
+ ", ticket=" + ticket + ""
+ ", archivedTicket=" + archivedTicket + ""
+ ", user=" + user + ""
+ "]";
}
/**
* @return true if a ticket bookmark.
*/
public boolean isTicketBookmark() {
return ticket != null;
}
/**
* @return true if an archived ticket bookmark.
*/
public boolean isArchivedTicketBookmark() {
return archivedTicket != null;
}
/**
* @return the id
*/
public Long getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(final Long id) {
this.id = id;
}
/**
* @return the ticket
*/
public Ticket getTicket() {
return ticket;
}
/**
* @param ticket the ticket to set
*/
public void setTicket(final Ticket ticket) {
this.ticket = ticket;
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(final User user) {
this.user = user;
}
/**
* @return the archivedTicket
*/
public ArchivedTicket getArchivedTicket() {
return archivedTicket;
}
/**
* @param archivedTicket the archivedTicket to set
*/
public void setArchivedTicket(final ArchivedTicket archivedTicket) {
this.archivedTicket = archivedTicket;
}
}