Source:
<code>public List<Variant> create(String fileId, String studyId, String line) throws IllegalArgumentException { String[] fields = line.split("\t"); if (fields.length < 8) { throw new IllegalArgumentException("Not enough fields provided (min 8)"); } String chromosome = getChromosomeWithoutPrefix(fields); int position = getPosition(fields); Set<String> ids = getIds(fields); String reference = getReference(fields); String[] alternateAlleles = getAlternateAlleles(fields, chromosome, position, reference); float quality = getQuality(fields); String filter = getFilter(fields); String info = getInfo(fields); String format = getFormat(fields); List<VariantKeyFields> generatedKeyFields = buildVariantKeyFields(chromosome, position, reference, alternateAlleles); List<Variant> variants = new LinkedList<>(); for (int altAlleleIdx = 0; altAlleleIdx < alternateAlleles.length; altAlleleIdx++) { VariantKeyFields keyFields = generatedKeyFields.get(altAlleleIdx); Variant variant = new Variant(chromosome, keyFields.getStart(), keyFields.getEnd(), keyFields.getReference(), keyFields.getAlternate()); String[] secondaryAlternates = getSecondaryAlternates(altAlleleIdx, alternateAlleles); VariantSourceEntry file = new VariantSourceEntry(fileId, studyId, secondaryAlternates, format, null, null, <START> null); <END> variant.addSourceEntry(file); parseSplitSampleData(variant, fileId, studyId, fields, alternateAlleles, secondaryAlternates, altAlleleIdx); setOtherFields(variant, fileId, studyId, ids, quality, filter, info, format, altAlleleIdx, alternateAlleles, line); variants.add(variant); } return variants; }</code><technical_language>preferable add a new VariantSourceEntry constructor 4 arguments delegates 7-argument one</technical_language>

Target:
public List<Variant> create(String fileId, String studyId, String line) throws IllegalArgumentException { String[] fields = line.split("\t"); if (fields.length < 8) { throw new IllegalArgumentException("Not enough fields provided (min 8)"); } String chromosome = getChromosomeWithoutPrefix(fields); int position = getPosition(fields); Set<String> ids = getIds(fields); String reference = getReference(fields); String[] alternateAlleles = getAlternateAlleles(fields, chromosome, position, reference); float quality = getQuality(fields); String filter = getFilter(fields); String info = getInfo(fields); String format = getFormat(fields); List<VariantCoreFields> generatedKeyFields = buildVariantCoreFields(chromosome, position, reference, alternateAlleles); List<Variant> variants = new LinkedList<>(); for (int altAlleleIdx = 0; altAlleleIdx < alternateAlleles.length; altAlleleIdx++) { VariantCoreFields keyFields = generatedKeyFields.get(altAlleleIdx); Variant variant = new Variant(chromosome, keyFields.getStart(), keyFields.getEnd(), keyFields.getReference(), keyFields.getAlternate()); String[] secondaryAlternates = getSecondaryAlternates(altAlleleIdx, alternateAlleles); VariantSourceEntry file = new VariantSourceEntry(fileId, studyId, secondaryAlternates, format); variant.addSourceEntry(file); parseSplitSampleData(variant, fileId, studyId, fields, alternateAlleles, secondaryAlternates, altAlleleIdx); setOtherFields(variant, fileId, studyId, ids, quality, filter, info, format, altAlleleIdx, alternateAlleles, line); variants.add(variant); } return variants; }