package org.molgenis.gavin.job; import com.google.common.collect.ImmutableMultiset; import com.google.common.collect.Multiset; import org.molgenis.data.Entity; import org.molgenis.data.jobs.model.JobExecution; import org.molgenis.data.meta.model.EntityType; import org.molgenis.gavin.job.input.model.LineType; import static org.molgenis.gavin.job.input.model.LineType.*; import static org.molgenis.gavin.job.meta.GavinJobExecutionMetaData.*; public class GavinJobExecution extends JobExecution { private static final long serialVersionUID = 1L; private static final String GAVIN = "gavin"; public GavinJobExecution(Entity entity) { super(entity); setType(GAVIN); } public GavinJobExecution(EntityType entityType) { super(entityType); setType(GAVIN); } public GavinJobExecution(String identifier, EntityType entityType) { super(identifier, entityType); setType(GAVIN); } public String getFilename() { return getString(FILENAME); } public void setFilename(String filename) { set(FILENAME, filename); } public String getInputFileExtension() { return getString(INPUT_FILE_EXTENSION); } public void setInputFileExtension(String extension) { set(INPUT_FILE_EXTENSION, extension); } public void setLineTypes(Multiset<LineType> lineTypes) { set(COMMENTS, lineTypes.count(COMMENT)); set(VCFS, lineTypes.count(VCF)); set(CADDS, lineTypes.count(CADD)); set(ERRORS, lineTypes.count(ERROR)); set(INDELS_NOCADD, lineTypes.count(INDEL_NOCADD)); set(SKIPPEDS, lineTypes.count(SKIPPED)); } public Multiset<LineType> getLineTypes() { ImmutableMultiset.Builder<LineType> builder = ImmutableMultiset.builder(); builder.addCopies(COMMENT, getInt(COMMENTS)); builder.addCopies(VCF, getInt(VCFS)); builder.addCopies(CADD, getInt(CADDS)); builder.addCopies(ERROR, getInt(ERRORS)); builder.addCopies(INDEL_NOCADD, getInt(INDELS_NOCADD)); builder.addCopies(SKIPPED, getInt(SKIPPEDS)); return builder.build(); } }