code: public List<T> filter(List<T> results) {
          if (filters.isEmpty() || results == null) {
              return results;
          }
          
          List<T> include = new ArrayList<>();
          
          for (T result : results) {
              if (include(result)) {
                  include.add(result);
              }
          }
          
          return results.size() == include.size() ? results : include;
      }
docs: Filters a list of results based on the member filters.
  
  @param results Result list to filter.
  @return The filtered list. Note that if no results are filtered, the original list is
  returned.