package edu.sc.seis.sod.subsetter.origin;
import java.util.Iterator;
import org.w3c.dom.Element;
import edu.iris.Fissures.event.EventAttrImpl;
import edu.iris.Fissures.event.OriginImpl;
import edu.sc.seis.fissuresUtil.cache.CacheEvent;
import edu.sc.seis.sod.ConfigurationException;
import edu.sc.seis.sod.status.ShortCircuit;
import edu.sc.seis.sod.status.StringTree;
import edu.sc.seis.sod.status.StringTreeBranch;
/**
* OriginOR.java Created: Thu Mar 14 14:02:33 2002
*
* @author Philip Crotwell
*/
public final class OriginOR extends EventLogicalSubsetter implements
OriginSubsetter {
public OriginOR(Element config) throws ConfigurationException {
super(config);
}
public StringTree accept(CacheEvent event,
EventAttrImpl eventAttr,
OriginImpl e) throws Exception {
Iterator it = filterList.iterator();
StringTree[] result = new StringTree[filterList.size()];
int i=0;
while(it.hasNext()) {
OriginSubsetter filter = (OriginSubsetter)it.next();
result[i] = filter.accept(event, eventAttr, e);
if(result[i].isSuccess()) {
for(int j = i + 1; j < result.length; j++) {
result[j] = new ShortCircuit(filterList.get(j));
}
return new StringTreeBranch(this, true, result);
}
i++;
}
return new StringTreeBranch(this, false, result);
}
}// OriginOR