/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.uff.ic.oceano.core.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
/**
*
* @author DanCastellani
*/
@NamedQueries({
@NamedQuery(name = "ProjectUser.getByProjectAndOceanoUser", query = "select pu from ProjectUser pu where pu.project = ? and pu.oceanoUser = ?"),
@NamedQuery(name = "ProjectUser.getByOceanoUser", query = "select pu from ProjectUser pu where pu.oceanoUser = ?"),
@NamedQuery(name = "ProjectUser.getByProjectAndLogin", query = "select pu from ProjectUser pu where pu.project = ? and pu.login = ?")
})
@Entity
@Table(name = "ProjectUser", uniqueConstraints = {
@UniqueConstraint(columnNames = {"idProject", "idOceanoUser"})})
@SequenceGenerator(name = "ProjectUser_seq", sequenceName = "ProjectUser_seq")
public class ProjectUser implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "ProjectUser_seq")
private Long id;
private String login;
private String password;
private boolean anonymous = false;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idProject")
private SoftwareProject project;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idOceanoUser")
private OceanoUser oceanoUser;
public ProjectUser(boolean anonymous) {
this.anonymous = anonymous;
}
public ProjectUser(String login, String password) {
this.login = login;
this.password = password;
}
public ProjectUser(String login, String password, SoftwareProject project, OceanoUser oceanoUser) {
this.login = login;
this.password = password;
this.project = project;
this.oceanoUser = oceanoUser;
}
public ProjectUser() {
}
/**
* @return the id
*/
public Long getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(Long id) {
this.id = id;
}
/**
* @return the login
*/
public String getLogin() {
return login;
}
/**
* @param login the login to set
*/
public void setLogin(String login) {
this.login = login;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return the project
*/
public SoftwareProject getProject() {
return project;
}
/**
* @param project the project to set
*/
public void setProject(SoftwareProject project) {
this.project = project;
}
/**
* @return the user
*/
public OceanoUser getOceanoUser() {
return oceanoUser;
}
/**
* @param user the user to set
*/
public void setOceanoUser(OceanoUser oceanoUser) {
this.oceanoUser = oceanoUser;
}
@Override
public String toString() {
return "User: " + oceanoUser + " , Project: " + project;
}
/**
* @return the anonymous
*/
public boolean isAnonymous() {
return anonymous;
}
/**
* @param anonymous the anonymous to set
*/
public void setAnonymous(boolean anonymous) {
this.anonymous = anonymous;
}
}