package org.infinispan.notifications.cachelistener.filter; import org.infinispan.metadata.Metadata; /** * This interface is an optimization that can be used when an event filter and converter are most efficiently used as * the same object composing the filtering and conversion in the same method invocation. * * @author wburns * @since 7.0 */ public interface CacheEventFilterConverter<K, V, C> extends CacheEventFilter<K, V>, CacheEventConverter<K, V, C> { /** * Will both filter the entry and if passed subsequently convert the value to a new value. A returned value of null * will symbolize the value not passing the filter, so ensure your conversion will not return null if you want this * entry to be returned. * @param key The key for the entry that was changed for the event * @param oldValue The previous value before the event takes place * @param oldMetadata The old value before the event takes place * @param newValue The new value for the entry after the event takes place * @param newMetadata The new metadata for the entry after the event takes place * @param eventType The type of event that is being raised * @return A non null value converted value when it also passes the filter or null for when it doesn't pass the filter */ public C filterAndConvert(K key, V oldValue, Metadata oldMetadata, V newValue, Metadata newMetadata, EventType eventType); }