# Class VariantProcessor<RESULT, ACCUMULATOR extends VariantProcessor.Accumulator<RESULT>>

java.lang.Object
picard.vcf.processor.VariantProcessor<RESULT, ACCUMULATOR>

public class VariantProcessor<RESULT, ACCUMULATOR extends VariantProcessor.Accumulator<RESULT>> extends Object
Describes an object that processes variants and produces a result.

A consumer typically builds an instance of this class via `VariantProcessor.Builder`, providing it the appropriate `VariantProcessor.AccumulatorGenerator` and `VariantProcessor.ResultMerger`, then calls `process()` to obtain the RESULT of the processing.

Future work...? - Make more efficient for the single-thread case. - A `VcfPathSegmentGenerator` that is based on an interval list, so that segments' span a constant-size total-base-count overlap with the interval list (or something in that vein).

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static interface`
`VariantProcessor.Accumulator<RESULT>`
Handles `VariantContext`s, and accumulates their data in some fashion internally.
`static interface`
`VariantProcessor.AccumulatorGenerator<ACCUMULATOR extends VariantProcessor.Accumulator<RESULT>, RESULT>`
Generates instances of `VariantProcessor.Accumulator`s.
`static class`
`VariantProcessor.Builder<A extends VariantProcessor.Accumulator<R>, R>`
Simple builder of `VariantProcessor`s.
`static interface`
`VariantProcessor.ResultMerger<RESULT>`
Takes a collection of results produced by `VariantProcessor.Accumulator.result()` and merges them into a single RESULT.

## Method Summary

Modifier and Type
Method
Description
`RESULT`
`process()`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### process

public RESULT process()