SearchHandler { public void bindFilterPredicate(ObjectProperty<Predicate<Category>> predicateProperty) { predicateProperty.bind(Bindings.createObjectBinding(() -> { if (searchText.get() == null || searchText.get().isEmpty()) { return null; } return filterPredicate; }, searchText)); }  void init(
      PreferencesFxModel model,
      StringProperty searchText,
      ObjectProperty<Predicate<Category>> predicateProperty
  ); void initializeSearchText(StringProperty searchText); void bindFilterPredicate(ObjectProperty<Predicate<Category>> predicateProperty); void updateSearch(String searchText); Category compareMatches(Category setting, Category group, Category category,
                                 int settingMatch, int groupMatch, int categoryMatch); Category getCategoryMatch(); ReadOnlyObjectProperty<Category> categoryMatchProperty();  }
@Test public void bindFilterPredicate() { }