package org.jgroups.blocks.mux;
import org.jgroups.Address;
import org.jgroups.blocks.RspFilter;
/**
* Response filter that reject any {@link NoMuxHandler} responses.
* @author Paul Ferraro
*/
public class NoMuxHandlerRspFilter implements RspFilter {
private final RspFilter filter;
public NoMuxHandlerRspFilter() {
this.filter = null;
}
public NoMuxHandlerRspFilter(RspFilter filter) {
this.filter = filter;
}
public static RspFilter createInstance(RspFilter filter) {
if(filter instanceof NoMuxHandlerRspFilter)
return filter;
return new NoMuxHandlerRspFilter(filter) ;
}
public RspFilter getFilter() {
return filter;
}
@Override
public boolean isAcceptable(Object response, Address sender) {
return !(response instanceof NoMuxHandler) && ((filter == null) || filter.isAcceptable(response, sender));
}
@Override
public boolean needMoreResponses() {
return (filter == null) || filter.needMoreResponses();
}
}