package nl.topicus.konijn.data.entity;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(name = "Nabaztag", uniqueConstraints = @UniqueConstraint(columnNames = "uid"))
/**
* Nabaztag entity
*
* @author Joost Limburg
*
*/
public class Nabaztag extends BaseEntity {
private static final long serialVersionUID = 1L;
@Column(nullable = false)
private String uid;
@Column(nullable = true)
private String name;
@Column(nullable = false)
private int leftEar;
@Column(nullable = false)
private int rightEar;
@Column(nullable = false)
private int blink;
@OneToOne(cascade = { CascadeType.PERSIST, CascadeType.REMOVE }, fetch = FetchType.LAZY)
@JoinColumn(name = "photoContainer", nullable = true)
private PhotoContainer photoContainer;
@ManyToOne(cascade = { CascadeType.PERSIST })
@JoinColumn(name = "owner", nullable = true)
private User owner;
@OneToMany(mappedBy = "nabaztag", cascade = { CascadeType.PERSIST,
CascadeType.REMOVE }, fetch = FetchType.LAZY)
private List<Event> events;
public Nabaztag() {
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public User getOwner() {
return owner;
}
public void setOwner(User owner) {
this.owner = owner;
}
public void setLeftEar(int leftEar) {
this.leftEar = leftEar;
}
public int getLeftEar() {
return leftEar;
}
public void setRightEar(int rightEar) {
this.rightEar = rightEar;
}
public int getRightEar() {
return rightEar;
}
public void setEvents(List<Event> events) {
this.events = events;
}
public List<Event> getEvents() {
return events;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name != null ? name : getUid();
}
/**
* Must be between 0 and 2.
*
* @param blink
*/
public void setBlink(int blink) {
this.blink = blink;
}
public int getBlink() {
return blink;
}
public void setPhotoContainer(PhotoContainer photoContainer) {
this.photoContainer = photoContainer;
}
public PhotoContainer getPhotoContainer() {
return photoContainer;
}
}