code: public static <K, V> Predicate<CacheEntry<K, V>> predicate(KeyValueFilter<? super K, ? super V> filter) {
        return new KeyValueFilterAsPredicate<>(filter);
     }
docs: Creates a new {@link Predicate} using the provided key value filter as a basis for the operation.  This is useful
  for when using {@link Stream#filter(Predicate)} method on distributed streams.  The key,
  value and metadata are all used to determine if the predicate returns true or not.
  @param filter the filter to utilize
  @param <K> key type
  @param <V> value type
  @return predicate based on the filter