Package htsjdk.variant.variantcontext.filter

# Class CompoundFilter

java.lang.Object
java.util.AbstractCollection<VariantContextFilter>
java.util.AbstractList<VariantContextFilter>
java.util.ArrayList<VariantContextFilter>
htsjdk.variant.variantcontext.filter.CompoundFilter

All Implemented Interfaces:
  `VariantContextFilter`, `Serializable`, `Cloneable`, `Iterable<VariantContextFilter>`, `Collection<VariantContextFilter>`, `Predicate<VariantContext>`, `List<VariantContextFilter>`, `RandomAccess`, `SequencedCollection<VariantContextFilter>`

public class CompoundFilter extends ArrayList<VariantContextFilter> implements VariantContextFilter
A Predicate on VariantContexts that returns true when either all its sub-predicates are true, or none are false.

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from class java.util.AbstractList

`modCount`

## Constructor Summary

Constructors
Constructor
Description
`CompoundFilter(boolean requireAll)`
A constructor that will determine if this compound filter will require that *all* the included filters pass or *some* of them pass (depending on the requireAll parameter in the constructor).

## Method Summary

Modifier and Type
Method
Description
`boolean`
`test(VariantContext variantContext)`

### Methods inherited from class java.util.ArrayList

`add, add, addAll, addAll, addFirst, addLast, clear, clone, contains, ensureCapacity, equals, forEach, get, getFirst, getLast, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeFirst, removeIf, removeLast, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize`

### Methods inherited from class java.util.AbstractCollection

`containsAll, toString`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Collection

`parallelStream, stream, toArray`

### Methods inherited from interface java.util.List

`containsAll, reversed`

### Methods inherited from interface java.util.function.Predicate

`and, negate, or`

## Constructor Details

### CompoundFilter

public CompoundFilter(boolean requireAll)
A constructor that will determine if this compound filter will require that *all* the included filters pass or *some* of them pass (depending on the requireAll parameter in the constructor).

Parameters:
  `requireAll` - a boolean parameter determining whether this filter requires all its elements to pass (true) for it to pass, or only one (false). If there are no variantfilters it will return true.

## Method Details

### test

public boolean test(VariantContext variantContext)

Specified by:
  `test` in interface `Predicate<VariantContext>`
Parameters:
  `variantContext` - the record to examine against the sub-filters
Returns:
  true if variantContext either passes all the filters (when requireAll==true) or doesn't fail any of the filters (when requireAll==false)