package edu.ualberta.med.biobank.model; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.NotNull; import org.hibernate.validator.constraints.NotEmpty; @javax.persistence.Entity @Table(name = "REPORT") public class Report extends AbstractBiobankModel { private static final long serialVersionUID = 1L; private String name; private String description; private Integer userId; private boolean isPublic; private boolean isCount; private Set<ReportColumn> reportColumns = new HashSet<ReportColumn>(0); private Entity entity; private Set<ReportFilter> reportFilters = new HashSet<ReportFilter>(0); @NotEmpty(message = "{edu.ualberta.med.biobank.model.Report.name.NotEmpty}") @Column(name = "NAME") public String getName() { return this.name; } public void setName(String name) { this.name = name; } @Column(name = "DESCRIPTION", columnDefinition = "TEXT") public String getDescription() { return this.description; } public void setDescription(String description) { this.description = description; } @Column(name = "USER_ID") public Integer getUserId() { return this.userId; } public void setUserId(Integer userId) { this.userId = userId; } @Column(name = "IS_PUBLIC", nullable = false) public boolean getIsPublic() { return this.isPublic; } public void setIsPublic(boolean isPublic) { this.isPublic = isPublic; } @Column(name = "IS_COUNT", nullable = false) public boolean getIsCount() { return this.isCount; } public void setIsCount(boolean isCount) { this.isCount = isCount; } @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "REPORT_ID") public Set<ReportColumn> getReportColumns() { return this.reportColumns; } public void setReportColumns(Set<ReportColumn> reportColumns) { this.reportColumns = reportColumns; } @NotNull(message = "{edu.ualberta.med.biobank.model.Report.entity.NotNull}") @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "ENTITY_ID", nullable = false) public Entity getEntity() { return this.entity; } public void setEntity(Entity entity) { this.entity = entity; } @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "REPORT_ID") public Set<ReportFilter> getReportFilters() { return this.reportFilters; } public void setReportFilters(Set<ReportFilter> reportFilters) { this.reportFilters = reportFilters; } }