package org.opencb.opencga.core.models.sample;

import org.opencb.biodata.models.clinical.qc.GenomePlot;
import org.opencb.biodata.models.clinical.qc.SampleQcVariantStats;
import org.opencb.biodata.models.clinical.qc.Signature;

import java.util.ArrayList;
import java.util.List;

public class SampleVariantQualityControlMetrics {

    private List<SampleQcVariantStats> variantStats;
    private List<Signature> signatures;
    private List<GenomePlot> genomePlots;
    private List<String> vcfFileIds;

    public SampleVariantQualityControlMetrics() {
        this(new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>());
    }

    public SampleVariantQualityControlMetrics(List<SampleQcVariantStats> variantStats, List<Signature> signatures,
                                              List<String> vcfFileIds) {
        this.variantStats = variantStats;
        this.signatures = signatures;
        this.genomePlots = new ArrayList<>();
        this.vcfFileIds = vcfFileIds;
    }

    public SampleVariantQualityControlMetrics(List<SampleQcVariantStats> variantStats, List<Signature> signatures,
                                              List<GenomePlot> genomePlots, List<String> vcfFileIds) {
        this.variantStats = variantStats;
        this.signatures = signatures;
        this.genomePlots = genomePlots;
        this.vcfFileIds = vcfFileIds;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("SampleVariantQualityControlMetrics{");
        sb.append("variantStats=").append(variantStats);
        sb.append(", signatures=").append(signatures);
        sb.append(", genomePlots=").append(genomePlots);
        sb.append(", vcfFileIds=").append(vcfFileIds);
        sb.append('}');
        return sb.toString();
    }

    public List<SampleQcVariantStats> getVariantStats() {
        return variantStats;
    }

    public SampleVariantQualityControlMetrics setVariantStats(List<SampleQcVariantStats> variantStats) {
        this.variantStats = variantStats;
        return this;
    }

    public List<Signature> getSignatures() {
        return signatures;
    }

    public SampleVariantQualityControlMetrics setSignatures(List<Signature> signatures) {
        this.signatures = signatures;
        return this;
    }

    public List<GenomePlot> getGenomePlots() {
        return genomePlots;
    }

    public SampleVariantQualityControlMetrics setGenomePlots(List<GenomePlot> genomePlots) {
        this.genomePlots = genomePlots;
        return this;
    }

    public List<String> getVcfFileIds() {
        return vcfFileIds;
    }

    public SampleVariantQualityControlMetrics setVcfFileIds(List<String> vcfFileIds) {
        this.vcfFileIds = vcfFileIds;
        return this;
    }
}

@@ -463,45 +463,8 @@
 ots;
-%0A    private List%3CString%3E vcfFileIds;
 %0A%0A  
@@ -561,35 +561,16 @@
 ist%3C%3E(),
- new ArrayList%3C%3E(),
  new Arr
@@ -706,79 +706,8 @@
 ures
-,%0A                                              List%3CString%3E vcfFileIds
 ) %7B%0A
@@ -836,46 +836,8 @@
 ();%0A
-        this.vcfFileIds = vcfFileIds;%0A
     
@@ -1032,33 +1032,8 @@
 lots
-, List%3CString%3E vcfFileIds
 ) %7B%0A
@@ -1156,46 +1156,8 @@
 ts;%0A
-        this.vcfFileIds = vcfFileIds;%0A
     
@@ -1468,63 +1468,8 @@
 s);%0A
-        sb.append(%22, vcfFileIds=%22).append(vcfFileIds);%0A
     
@@ -2274,236 +2274,7 @@
    %7D
-%0A%0A    public List%3CString%3E getVcfFileIds() %7B%0A        return vcfFileIds;%0A    %7D%0A%0A    public SampleVariantQualityControlMetrics setVcfFileIds(List%3CString%3E vcfFileIds) %7B%0A        this.vcfFileIds = vcfFileIds;%0A        return this;%0A    %7D
 %0A%7D%0A

remove vcfFileIds in SampleQualityControlMetrics