package org.molgenis.gonl_pheno;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.db.DatabaseException;
import org.molgenis.framework.db.ExampleData;
import org.molgenis.pheno.Individual;
import org.molgenis.pheno.Measurement;
import org.molgenis.pheno.ObservedValue;
import org.molgenis.pheno.Panel;
public class DataSet implements ExampleData
{
public Map<String, Panel> panels = new LinkedHashMap<String, Panel>();
public Map<String, Individual> individuals = new LinkedHashMap<String, Individual>();
public Map<String, Measurement> measurements = new LinkedHashMap<String, Measurement>();
public List<ObservedValue> values = new ArrayList<ObservedValue>();
public void addPanel(String name)
{
if (panels.get(name) == null)
{
Panel p = new Panel();
p.setName(name);
panels.put(name, p);
}
}
public void addIndividual(String name)
{
if (individuals.get(name) == null)
{
Individual i = new Individual();
i.setName(name);
individuals.put(name, i);
}
}
public void addValue(Individual individual, String measurement, String value)
{
if (measurements.get(measurement) == null)
{
Measurement m = new Measurement();
m.setName(measurement);
measurements.put(measurement, m);
}
ObservedValue v = new ObservedValue();
v.setTarget_Name(individual.getName());
v.setFeature_Name(measurement);
v.setValue(value);
values.add(v);
}
@Override
public void load(Database db) throws DatabaseException
{
db.add(new ArrayList(this.measurements.values()));
db.add(new ArrayList(this.individuals.values()));
db.add(new ArrayList(this.panels.values()));
db.add(this.values);
}
}