package edu.sc.seis.sod.subsetter.request;
import java.util.Iterator;
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.sod.ConfigurationException;
import edu.sc.seis.sod.CookieJar;
import edu.sc.seis.sod.status.StringTree;
import edu.sc.seis.sod.status.StringTreeBranch;
public final class RequestAND extends RequestLogical implements RequestSubsetter {
/**
* Creates a new <code>RequestSubsetterAND</code> instance.
*
* @param config
* an <code>Element</code> value
* @exception ConfigurationException
* if an error occurs
*/
public RequestAND(Element config) throws ConfigurationException {
super(config);
}
public StringTree accept(CacheEvent event,
ChannelImpl channel,
RequestFilter[] original,
CookieJar cookieJar) throws Exception {
Iterator it = filterList.iterator();
StringTree[] result = new StringTree[filterList.size()];
int i =0;
while(it.hasNext()) {
RequestSubsetter filter = (RequestSubsetter)it.next();
result[i] = filter.accept(event, channel, original, cookieJar);
if ( ! result[i].isSuccess()) {
return new StringTreeBranch(this, false, result);
}
i++;
}
return new StringTreeBranch(this, true, result);
}
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(RequestAND.class);}// RequestSubsetterAND