docs: public void applyFilterChanges(Filter binderServiceFilter) {
          this.binderServiceFilter = binderServiceFilter;
  
          Set<ServiceReference<S>> added = new HashSet<ServiceReference<S>>();
          Set<ServiceReference<S>> removed = new HashSet<ServiceReference<S>>();
  
          for (Map.Entry<ServiceReference<S>, BinderDescriptor> e : declarationBinders.entrySet()) {
              boolean matchFilter = this.binderServiceFilter.matches(e.getValue().properties);
              if (matchFilter != e.getValue().match && matchFilter) {
                  added.add(e.getKey());
              } else if (matchFilter != e.getValue().match && !matchFilter) {
                  removed.add(e.getKey());
              }
              e.getValue().match = matchFilter;
          }
          for (ServiceReference<S> binderReference : removed) {
              removeLinks(binderReference);
          }
          for (ServiceReference<S> binderReference : added) {
              createLinks(binderReference);
          }
      }