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.KeyValueFilterConverter; import org.infinispan.filter.NamedFactory; import org.infinispan.filter.ParamKeyValueFilterConverterFactory; import org.kohsuke.MetaInfServices; /** * Factory for a {@link KeyValueFilterConverter} that operates on binary parameters and produces binary results. * * @author gustavonalle * @since 8.1 */ @NamedFactory(name = IckleProtobufFilterAndConverterFactory.FACTORY_NAME) @MetaInfServices @SuppressWarnings("unused") public final class IckleProtobufFilterAndConverterFactory implements ParamKeyValueFilterConverterFactory { public static final String FACTORY_NAME = "iteration-filter-converter-factory"; @Override public KeyValueFilterConverter getFilterConverter(Object[] params) { String queryString = unmarshallQueryString(params); Map<String, Object> namedParams = unmarshallParams(params); return new IckleBinaryProtobufFilterAndConverter<>(queryString, namedParams); } @Override public boolean binaryParam() { return true; } }