/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package uk.ac.ebi.ep.data.search.model;
import java.util.Objects;
import org.springframework.util.StringUtils;
/**
* Taxonomy is a data transfer object for model organisms
*
* @author joseph
*/
public class Taxonomy implements Comparable<Taxonomy>{
private Long taxId;
private String scientificName;
private String commonName;
private Long numEnzymes;
public Taxonomy(Long taxId, String scientificName, String commonName) {
this.taxId = taxId;
this.scientificName = scientificName;
this.commonName = commonName;
}
public Taxonomy(Long taxId, String scientificName, String commonName, Long numEnzymes) {
this.taxId = taxId;
this.scientificName = scientificName;
this.commonName = commonName;
this.numEnzymes = numEnzymes;
}
public Long getTaxId() {
return taxId;
}
public void setTaxId(Long taxId) {
this.taxId = taxId;
}
public String getScientificName() {
return scientificName;
}
public void setScientificName(String scientificName) {
this.scientificName = scientificName;
}
public String getCommonName() {
if (StringUtils.isEmpty(commonName) && "Escherichia coli (strain K12)".equalsIgnoreCase(scientificName)) {
commonName = "E.Coli";
}
if (StringUtils.isEmpty(commonName) && "Bacillus subtilis (strain 168)".equalsIgnoreCase(scientificName)) {
commonName = "Bacillus subtilis";
}
return commonName;
}
public void setCommonName(String commonName) {
this.commonName = commonName;
}
public Long getNumEnzymes() {
return numEnzymes;
}
public void setNumEnzymes(Long numEnzymes) {
this.numEnzymes = numEnzymes;
}
@Override
public String toString() {
return "Taxonomy{" + "taxId=" + taxId + ", scientificName=" + scientificName + ", commonName=" + commonName + ", num_enzymes=" + numEnzymes + '}';
}
@Override
public int compareTo(Taxonomy other) {
return taxId.compareTo(other.getTaxId());
}
@Override
public int hashCode() {
int hash = 7;
hash = 29 * hash + Objects.hashCode(this.taxId);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Taxonomy other = (Taxonomy) obj;
if (!Objects.equals(this.taxId, other.taxId)) {
return false;
}
return true;
}
}