code: public static <T> RunnableChangeNotifier<T> direct(Supplier<Set<T>> recordsSupplier) {
      return new DirectChangeNotifier<T>(recordsSupplier);
    }
docs: Create a {@link RunnableChangeNotifier} that directly wraps a set of records given by a
  {@link Supplier}.
  
  <p>Each call to {@link Runnable#run()} will cause the supplier to be polled and regular
  change notifications to be triggered.
  
  <p>This implementation is useful for testing components that depend on a
  {@link ChangeNotifier}.
  
  @param recordsSupplier  The supplier of records
  @param <T>              The record type
  @return A runnable notifier