class BDDPrefix {

  public @Nonnull BDD permittedByRouteFilterList(RouteFilterList routeFilterList) {
    BDD result = getFactory().zero();
    List<RouteFilterLine> lines = ImmutableList.copyOf(routeFilterList.getLines()).reverse();
    for (RouteFilterLine line : lines) {
      if (!line.getIpWildcard().isPrefix()) {
        throw new BatfishException("non-prefix IpWildcards are unsupported");
      }
      PrefixRange range = new PrefixRange(line.getIpWildcard().toPrefix(), line.getLengthRange());
      BDD matches = inPrefixRange(range);
      BDD action = line.getAction() == LineAction.PERMIT ? _factory.one() : _factory.zero();
      result = matches.ite(action, result);
    }
    return result;
  }

  public  BDDPrefix(BDDInteger ip, BDDInteger prefixLength);

}