package com.idega.idegaweb.egov.bpm.data;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
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.Table;
/**
* @author <a href="mailto:civilis@idega.com">Vytautas Čivilis</a>
* @version $Revision: 1.5 $
*
* Last modified: $Date: 2008/05/16 18:17:08 $ by $Author: civilis $
*/
@Entity
@Table(name=ProcessUserBind.TABLE_NAME)
@NamedQueries(
{
@NamedQuery(name=ProcessUserBind.byUserIdNPID, query="from ProcessUserBind pub where pub.userId = :"+ProcessUserBind.userIdParam+ " and pub.caseProcessBind.procInstId = :"+ProcessUserBind.pidParam),
@NamedQuery(name=ProcessUserBind.byUserIdAndCaseId, query="select pub from ProcessUserBind pub, com.idega.idegaweb.egov.bpm.data.CaseProcInstBind cpib where pub.userId = :"+ProcessUserBind.userIdParam+ " and cpib.caseId in(:"+ProcessUserBind.casesIdsParam+") and pub.caseProcessBind = cpib.procInstId")
}
)
public class ProcessUserBind implements Serializable {
private static final long serialVersionUID = 4023013648108184230L;
public enum Status {
PROCESS_WATCHED,
NO_STATUS
}
public static final String TABLE_NAME = "BPM_PROCESSES_USERS";
public static final String byUserIdNPID = "ProcessUserBind.byUserIdNPID";
public static final String byUserIdAndCaseId = "ProcessUserBind.byUserIdNCaseId";
public static final String casesIdsParam = "casesIdsParam";
public static final String userIdParam = "userIdParam";
public static final String pidParam = "pidParam";
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID_")
private Long id;
@Column(name="user_id", nullable=false)
private Integer userId;
public static final String statusProp = "status";
@Column(name="user_status")
@Enumerated(EnumType.STRING)
private Status status;
public static final String caseProcessBindProp = "caseProcessBind";
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "process_instance_id", referencedColumnName = CaseProcInstBind.procInstIdColumnName, nullable=false)
private CaseProcInstBind caseProcessBind;
public CaseProcInstBind getCaseProcessBind() {
return caseProcessBind;
}
public void setCaseProcessBind(CaseProcInstBind caseProcessBind) {
this.caseProcessBind = caseProcessBind;
}
public ProcessUserBind() { }
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
}