class FilterChain implements Filter<T> {

    @Override
    public Set<T> apply( Set<T> data )
    {
        for ( Filter<T> filter : chain )
        {
            data = filter.apply( data );
        }
        return data;
    }

    public  FilterChain( List<Filter<T>> chain );

}