package edu.sc.seis.sod.subsetter.request; 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 RequestXOR extends RequestLogical implements RequestSubsetter { /** * Creates a new <code>RequestSubsetterXOR</code> instance. * * @param config * an <code>Element</code> value * @exception ConfigurationException * if an error occurs */ public RequestXOR(Element config) throws ConfigurationException { super(config); } public StringTree accept(CacheEvent event, ChannelImpl channel, RequestFilter[] original, CookieJar cookieJar) throws Exception { RequestSubsetter filterA = (RequestSubsetter)filterList.get(0); RequestSubsetter filterB = (RequestSubsetter)filterList.get(1); StringTree[] result = new StringTree[2]; result[0] = filterA.accept(event, channel, original, cookieJar); result[1] = filterB.accept(event, channel, original, cookieJar); return new StringTreeBranch(this, (result[0].isSuccess() != result[0].isSuccess()), result); } }// RequestSubsetterXOR