package qa.qcri.aidr.collector.collectors;
import javax.json.JsonObject;
import qa.qcri.aidr.collector.java7.Predicate;
import qa.qcri.aidr.common.redis.LoadShedder;
/**
* Controls tweets stream filtering based on load shedder.
*
*/
public class ShedderFilter implements Predicate<JsonObject> {
private String channel;
private LoadShedder delegate;
public ShedderFilter(String channel, LoadShedder shedder){
this.channel = channel;
this.delegate = shedder;
}
@Override
public boolean test(JsonObject t) {
return delegate.canProcess();
}
@Override
public String getFilterName() {
return this.getClass().getSimpleName();
}
public String getChannel() {
return channel;
}
public void setChannel(String channel) {
this.channel = channel;
}
public LoadShedder getDelegate() {
return delegate;
}
public void setDelegate(LoadShedder delegate) {
this.delegate = delegate;
}
public LoadShedder getDelegateForChannel(String channel) {
return this.delegate;
}
}