package org.infinispan.query.remote.impl.filter;
import static org.infinispan.query.remote.impl.filter.IckleFilterConverterUtils.unmarshallParams;
import static org.infinispan.query.remote.impl.filter.IckleFilterConverterUtils.unmarshallQueryString;
import java.util.Map;
import org.infinispan.filter.NamedFactory;
import org.infinispan.notifications.cachelistener.filter.CacheEventFilterConverter;
import org.infinispan.notifications.cachelistener.filter.CacheEventFilterConverterFactory;
import org.infinispan.objectfilter.impl.ProtobufMatcher;
import org.kohsuke.MetaInfServices;
/**
* @author anistor@redhat.com
* @since 8.0
*/
@NamedFactory(name = IckleContinuousQueryProtobufCacheEventFilterConverterFactory.FACTORY_NAME)
@MetaInfServices
public final class IckleContinuousQueryProtobufCacheEventFilterConverterFactory implements CacheEventFilterConverterFactory {
public static final String FACTORY_NAME = "continuous-query-filter-converter-factory";
@Override
public CacheEventFilterConverter<?, ?, ?> getFilterConverter(Object[] params) {
String queryString = unmarshallQueryString(params);
Map<String, Object> namedParams = unmarshallParams(params);
return new IckleContinuousQueryProtobufCacheEventFilterConverter(queryString, namedParams, ProtobufMatcher.class);
}
}