code: private Boolean acceptRecursive(V value) {
  
      Boolean result = null;
      if (this.parent != null) {
        result = this.parent.acceptRecursive(value);
        if (result != null) {
          return result;
        }
      }
      for (FilterRule<V> rule : this.rules) {
        result = rule.accept(value);
        if (result != null) {
          return result;
        }
      }
      return result;
    }
docs: This method implements {@link #accept(Object)} recursively.
  
  @param value is the value to filter.
  @return {@code true} if the value is accepted, {@code false} if the value is NOT accepted, or {@code null} if no
  decision is made.