package net.sourceforge.seqware.common.model;
import java.io.Serializable;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
* <p>
* Organism class.
* </p>
*
* @author boconnor
* @version $Id: $Id
*/
public class Organism implements Serializable, Comparable<Organism>, SecondTierModel {
private static final long serialVersionUID = 3472028192033390568L;
private Integer organismId;
private String name;
private String code;
private String accession;
private Integer ncbiTaxId;
/**
* <p>
* Constructor for Organism.
* </p>
*/
public Organism() {
super();
}
/**
* {@inheritDoc}
*
* @param that
*/
@Override
public int compareTo(Organism that) {
if (that == null) return -1;
if (that.getName() == null && this.getName() == null) // when both names are null
return 0;
if (that.getName() == null) return -1; // when only the other name is null
return (that.getName().compareTo(this.getName()));
}
/**
* {@inheritDoc}
*
* @param other
*/
@Override
public boolean equals(Object other) {
if ((this == other)) return true;
if (!(other instanceof Organism)) return false;
Organism castOther = (Organism) other;
return new EqualsBuilder().append(this.getName(), castOther.getName()).isEquals();
}
@Override
public String toString() {
return new StringBuilder().append("Organism ").append(organismId).append(":\t").append(name).toString();
}
/**
* <p>
* hashCode.
* </p>
*
* @return a int.
*/
@Override
public int hashCode() {
return new HashCodeBuilder().append(getName()).toHashCode();
}
/**
* <p>
* Getter for the field <code>organismId</code>.
* </p>
*
* @return a {@link java.lang.Integer} object.
*/
public Integer getOrganismId() {
return organismId;
}
/**
* <p>
* Setter for the field <code>organismId</code>.
* </p>
*
* @param organismId
* a {@link java.lang.Integer} object.
*/
public void setOrganismId(Integer organismId) {
this.organismId = organismId;
}
/**
* <p>
* Getter for the field <code>name</code>.
* </p>
*
* @return a {@link java.lang.String} object.
*/
public String getName() {
return name;
}
/**
* <p>
* Setter for the field <code>name</code>.
* </p>
*
* @param name
* a {@link java.lang.String} object.
*/
public void setName(String name) {
this.name = name;
}
/**
* <p>
* Getter for the field <code>code</code>.
* </p>
*
* @return a {@link java.lang.String} object.
*/
public String getCode() {
return code;
}
/**
* <p>
* Setter for the field <code>code</code>.
* </p>
*
* @param code
* a {@link java.lang.String} object.
*/
public void setCode(String code) {
this.code = code;
}
/**
* <p>
* Getter for the field <code>accession</code>.
* </p>
*
* @return a {@link java.lang.String} object.
*/
public String getAccession() {
return accession;
}
/**
* <p>
* Setter for the field <code>accession</code>.
* </p>
*
* @param accession
* a {@link java.lang.String} object.
*/
public void setAccession(String accession) {
this.accession = accession;
}
/**
* <p>
* Getter for the field <code>ncbiTaxId</code>.
* </p>
*
* @return a {@link java.lang.Integer} object.
*/
public Integer getNcbiTaxId() {
return ncbiTaxId;
}
/**
* <p>
* Setter for the field <code>ncbiTaxId</code>.
* </p>
*
* @param ncbiTaxId
* a {@link java.lang.Integer} object.
*/
public void setNcbiTaxId(Integer ncbiTaxId) {
this.ncbiTaxId = ncbiTaxId;
}
@Override
public int getModelId() {
return this.getOrganismId();
}
}