class AndFilter implements FilterSet {

  @Override
  public DEREncoder getEncoder()
  {
    if (filterComponents.size() == 0) {
      return new NullType(new ContextDERTag(Type.AND.ordinal(), true));
    } else {
      return new ConstructedDEREncoder(
        new ContextDERTag(Type.AND.ordinal(), true),
        filterComponents.stream().map(Filter::getEncoder).toArray(DEREncoder[]::new));
    }
  }

  public  AndFilter();
  public  AndFilter(final Filter... components);

}