package uk.ac.ox.zoo.seeg.abraid.mp.common.domain; import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; import javax.persistence.*; import java.util.Collection; import java.util.List; /** * Represents a covariate surface (can be a single file, or multiple temporally resolved files). * Copyright (c) 2015 University of Oxford */ @Entity @Table(name = "covariate_file") @NamedQueries({ @NamedQuery( name = "getCovariateFilesByDiseaseGroup", query = "select c from CovariateFile c " + "join c.enabledDiseaseGroups d " + "where d.id=:diseaseGroupId and c.hide=false" ) }) public class CovariateFile { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column private String name; @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "covariateFile") @Fetch(FetchMode.SELECT) @Column(nullable = false, updatable = false) private List<CovariateSubFile> files; @Column(nullable = false) private Boolean hide; @Column(nullable = false) private Boolean discrete; @Column private String info; @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinTable(name = "disease_group_covariate_file", joinColumns = @JoinColumn(name = "covariate_file_id"), inverseJoinColumns = @JoinColumn(name = "disease_group_id")) @Fetch(FetchMode.SELECT) private Collection<DiseaseGroup> enabledDiseaseGroups; @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "covariateFile") @Fetch(FetchMode.SELECT) private Collection<CovariateValueBin> covariateValueHistogramData; public CovariateFile() { } public CovariateFile(String name, Boolean hide, Boolean discrete, String info) { setName(name); setHide(hide); setDiscrete(discrete); setInfo(info); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<CovariateSubFile> getFiles() { return files; } public void setFiles(List<CovariateSubFile> files) { this.files = files; } public Boolean getHide() { return hide; } public void setHide(Boolean hide) { this.hide = hide; } public Boolean getDiscrete() { return discrete; } public void setDiscrete(Boolean discrete) { this.discrete = discrete; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public Collection<DiseaseGroup> getEnabledDiseaseGroups() { return enabledDiseaseGroups; } public void setEnabledDiseaseGroups(Collection<DiseaseGroup> enabledDiseaseGroups) { this.enabledDiseaseGroups = enabledDiseaseGroups; } public Collection<CovariateValueBin> getCovariateValueHistogramData() { return covariateValueHistogramData; } public void setCovariateValueHistogramData(Collection<CovariateValueBin> covariateValueHistogramData) { this.covariateValueHistogramData = covariateValueHistogramData; } ///COVERAGE:OFF - generated code ///CHECKSTYLE:OFF AvoidInlineConditionalsCheck|LineLengthCheck|MagicNumberCheck|NeedBracesCheck - generated code @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof CovariateFile)) return false; CovariateFile that = (CovariateFile) o; if (hide != null ? !hide.equals(that.hide) : that.hide != null) return false; if (discrete != null ? !discrete.equals(that.discrete) : that.discrete != null) return false; if (id != null ? !id.equals(that.id) : that.id != null) return false; if (info != null ? !info.equals(that.info) : that.info != null) return false; if (name != null ? !name.equals(that.name) : that.name != null) return false; return true; } @Override public int hashCode() { int result = id != null ? id.hashCode() : 0; result = 31 * result + (name != null ? name.hashCode() : 0); result = 31 * result + (hide != null ? hide.hashCode() : 0); result = 31 * result + (discrete != null ? discrete.hashCode() : 0); result = 31 * result + (info != null ? info.hashCode() : 0); return result; } ///CHECKSTYLE:ON ///COVERAGE:ON }