package org.tgdb.model.modelmanager;
import org.tgdb.model.strain.state.StrainStateRemote;
import org.tgdb.model.strain.strain.StrainRemote;
import org.tgdb.model.strain.type.StrainTypeRemote;
import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
public class StrainDTO implements Serializable, Comparable {
private int strainid, models;
private String designation, designation_ss, strain_links_string, strainTypeName, strainStateNames;
public StrainDTO(StrainRemote strain) {
try
{
strainid = strain.getStrainid();
designation = strain.getDesignation();
designation_ss = strain.getDesignation().replaceAll("<","<").replaceAll(">",">");
designation_ss = designation_ss.replaceAll("<","<sup>").replaceAll(">","</sup>");
strain_links_string = strain.getStrain_links_string();
models = strain.getModels();
Collection types = strain.getTypes();
int j=0;
StrainTypeRemote type;
Iterator i = types.iterator();
while (i.hasNext())
{
type = (StrainTypeRemote)i.next();
if (j!=0)
strainTypeName += ", ";
strainTypeName += type.getName();
j++;
}
Collection states = strain.getStates();
j=0;
StrainStateRemote state;
i = states.iterator();
while (i.hasNext())
{
state = (StrainStateRemote)i.next();
if (j!=0)
strainStateNames += ", ";
strainStateNames += state.getName();
j++;
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
public int compareTo(Object anotherObj) {
if(!(anotherObj instanceof StrainDTO))
throw new ClassCastException("Object is of wrong class. StrainDTO object expected but not found.");
return getDesignation().compareTo(((StrainDTO)anotherObj).getDesignation());
}
@Override
public boolean equals(Object obj){
if (obj instanceof StrainDTO && ((StrainDTO)obj).strainid == this.strainid)
return true;
else
return false;
}
public int getStrainId() {
return strainid;
}
public String getDesignation() {
return designation;
}
public String getDesignation_ss() {
return designation_ss;
}
public int getModels() {
return models;
}
public String getStrainTypeNames(){
return strainTypeName;
}
public String getStrainStateNames()
{
return strainStateNames;
}
// public String getMgiId()
// {
// return mgiid;
// }
public String getStrain_links_string() {
return this.strain_links_string;
}
}