package uk.ac.ox.zoo.seeg.abraid.mp.common.dto.csv; import com.fasterxml.jackson.dataformat.csv.CsvSchema; import uk.ac.ox.zoo.seeg.abraid.mp.common.util.ParseUtils; import java.io.IOException; import java.util.List; /** * CSV DTO which represents the influence of a covariate file on a model run through its full range of values, * for plotting in an effect curve. * Copyright (c) 2014 University of Oxford */ public class CsvEffectCurveCovariateInfluence extends AbstractCsvCovariateInfluence { private Double covariateValue; /** * Parses a collection of CsvCovariateInfluence entries from a csv string (header row expected). * @param csv The csv string. * @return A collection of CsvCovariateInfluence entries. * @throws java.io.IOException Thrown if the parsing fails. */ public static List<CsvEffectCurveCovariateInfluence> readFromCSV(String csv) throws IOException { CsvSchema schema = CsvSchema.builder() .setSkipFirstDataRow(true) .addColumn("name") .addColumn("covariateValue") .addColumn("meanInfluence", CsvSchema.ColumnType.NUMBER) .addColumn("lowerQuantile", CsvSchema.ColumnType.NUMBER) .addColumn("upperQuantile", CsvSchema.ColumnType.NUMBER) .build(); return ParseUtils.readFromCsv(csv, CsvEffectCurveCovariateInfluence.class, schema); } public Double getCovariateValue() { return covariateValue; } public void setCovariateValue(Double covariateValue) { this.covariateValue = covariateValue; } }