public GVFVariant copy() {
   GVFVariant dst = new GVFVariant();
   dst.subject = subject == null ? null : subject.copy(dst);
   dst.meta = meta == null ? null : meta.copy();
   dst.sourceFile = sourceFile == null ? null : sourceFile.copy();
   dst.seqid = seqid == null ? null : seqid.copy();
   dst.source = source == null ? null : source.copy();
   dst.type = type == null ? null : type.copy();
   dst.start = start == null ? null : start.copy();
   dst.end = end == null ? null : end.copy();
   dst.score = score == null ? null : score.copy();
   dst.strand = strand == null ? null : strand.copy();
   dst.featureId = featureId == null ? null : featureId.copy();
   dst.alias = alias == null ? null : alias.copy();
   dst.dbxref = dbxref == null ? null : dbxref.copy(dst);
   dst.variantSeq = new ArrayList<String_>();
   for (String_ i : variantSeq) dst.variantSeq.add(i.copy());
   dst.referenceSeq = referenceSeq == null ? null : referenceSeq.copy();
   dst.variantFreq = new ArrayList<Decimal>();
   for (Decimal i : variantFreq) dst.variantFreq.add(i.copy());
   dst.variantEffect = new ArrayList<GVFVariantVariantEffectComponent>();
   for (GVFVariantVariantEffectComponent i : variantEffect) dst.variantEffect.add(i.copy(dst));
   dst.startRange = startRange == null ? null : startRange.copy(dst);
   dst.endRange = endRange == null ? null : endRange.copy(dst);
   dst.variantCodon = new ArrayList<String_>();
   for (String_ i : variantCodon) dst.variantCodon.add(i.copy());
   dst.referenceCodon = referenceCodon == null ? null : referenceCodon.copy();
   dst.variantAA = new ArrayList<String_>();
   for (String_ i : variantAA) dst.variantAA.add(i.copy());
   dst.referenceAA = new ArrayList<String_>();
   for (String_ i : referenceAA) dst.referenceAA.add(i.copy());
   dst.breakpointDetail = breakpointDetail == null ? null : breakpointDetail.copy(dst);
   dst.sequenceContext = sequenceContext == null ? null : sequenceContext.copy(dst);
   dst.individual = new ArrayList<String_>();
   for (String_ i : individual) dst.individual.add(i.copy());
   dst.sample = new ArrayList<GVFVariantSampleComponent>();
   for (GVFVariantSampleComponent i : sample) dst.sample.add(i.copy(dst));
   return dst;
 }
 public Decimal addVariantFreqSimple(BigDecimal value) {
   Decimal t = new Decimal();
   t.setValue(value);
   this.variantFreq.add(t);
   return t;
 }