/*
* 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.domain;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Objects;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author joseph
*/
@Entity
@Table(name = "UNIPROT_XREF")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "UniprotXref.findAll", query = "SELECT u FROM UniprotXref u"),
@NamedQuery(name = "UniprotXref.findByXrefId", query = "SELECT u FROM UniprotXref u WHERE u.xrefId = :xrefId"),
@NamedQuery(name = "UniprotXref.findByDbentryId", query = "SELECT u FROM UniprotXref u WHERE u.dbentryId = :dbentryId"),
@NamedQuery(name = "UniprotXref.findBySourceId", query = "SELECT u FROM UniprotXref u WHERE u.sourceId = :sourceId"),
@NamedQuery(name = "UniprotXref.findBySource", query = "SELECT u FROM UniprotXref u WHERE u.source = :source")})
public class UniprotXref implements Comparable<UniprotXref>, Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "SOURCE_NAME")
private String sourceName;
// @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
@Id
@Basic(optional = false)
@Column(name = "XREF_ID")
private BigDecimal xrefId;
@Basic(optional = false)
@Column(name = "DBENTRY_ID")
private long dbentryId;
@Column(name = "SOURCE_ID")
private String sourceId;
@Column(name = "SOURCE")
private String source;
@JoinColumn(name = "ACCESSION", referencedColumnName = "ACCESSION")
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private UniprotEntry accession;
public UniprotXref() {
}
public UniprotXref(BigDecimal xrefId) {
this.xrefId = xrefId;
}
public UniprotXref(BigDecimal xrefId, long dbentryId) {
this.xrefId = xrefId;
this.dbentryId = dbentryId;
}
public BigDecimal getXrefId() {
return xrefId;
}
public void setXrefId(BigDecimal xrefId) {
this.xrefId = xrefId;
}
public long getDbentryId() {
return dbentryId;
}
public void setDbentryId(long dbentryId) {
this.dbentryId = dbentryId;
}
public String getSourceId() {
return sourceId;
}
public void setSourceId(String sourceId) {
this.sourceId = sourceId;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public UniprotEntry getAccession() {
return accession;
}
public void setAccession(UniprotEntry accession) {
this.accession = accession;
}
@Override
public int hashCode() {
int hash = 3;
hash = 37 * hash + Objects.hashCode(this.xrefId);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final UniprotXref other = (UniprotXref) obj;
if (!Objects.equals(this.xrefId, other.xrefId)) {
return false;
}
return true;
}
@Override
public String toString() {
return "UniprotXref{" + "sourceName=" + sourceName + ", sourceId=" + sourceId + ", source=" + source + '}';
}
public String getSourceName() {
return sourceName;
}
public void setSourceName(String sourceName) {
this.sourceName = sourceName;
}
@Override
public int compareTo(UniprotXref p) {
return this.sourceId.compareToIgnoreCase(p.getSourceId());
}
}