package org.infinispan.server.test.client.hotrod; import java.io.Serializable; import org.infinispan.filter.NamedFactory; import org.infinispan.metadata.Metadata; import org.infinispan.notifications.cachelistener.filter.AbstractCacheEventFilterConverter; import org.infinispan.notifications.cachelistener.filter.CacheEventFilterConverter; import org.infinispan.notifications.cachelistener.filter.CacheEventFilterConverterFactory; import org.infinispan.notifications.cachelistener.filter.EventType; import org.infinispan.server.test.client.hotrod.AbstractRemoteCacheIT.Id; import org.infinispan.server.test.client.hotrod.AbstractRemoteCacheIT.Person; @NamedFactory(name = "pojo-filter-converter-factory") public class CustomPojoFilterConverterFactory implements CacheEventFilterConverterFactory { @Override public CacheEventFilterConverter<Id, Person, CustomEvent> getFilterConverter(Object[] params) { return new FilterConverter(params); } static class FilterConverter extends AbstractCacheEventFilterConverter<Id, Person, CustomEvent> implements Serializable { private final Object[] params; public FilterConverter(Object[] params) { this.params = params; } @Override public CustomEvent filterAndConvert(Id key, Person oldValue, Metadata oldMetadata, Person newValue, Metadata newMetadata, EventType eventType) { if (params[0].equals(key)) return new CustomEvent<Id, Person>(key, null); return new CustomEvent<Id, Person>(key, newValue); } } }