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

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<String> vcfFileIds;

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

    public SampleVariantQualityControlMetrics(List<SampleQcVariantStats> variantStats, List<Signature> signatures,
                                              List<String> vcfFileIds) {
        this.variantStats = variantStats;
        this.signatures = signatures;
        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(", 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<String> getVcfFileIds() {
        return vcfFileIds;
    }

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

@@ -37,24 +37,81 @@
 ls.sample;%0A%0A
+import org.opencb.biodata.models.clinical.qc.CircosPlot;%0A
 import org.o
@@ -165,16 +165,16 @@
 tStats;%0A
-
 import o
@@ -414,24 +414,66 @@
 signatures;%0A
+    private List%3CCircosPlot%3E circosPlots;%0A
     private 
@@ -590,32 +590,51 @@
 w ArrayList%3C%3E(),
+ new ArrayList%3C%3E(),
  new ArrayList%3C%3E
@@ -905,32 +905,461 @@
 s = signatures;%0A
+        this.circosPlots = new ArrayList%3C%3E();%0A        this.vcfFileIds = vcfFileIds;%0A    %7D%0A%0A    public SampleVariantQualityControlMetrics(List%3CSampleQcVariantStats%3E variantStats, List%3CSignature%3E signatures,%0A                                              List%3CCircosPlot%3E circosPlots, List%3CString%3E vcfFileIds) %7B%0A        this.variantStats = variantStats;%0A        this.signatures = signatures;%0A        this.circosPlots = circosPlots;%0A
         this.vcf
@@ -1631,24 +1631,81 @@
 ignatures);%0A
+        sb.append(%22, circosPlots=%22).append(circosPlots);%0A
         sb.a
@@ -2242,24 +2242,24 @@
 gnatures) %7B%0A
-
         this
@@ -2304,32 +2304,275 @@
 rn this;%0A    %7D%0A%0A
+    public List%3CCircosPlot%3E getCircosPlots() %7B%0A        return circosPlots;%0A    %7D%0A%0A    public SampleVariantQualityControlMetrics setCircosPlots(List%3CCircosPlot%3E circosPlots) %7B%0A        this.circosPlots = circosPlots;%0A        return this;%0A    %7D%0A%0A
     public List%3C

add CircosPlot to SampleQualityControlMetrics, #1730