Evaluation.java
/*
* +====================================================================+
* | Copyright (C) 2015 Rochester Institute of Technology, |
* | 103 Lomb Memorial Drive, Rochester, NY - 14623 |
* | All Rights Reserved. |
* +====================================================================+
* FILENAME
* Evaluation.java
*
* AUTHOR
* @author mhickson
*
* =====================================================================
*/
package edu.rit.coopeval.model;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Set;
import edu.rit.coopeval.comparators.*;
import org.hibernate.annotations.SortComparator;
@Entity
@Table(name = "EVALUATION")
public class Evaluation extends AuditableEntity {
@Id
@Column(name = "EVALUATIONID", nullable = false, insertable = true, updatable = true, precision = 0)
private long evaluationId;
@Column(name = "PLACEMENTID", nullable = true, insertable = true, updatable = true, length = 64)
private String placementId;
@Column(name = "STUDENTLASTUPDATEDDATE", nullable = true, insertable = true, updatable = true)
private Timestamp studentLastUpdatedDate;
@Column(name = "EMPLOYERLASTUPDATEDDATE", nullable = true, insertable = true, updatable = true)
private Timestamp employerLastUpdatedDate;
@Column(name = "STUDENTUID", nullable = true, insertable = true, updatable = true, length = 64)
private String studentUid;
@Column(name = "ADVISORFIRSTNAME", nullable = true, insertable = true, updatable = true, length = 64)
private String advisorFirstName;
@Column(name = "ADVISORLASTNAME", nullable = true, insertable = true, updatable = true, length = 64)
private String advisorLastName;
@Column(name = "JOBTITLE", nullable = true, insertable = true, updatable = true, length = 64)
private String jobTitle;
@Column(name = "STUDENTFIRSTNAME", nullable = true, insertable = true, updatable = true, length = 64)
private String studentFirstName;
@Column(name = "STUDENTLASTNAME", nullable = true, insertable = true, updatable = true, length = 64)
private String studentLastName;
@Column(name = "STUDENTEMAIL", nullable = true, insertable = true, updatable = true, length = 64)
private String studentEmail;
@Column(name = "GRADYEAR", nullable = true, insertable = true, updatable = true, length = 64)
private String gradYear;
@Lob
@Column(name = "COMPANYLOCATION", nullable = true, insertable = true, updatable = true)
private String companyLocation;
@Column(name = "COMPANYPHONENUMBER", nullable = true, insertable = true, updatable = true, length = 64)
private String companyPhoneNumber;
@Column(name = "COOPSUPTONOW", nullable = true, insertable = true, updatable = true, precision = 0)
private Long coopsUpToNow;
@Column(name = "CURRENTYEAR", nullable = true, insertable = true, updatable = true, precision = 0)
private Long currentYear;
@Column(name = "GENDER", nullable = true, insertable = true, updatable = true, length = 64)
private String gender;
@Column(name = "ADVISORDCE", nullable = true, insertable = true, updatable = true, length = 64)
private String advisorDCE;
@Column(name = "STUDENTDCE", nullable = true, insertable = true, updatable = true, length = 64)
private String studentDCE;
@Column(name = "ADVISOREMAIL", nullable = true, insertable = true, updatable = true, length = 64)
private String advisorEmail;
@ManyToOne
@JoinColumn(name = "TERMID")
private Term termByTermId;
@ManyToOne
@JoinColumn(name = "EMPLOYERUSERID")
private EmployerUser employerUserByEmployerUserId;
@ManyToOne
@JoinColumn(name = "EMPLOYEREVALUATIONSTATUSID")
private EvaluationStatus evaluationStatusByEmployerEvaluationStatusId;
@ManyToOne
@JoinColumn(name = "STUDENTEVALUATIONSTATUSID")
private EvaluationStatus evaluationStatusByStudentEvaluationStatusId;
@ManyToOne
@JoinColumn(name = "EMPLOYERFORMID")
private Form formByEmployerFormId;
@ManyToOne
@JoinColumn(name = "STUDENTFORMID")
private Form formByStudentFormId;
@ManyToOne
@JoinColumn(name = "DEPARTMENTID")
private Department departmentByDepartmentId;
@OneToOne(mappedBy = "evaluationByEvaluationId")
private EvaluationApproval evaluationApprovalByEvaluationId;
@OneToMany(mappedBy = "evaluationByEvaluationId")
@SortComparator(StudentQuestionAnswerComparator.class)
private Set<StudentQuestionAnswer> studentQuestionAnswersByEvaluationId;
@OneToMany(mappedBy = "evaluationByEvaluationId")
@SortComparator(EmployerQuestionAnswerComparator.class)
private Set<EmployerQuestionAnswer> employerQuestionAnswersByEvaluationId;
@OneToMany(mappedBy = "evaluationByEvaluationId", targetEntity = EmailLogEvent.class)
@SortComparator(EmailLogComparator.class)
private Set<EmailLogEvent> emailLogEventsByEvaluationId;
public long getEvaluationId() {
return evaluationId;
}
public void setEvaluationId(long evaluationId) {
this.evaluationId = evaluationId;
}
public String getPlacementId() {
return placementId;
}
public void setPlacementId(String placementId) {
this.placementId = placementId;
}
public Timestamp getStudentLastUpdatedDate() {
return studentLastUpdatedDate;
}
public void setStudentLastUpdatedDate(Timestamp studentLastUpdatedDate) {
this.studentLastUpdatedDate = studentLastUpdatedDate;
}
public Timestamp getEmployerLastUpdatedDate() {
return employerLastUpdatedDate;
}
public void setEmployerLastUpdatedDate(Timestamp employerLastUpdatedDate) {
this.employerLastUpdatedDate = employerLastUpdatedDate;
}
public String getStudentUid() {
return studentUid;
}
public void setStudentUid(String studentUid) {
this.studentUid = studentUid;
}
public String getAdvisorFirstName() {
return advisorFirstName;
}
public void setAdvisorFirstName(String advisorFirstName) {
this.advisorFirstName = advisorFirstName;
}
public String getAdvisorLastName() {
return advisorLastName;
}
public void setAdvisorLastName(String advisorLastName) {
this.advisorLastName = advisorLastName;
}
public String getJobTitle() {
return jobTitle;
}
public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}
public String getStudentFirstName() {
return studentFirstName;
}
public void setStudentFirstName(String studentFirstName) {
this.studentFirstName = studentFirstName;
}
public String getStudentLastName() {
return studentLastName;
}
public void setStudentLastName(String studentLastName) {
this.studentLastName = studentLastName;
}
public String getStudentEmail() {
return studentEmail;
}
public void setStudentEmail(String studentEmail) {
this.studentEmail = studentEmail;
}
public String getGradYear() {
return gradYear;
}
public void setGradYear(String gradYear) {
this.gradYear = gradYear;
}
public String getCompanyLocation() {
return companyLocation;
}
public void setCompanyLocation(String companyLocation) {
this.companyLocation = companyLocation;
}
public String getCompanyPhoneNumber() {
return companyPhoneNumber;
}
public void setCompanyPhoneNumber(String companyPhoneNumber) {
this.companyPhoneNumber = companyPhoneNumber;
}
public Long getCoopsUpToNow() {
return coopsUpToNow;
}
public void setCoopsUpToNow(Long coopsUpToNow) {
this.coopsUpToNow = coopsUpToNow;
}
public Long getCurrentYear() {
return currentYear;
}
public void setCurrentYear(Long currentYear) {
this.currentYear = currentYear;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAdvisorDCE() {
return advisorDCE;
}
public void setAdvisorDCE(String advisorDCE) {
this.advisorDCE = advisorDCE;
}
public String getStudentDCE() {
return studentDCE;
}
public void setStudentDCE(String studentDCE) {
this.studentDCE = studentDCE;
}
public String getAdvisorEmail() {
return advisorEmail;
}
public void setAdvisorEmail(String advisorEmail) {
this.advisorEmail = advisorEmail;
}
public Term getTermByTermId() {
return termByTermId;
}
public void setTermByTermId(Term termByTermId) {
this.termByTermId = termByTermId;
}
public EmployerUser getEmployerUserByEmployerUserId() {
return employerUserByEmployerUserId;
}
public void setEmployerUserByEmployerUserId(EmployerUser employerUserByEmployerUserId) {
this.employerUserByEmployerUserId = employerUserByEmployerUserId;
}
public EvaluationStatus getEvaluationStatusByEmployerEvaluationStatusId() {
return evaluationStatusByEmployerEvaluationStatusId;
}
public void setEvaluationStatusByEmployerEvaluationStatusId(
EvaluationStatus evaluationStatusByEmployerEvaluationStatusId) {
this.evaluationStatusByEmployerEvaluationStatusId = evaluationStatusByEmployerEvaluationStatusId;
}
public EvaluationStatus getEvaluationStatusByStudentEvaluationStatusId() {
return evaluationStatusByStudentEvaluationStatusId;
}
public void setEvaluationStatusByStudentEvaluationStatusId(
EvaluationStatus evaluationStatusByStudentEvaluationStatusId) {
this.evaluationStatusByStudentEvaluationStatusId = evaluationStatusByStudentEvaluationStatusId;
}
public Form getFormByEmployerFormId() {
return formByEmployerFormId;
}
public void setFormByEmployerFormId(Form formByEmployerFormId) {
this.formByEmployerFormId = formByEmployerFormId;
}
public Form getFormByStudentFormId() {
return formByStudentFormId;
}
public void setFormByStudentFormId(Form formByStudentFormId) {
this.formByStudentFormId = formByStudentFormId;
}
public Department getDepartmentByDepartmentId() {
return departmentByDepartmentId;
}
public void setDepartmentByDepartmentId(Department departmentByDepartmentId) {
this.departmentByDepartmentId = departmentByDepartmentId;
}
public Set<StudentQuestionAnswer> getStudentQuestionAnswersByEvaluationId() {
return studentQuestionAnswersByEvaluationId;
}
public void setStudentQuestionAnswersByEvaluationId(
Set<StudentQuestionAnswer> studentQuestionAnswersByEvaluationId) {
this.studentQuestionAnswersByEvaluationId = studentQuestionAnswersByEvaluationId;
}
public Set<EmployerQuestionAnswer> getEmployerQuestionAnswersByEvaluationId() {
return employerQuestionAnswersByEvaluationId;
}
public void setEmployerQuestionAnswersByEvaluationId(
Set<EmployerQuestionAnswer> employerQuestionAnswersByEvaluationId) {
this.employerQuestionAnswersByEvaluationId = employerQuestionAnswersByEvaluationId;
}
public Set<EmailLogEvent> getEmailLogEventsByEvaluationId() {
return emailLogEventsByEvaluationId;
}
public void setEmailLogEventsByEvaluationId(Set<EmailLogEvent> emailLogEventsByEvaluationId) {
this.emailLogEventsByEvaluationId = emailLogEventsByEvaluationId;
}
public EvaluationApproval getEvaluationApprovalByEvaluationId() {
return evaluationApprovalByEvaluationId;
}
public void setEvaluationApprovalByEvaluationId(EvaluationApproval evaluationApprovalByEvaluationId) {
this.evaluationApprovalByEvaluationId = evaluationApprovalByEvaluationId;
}
public String getCurrentStudentEmailStatus() {
String studentEmailStatus = "";
for (EmailLogEvent e : emailLogEventsByEvaluationId) {
if (e.getRecipient().equals(this.studentEmail)) {
studentEmailStatus = e.getEmailContentByEmailContentId().getEmailTypeByEmailTypeId().getName();
break;
}
}
return studentEmailStatus;
}
public String getCurrentEmployerEmailStatus() {
String employerEmailStatus = "";
for (EmailLogEvent e : emailLogEventsByEvaluationId) {
if (e.getRecipient().equals(this.getEmployerUserByEmployerUserId().getEmployerEmail())) {
employerEmailStatus = e.getEmailContentByEmailContentId().getEmailTypeByEmailTypeId().getName();
break;
}
}
return employerEmailStatus;
}
public Timestamp getCurrentStudentEmailStatusDate() {
Timestamp studentEmailStatusDate = null;
for (EmailLogEvent e : emailLogEventsByEvaluationId) {
if (e.getRecipient().equals(this.studentEmail)) {
studentEmailStatusDate = e.getLogEventByLogEventId().getTime();
break;
}
}
return studentEmailStatusDate;
}
public Timestamp getCurrentEmployerEmailStatusDate() {
Timestamp employerEmailStatusDate = null;
for (EmailLogEvent e : emailLogEventsByEvaluationId) {
if (e.getRecipient().equals(this.getEmployerUserByEmployerUserId().getEmployerEmail())) {
employerEmailStatusDate = e.getLogEventByLogEventId().getTime();
break;
}
}
return employerEmailStatusDate;
}
}