package plugins.AddIndividual;
import java.util.ArrayList;
import java.util.List;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.db.DatabaseException;
import org.molgenis.framework.db.QueryRule;
import org.molgenis.framework.db.QueryRule.Operator;
import org.molgenis.matrix.component.general.MatrixQueryRule;
import org.molgenis.pheno.Individual;
import org.molgenis.pheno.Measurement;
import org.molgenis.pheno.ObservedValue;
public class SelectFamily
{
Integer newFamilyNumber = 0;
String newFamily = "";
private List<Individual> listIndiv = new ArrayList<Individual>();
Integer lastFamilyNumber = 0;
public String family(Database db, String project)
{
ReferenceList ref = new ReferenceList();
try
{
List<QueryRule> filterRules = new ArrayList<QueryRule>();
filterRules.add(new QueryRule(ObservedValue.FEATURE_NAME, Operator.EQUALS, "id_family"));
filterRules.add(new QueryRule(ObservedValue.INVESTIGATION_NAME, Operator.EQUALS, project));
int size = db.find(ObservedValue.class, new QueryRule(filterRules)).size();
// Select last family from the specific project
String lastFamily = db.find(ObservedValue.class, new QueryRule(filterRules)).get(size - 1).getValue();
// cut off the 2 first chars
lastFamilyNumber = Integer.valueOf(lastFamily.substring(2)).intValue();
// Create new number
newFamilyNumber = lastFamilyNumber + 1;
}
catch (DatabaseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
// Paste the project chars together with new familyID and return value
return ref.Reference(project) + newFamilyNumber;
}
public Integer getNewFamilyNumber()
{
return newFamilyNumber;
}
public void setNewFamilyNumber(Integer newFamilyNumber)
{
this.newFamilyNumber = newFamilyNumber;
}
public String getNewFamily()
{
return newFamily;
}
public void setNewFamily(String newFamily)
{
this.newFamily = newFamily;
}
public List<Individual> getListIndiv()
{
return listIndiv;
}
public void setListIndiv(List<Individual> listIndiv)
{
this.listIndiv = listIndiv;
}
}