package fi.otavanopisto.pyramus.domainmodel.grading;
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.OneToOne;
import javax.persistence.TableGenerator;
import javax.persistence.Version;
import javax.validation.constraints.NotNull;
import org.hibernate.search.annotations.DocumentId;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.validator.constraints.NotEmpty;
import fi.otavanopisto.pyramus.domainmodel.base.CourseOptionality;
import fi.otavanopisto.pyramus.domainmodel.base.Curriculum;
import fi.otavanopisto.pyramus.domainmodel.base.EducationalLength;
import fi.otavanopisto.pyramus.domainmodel.base.Subject;
@Entity
@Indexed
public class TransferCreditTemplateCourse {
public Long getId() {
return id;
}
public TransferCreditTemplate getTransferCreditTemplate() {
return transferCreditTemplate;
}
public void setTransferCreditTemplate(TransferCreditTemplate transferCreditTemplate) {
this.transferCreditTemplate = transferCreditTemplate;
}
@SuppressWarnings("unused")
private void setVersion(Long version) {
this.version = version;
}
public Long getVersion() {
return version;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public Integer getCourseNumber() {
return courseNumber;
}
public void setCourseNumber(Integer courseNumber) {
this.courseNumber = courseNumber;
}
public EducationalLength getCourseLength() {
return courseLength;
}
public void setCourseLength(EducationalLength courseLength) {
this.courseLength = courseLength;
}
public Subject getSubject() {
return subject;
}
public void setSubject(Subject subject) {
this.subject = subject;
}
public CourseOptionality getOptionality() {
return optionality;
}
public void setOptionality(CourseOptionality optionality) {
this.optionality = optionality;
}
public Curriculum getCurriculum() {
return curriculum;
}
public void setCurriculum(Curriculum curriculum) {
this.curriculum = curriculum;
}
@Id
@DocumentId
@GeneratedValue(strategy=GenerationType.TABLE, generator="TransferCreditTemplateCourse")
@TableGenerator(name="TransferCreditTemplateCourse", allocationSize=1, table = "hibernate_sequences", pkColumnName = "sequence_name", valueColumnName = "sequence_next_hi_value")
private Long id;
@ManyToOne
@JoinColumn(name = "transferCreditTemplate")
private TransferCreditTemplate transferCreditTemplate;
@NotNull
@Column(nullable = false)
@NotEmpty
@Field
private String courseName;
private Integer courseNumber;
@OneToOne
@JoinColumn(name = "courseLength")
private EducationalLength courseLength;
@NotNull
@Column (nullable = false)
@Enumerated (EnumType.STRING)
private CourseOptionality optionality;
@ManyToOne
@JoinColumn(name = "subject")
private Subject subject;
@ManyToOne
private Curriculum curriculum;
@Version
@Column(nullable = false)
private Long version;
}