EvaluationViewModel.java
package edu.rit.coopeval.viewmodel.evaluation;
import edu.rit.coopeval.model.EmployerQuestionAnswer;
import edu.rit.coopeval.model.Evaluation;
import edu.rit.coopeval.model.StudentQuestionAnswer;
import java.util.List;
import java.util.ArrayList;
/**
* Created by mhickson on 3/5/15.
*/
public class EvaluationViewModel {
private Long evaluationId;
private String placementId;
private String studentFirstName;
private String studentLastName;
private String studentEmail;
private String departmentCode;
private String gradYear;
private String advisorFirstName;
private String advisorLastName;
private String companyName;
private String companyPhoneNumber;
private String companyLocation;
private String jobTitle;
private String termCode;
private EvaluationApprovalViewModel evaluationApproval;
private List<QuestionGroupViewModel> questionGroups;
public EvaluationViewModel(){}
public EvaluationViewModel(Evaluation evaluationEntity, boolean isStudentEval){
this.evaluationId=evaluationEntity.getEvaluationId();
this.placementId=evaluationEntity.getPlacementId();
this.studentFirstName=evaluationEntity.getStudentFirstName();
this.studentLastName=evaluationEntity.getStudentLastName();
this.studentEmail=evaluationEntity.getStudentEmail();
this.departmentCode=evaluationEntity.getDepartmentByDepartmentId().getDepartmentCode();
this.gradYear=evaluationEntity.getGradYear();
this.advisorFirstName=evaluationEntity.getAdvisorFirstName();
this.advisorLastName=evaluationEntity.getAdvisorLastName();
this.companyName=evaluationEntity.getEmployerUserByEmployerUserId().getCompanyName();
this.companyPhoneNumber=evaluationEntity.getCompanyPhoneNumber();
this.companyLocation=evaluationEntity.getCompanyLocation();
this.jobTitle=evaluationEntity.getJobTitle();
this.termCode=evaluationEntity.getTermByTermId().getTermCode();
this.evaluationApproval=new EvaluationApprovalViewModel(evaluationEntity.getEvaluationApprovalByEvaluationId());
if(isStudentEval){
this.questionGroups=createQuestionGroupArrayForStudent(evaluationEntity);
}
else{
this.questionGroups=createQuestionGroupArrayForEmployer(evaluationEntity);
}
}
public Long getEvaluationId() {
return evaluationId;
}
public String getPlacementId() {
return placementId;
}
public void setPlacementId(String placementId) {
this.placementId = placementId;
}
public void setEvaluationId(Long evaluationId) {
this.evaluationId = evaluationId;
}
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 getDepartmentCode() {
return departmentCode;
}
public void setDepartmentCode(String departmentCode) {
this.departmentCode = departmentCode;
}
public String getGradYear() {
return gradYear;
}
public void setGradYear(String gradYear) {
this.gradYear = gradYear;
}
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 getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getCompanyPhoneNumber() {
return companyPhoneNumber;
}
public void setCompanyPhoneNumber(String companyPhoneNumber) {
this.companyPhoneNumber = companyPhoneNumber;
}
public String getCompanyLocation() {
return companyLocation;
}
public void setCompanyLocation(String companyLocation) {
this.companyLocation = companyLocation;
}
public String getJobTitle() {
return jobTitle;
}
public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}
public String getTermCode() {
return termCode;
}
public void setTermCode(String termCode) {
this.termCode = termCode;
}
public List<QuestionGroupViewModel> getQuestionGroups() {
return questionGroups;
}
public void setQuestionGroups(List<QuestionGroupViewModel> questionGroups) {
this.questionGroups = questionGroups;
}
public EvaluationApprovalViewModel getEvaluationApproval() {
return evaluationApproval;
}
public void setEvaluationApproval(EvaluationApprovalViewModel evaluationApproval) {
this.evaluationApproval = evaluationApproval;
}
public List<QuestionGroupViewModel> createQuestionGroupArrayForStudent(Evaluation evaluationEntity) {
List<QuestionGroupViewModel> studentQuestionGroups = new ArrayList<QuestionGroupViewModel>();
Long pastGroupId = null;
Long currentGroupId = null;
QuestionGroupViewModel currentQuestionGroup = null;
for(StudentQuestionAnswer studentQuestionAnswer: evaluationEntity.getStudentQuestionAnswersByEvaluationId()){
currentGroupId = studentQuestionAnswer.getFormQuestionByFormQuestionId()
.getQuestionGroupByQuestionQuestionId().getQuestionGroupId();
if((pastGroupId == null) || (pastGroupId != currentGroupId)){
currentQuestionGroup = new QuestionGroupViewModel(studentQuestionAnswer.getFormQuestionByFormQuestionId()
.getQuestionGroupByQuestionQuestionId());
studentQuestionGroups.add(currentQuestionGroup);
currentQuestionGroup.addQuestion(new QuestionViewModel(studentQuestionAnswer));
pastGroupId = currentGroupId;
}
else{
currentQuestionGroup.addQuestion(new QuestionViewModel(studentQuestionAnswer));
}
}
return studentQuestionGroups;
}
public List<QuestionGroupViewModel> createQuestionGroupArrayForEmployer(Evaluation evaluationEntity) {
List<QuestionGroupViewModel> employerQuestionGroups = new ArrayList<QuestionGroupViewModel>();
Long pastGroupId = null;
Long currentGroupId = null;
QuestionGroupViewModel currentQuestionGroup = null;
for(EmployerQuestionAnswer employerQuestionAnswer: evaluationEntity.getEmployerQuestionAnswersByEvaluationId()){
currentGroupId = employerQuestionAnswer.getFormQuestionByFormQuestionId()
.getQuestionGroupByQuestionQuestionId().getQuestionGroupId();
if((pastGroupId == null) || (pastGroupId != currentGroupId)){
currentQuestionGroup = new QuestionGroupViewModel(employerQuestionAnswer.getFormQuestionByFormQuestionId()
.getQuestionGroupByQuestionQuestionId());
employerQuestionGroups.add(currentQuestionGroup);
currentQuestionGroup.addQuestion(new QuestionViewModel(employerQuestionAnswer));
pastGroupId = currentGroupId;
}
else{
currentQuestionGroup.addQuestion(new QuestionViewModel(employerQuestionAnswer));
}
}
return employerQuestionGroups;
}
}