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