package edu.sc.seis.sod.subsetter.origin;
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;
/**
* originXOR contains a sequence of originSubsetters. The minimum value of the sequence is 2 and
* the max value of the sequence is 2.
*<pre>
* <originXOR>
* <eventArea>
* <boxArea>
* <latitudeRange>
* <min>32</min>
* <max>35.5</max>
* </latitudeRange>
* <longitudeRange>
* <min>-83.5</min>
* <max>-78.5</max>
* </longitudeRange>
* </boxArea>
* </eventArea>
* <magnitudeRange>
* <magType>mb</magType>
* <min>3.5</min>
* </magnitudeRange>
* </originNOT>
*</pre>
*
*
* Created: Thu Mar 14 14:02:33 2002
*
* @author Philip Crotwell
*/
public final class OriginXOR extends EventLogicalSubsetter
implements OriginSubsetter {
public OriginXOR (Element config) throws ConfigurationException {
super(config);
}
public StringTree accept(CacheEvent event, EventAttrImpl eventAttr, OriginImpl e) throws Exception{
OriginSubsetter filterA = (OriginSubsetter)filterList.get(0);
OriginSubsetter filterB = (OriginSubsetter)filterList.get(1);
StringTree[] result = new StringTree[2];
result[0] = filterA.accept(event, eventAttr, e);
result[1] = filterB.accept(event, eventAttr, e);
return new StringTreeBranch(this, result[0].isSuccess() != result[1].isSuccess(),
result);
}
}// OriginXOR