/**
* 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 history items.
*/
public final class HistoryItem implements Serializable {
/**
* The serialization id.
*/
private static final long serialVersionUID = 1864406442202369090L;
/**
* Primary key.
*/
private Long id;
/**
* The user.
*/
private User user;
/**
* The ticket.
*/
private Ticket ticket;
/**
* The ticket.
*/
private ArchivedTicket archivedTicket;
/**
* Bean constructor.
*/
public HistoryItem() {
super();
}
/**
* Constructor.
* @param user
*/
private HistoryItem(final User user) {
this();
this.user = user;
}
/**
* Constructor.
* @param user
* @param ticket
*/
public HistoryItem(final User user, final Ticket ticket) {
this(user);
this.ticket = ticket;
}
/**
* Constructor.
* @param user
* @param archivedTicket
*/
public HistoryItem(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 HistoryItem)) {
return false;
}
return ((HistoryItem) 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() {
String result = getClass().getSimpleName() + "#" + hashCode() + "["
+ " id=[" + id + "]";
if (ticket != null) {
result += ", ticket#" + ticket.getId();
}
if (archivedTicket != null) {
result += ", archivedTicket#" + archivedTicket.getTicketId();
}
if (user != null) {
result += ", user#" + user.getId();
}
return result + "]";
}
/**
* @return true if a ticket history item.
*/
public boolean isTicketHistoryItem() {
return ticket != null;
}
/**
* @return true if an archived ticket history item.
*/
public boolean isArchivedTicketHistoryItem() {
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;
}
}