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.StringTree;
import edu.sc.seis.sod.status.StringTreeBranch;
/**
* This subsetter is used to specify a negation of OriginSubsetter. This subsetter is accepted only when the included
* subsetter is false.
*<pre>
* <originNOT>
* <magnitudeRange>
* <magType>mb</magType>
* <min>7</min>
* <max>10</max>
* </magnitudeRange>
* </originNOT>
*</pre>
*/
public final class OriginNOT extends EventLogicalSubsetter
implements OriginSubsetter {
public OriginNOT (Element config) throws ConfigurationException {
super(config);
}
public StringTree accept(CacheEvent event, EventAttrImpl eventAttr, OriginImpl e) throws Exception{
Iterator it = filterList.iterator();
if (it.hasNext()) {
OriginSubsetter filter = (OriginSubsetter)it.next();
StringTree result = filter.accept(event, eventAttr, e);
if (result.isSuccess()) { return new StringTreeBranch(this, false, result); }
return new StringTreeBranch(this, true, result);
}
throw new ConfigurationException("empty NOT");
}
}// OriginNOT