Class CacheFilters

    • Method Detail

      • predicate

        public static <K,​V> Predicate<org.infinispan.container.entries.CacheEntry<K,​V>> predicate​(KeyValueFilter<? super K,​? super V> filter)
        Creates a new Predicate using the provided key value filter as a basis for the operation. This is useful for when using Stream.filter(Predicate) method on distributed streams. The key, value and metadata are all used to determine if the predicate returns true or not.
        Type Parameters:
        K - key type
        V - value type
        Parameters:
        filter - the filter to utilize
        Returns:
        predicate based on the filter
      • function

        public static <K,​V,​C> Function<org.infinispan.container.entries.CacheEntry<K,​V>,​org.infinispan.container.entries.CacheEntry<K,​C>> function​(Converter<? super K,​? super V,​C> converter)
        Creates a new Function using the provided converter as a basis for the operation. This is useful for when using Stream.map(Function) method on distributed streams. The key, value and metadata are all used to determine the converted value.
        Type Parameters:
        K - key type
        V - value type
        C - converted value type
        Parameters:
        converter - the converter to utilize
        Returns:
        function based on the converter
      • converterToFunction

        public static <K,​V,​C> Function<org.infinispan.container.entries.CacheEntry<K,​V>,​org.infinispan.container.entries.CacheEntry<K,​C>> converterToFunction​(KeyValueFilterConverter<? super K,​? super V,​C> filterConverter)
        Creates a new Function using the provided filter convert. The KeyValueFilterConverter.filterAndConvert(Object, Object, Metadata) is invoked for every passed in CacheEntry. When a null value is returned from the filter converter instead of a null CacheEntry being returned, we instead return the NullCacheEntry as a sign of it. This allows this Function to be used in cases when a null value cannot be returned, such as reactive streams.

        The notNullCacheEntryPredicate() can be used to filter these values if needed.

        Type Parameters:
        K - key type
        V - value type
        C - converted value type
        Parameters:
        filterConverter - the filter converter to utilize
        Returns:
        function based on the filter converter
      • notNullCacheEntryPredicate

        public static <K,​V> Predicate<org.infinispan.container.entries.CacheEntry<K,​V>> notNullCacheEntryPredicate()
        Provides a predicate that can be used to filter out null cache entry objects as well as placeholder "null" entries of NullCacheEntry that can be returned from methods such as converterToFunction(KeyValueFilterConverter).
        Type Parameters:
        K - entry key type
        V - entry value type
        Returns:
        a predicate to filter null entries
      • filterAndConvertToValue

        public static <K,​V,​C> CacheStream<C> filterAndConvertToValue​(CacheStream<org.infinispan.container.entries.CacheEntry<K,​V>> stream,
                                                                                 KeyValueFilterConverter<? super K,​? super V,​C> filterConverter)
      • filterAndConvert

        public static <K,​V,​C> Stream<org.infinispan.container.entries.CacheEntry<K,​C>> filterAndConvert​(Stream<org.infinispan.container.entries.CacheEntry<K,​V>> stream,
                                                                                                                          KeyValueFilterConverter<? super K,​? super V,​C> filterConverter)
        Adds needed intermediate operations to the provided stream, returning a possibly new stream as a result of the operations. This method keeps the contract of filter and conversion being performed in only 1 call as the KeyValueFilterConverter was designed to do. The key, value and metadata are all used to determine whether the value is returned and the converted value.
        Type Parameters:
        K -
        V -
        C -
        Parameters:
        stream - stream to perform the operations on
        filterConverter - converter to apply
        Returns:
      • filterAndConvert

        public static <K,​V,​C> CacheStream<org.infinispan.container.entries.CacheEntry<K,​C>> filterAndConvert​(CacheStream<org.infinispan.container.entries.CacheEntry<K,​V>> stream,
                                                                                                                               KeyValueFilterConverter<? super K,​? super V,​C> filterConverter)