/**
*
*/
package cm.dpassyann.speedDating.model.user.bean;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;
import cm.dpassyann.speedDating.model.adress.bean.Address;
import cm.dpassyann.speedDating.model.user.UserConstant;
/**
* Pour le projet : AmourMeZam
* @author deungoueyann
* @description cette classe permet de stocker les information relative à un utilisateur
* @date fait le : 19 nov. 2012
*/
@NamedQueries({
@NamedQuery(name = UserConstant.USER_GET_ALL_QUERY, query = "FROM User"),
@NamedQuery(name = UserConstant.USER_CONNECTION_QUERY,query = "FROM User u WHERE u.parameter.username =:username AND u.parameter.password =:password")
})
@Entity
@Table(name="user", uniqueConstraints = {
@UniqueConstraint(columnNames = "EMAIL") }
)
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = -5092950603900013069L;
@Id
@Column(name="USER_ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name="EMAIL", nullable=false)
private String email;
@Column(name="BIRTHDAY", nullable=false)
@Temporal(TemporalType.DATE)
private Date birthday;
@Column(name="STATE", nullable=false, columnDefinition="tinyint default false")
private boolean actived;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="ADDRESS_ID", nullable=false, referencedColumnName="ADDRESS_ID")
private Address address;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="CONNEXION_ID", nullable=false, referencedColumnName="CONNEXION_ID")
private ConnectionParameter parameter;
public User(Long id, ConnectionParameter parameter, String username, String password, Address address, String email, Date birthday) {
this.id = id;
this.address = address;
this.email = email;
this.birthday = birthday;
this.parameter = parameter;
}
public User(){
this.id = new Long(-1);
this.address = new Address();
this.email = "";
this.birthday = new Date();
this.parameter = new ConnectionParameter();
}
/**
* @return la id
*/
public Long getId() {
return id;
}
/**
* @param id la id à initialiser
*/
public void setId(Long id) {
this.id = id;
}
/**
* @return la email
*/
public String getEmail() {
return email;
}
/**
* @param email la email à initialiser
*/
public void setEmail(String email) {
this.email = email;
}
/**
* @return la birthday
*/
public Date getBirthday() {
return birthday;
}
/**
* @param birthday la birthday à initialiser
*/
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
/**
* @return la address
*/
public Address getAddress() {
return address;
}
/**
* @param address la address à initialiser
*/
public void setAddress(Address address) {
this.address = address;
}
/**
* @return la actived
*/
public boolean isActived() {
return actived;
}
/**
* @param actived la actived à initialiser
*/
public void setActived(boolean actived) {
this.actived = actived;
}
/**
* @return la parameter
*/
public ConnectionParameter getParameter() {
return parameter;
}
/**
* @param parameter la parameter à initialiser
*/
public void setParameter(ConnectionParameter parameter) {
this.parameter = parameter;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("User [\nid --> ");
builder.append(id);
builder.append("\nemail --> ");
builder.append(email);
builder.append("\nbirthday --> ");
builder.append(birthday);
builder.append("\nactived --> ");
builder.append(actived);
builder.append("\naddress --> ");
builder.append(address);
builder.append("\nparameter --> ");
builder.append(parameter);
builder.append("\n]");
return builder.toString();
}
}