package edu.sc.seis.sod.subsetter.request;
import org.w3c.dom.Element;
import edu.iris.Fissures.IfSeismogramDC.RequestFilter;
import edu.iris.Fissures.network.ChannelImpl;
import edu.sc.seis.fissuresUtil.cache.CacheEvent;
import edu.sc.seis.fissuresUtil.hibernate.ChannelGroup;
import edu.sc.seis.sod.CookieJar;
import edu.sc.seis.sod.status.Fail;
import edu.sc.seis.sod.status.Pass;
import edu.sc.seis.sod.status.StringTree;
import edu.sc.seis.sod.subsetter.request.vector.VectorRequestSubsetter;
public class AtLeastOneRequest implements RequestSubsetter, VectorRequestSubsetter {
public AtLeastOneRequest() {}
public AtLeastOneRequest(Element config) {}
public StringTree accept(CacheEvent event,
ChannelImpl channel,
RequestFilter[] request,
CookieJar cookieJar) throws Exception {
if (request.length > 0) {
return new Pass(this);
} else {
return new Fail(this, "No requests");
}
}
public StringTree accept(CacheEvent event,
ChannelGroup channel,
RequestFilter[][] request,
CookieJar cookieJar) throws Exception {
int total = 0;
for (int i = 0; i < request.length; i++) {
total += request[i].length;
}
if (total > 0 ) {
return new Pass(this);
} else {
return new Fail(this, "No requests");
}
}
}