package org.infinispan.filter;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.Collections;
import java.util.Set;
import org.infinispan.commons.marshall.AbstractExternalizer;
import org.infinispan.marshall.core.Ids;
import org.infinispan.metadata.Metadata;
/**
* A key value filter that accepts all entries found.
* <p>
* <b>This filter should be used carefully as it may cause the operation to perform very slowly
* as all entries are accepted.</b>
*
* @author wburns
* @since 7.0
*/
public class AcceptAllKeyValueFilter implements KeyValueFilter<Object, Object> {
private AcceptAllKeyValueFilter() { }
private static class StaticHolder {
private static final AcceptAllKeyValueFilter INSTANCE = new AcceptAllKeyValueFilter();
}
public static AcceptAllKeyValueFilter getInstance() {
return StaticHolder.INSTANCE;
}
@Override
public boolean accept(Object key, Object value, Metadata metadata) {
return true;
}
public static class Externalizer extends AbstractExternalizer<AcceptAllKeyValueFilter> {
@Override
public Set<Class<? extends AcceptAllKeyValueFilter>> getTypeClasses() {
return Collections.singleton(AcceptAllKeyValueFilter.class);
}
@Override
public void writeObject(ObjectOutput output, AcceptAllKeyValueFilter object) {
}
@Override
public AcceptAllKeyValueFilter readObject(ObjectInput input) {
return AcceptAllKeyValueFilter.getInstance();
}
@Override
public Integer getId() {
return Ids.ACCEPT_ALL_KEY_VALUE_FILTER;
}
}
}