package edu.sc.seis.sod.subsetter.availableData; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import edu.iris.Fissures.IfSeismogramDC.RequestFilter; import edu.iris.Fissures.network.ChannelImpl; import edu.sc.seis.fissuresUtil.cache.CacheEvent; import edu.sc.seis.fissuresUtil.display.configuration.DOMHelper; import edu.sc.seis.sod.ConfigurationException; import edu.sc.seis.sod.CookieJar; import edu.sc.seis.sod.SodUtil; import edu.sc.seis.sod.status.StringTree; import edu.sc.seis.sod.subsetter.requestGenerator.RequestGenerator; public class SubrequestCoverage implements AvailableDataSubsetter { public SubrequestCoverage(Element el) throws ConfigurationException { NodeList els = DOMHelper.getElements(el, "*"); subrequest = (RequestGenerator)SodUtil.load((Element)els.item(0), "requestGenerator"); if(els.getLength() > 1) { coverageChecker = (AvailableDataSubsetter)SodUtil.load((Element)els.item(1), "availableData"); } } public StringTree accept(CacheEvent ev, ChannelImpl chan, RequestFilter[] request, RequestFilter[] available, CookieJar cookies) throws Exception { RequestFilter[] sub = subrequest.generateRequest(ev, chan, cookies); return coverageChecker.accept(ev, chan, sub, available, cookies); } private AvailableDataSubsetter coverageChecker = new FullCoverage(); private RequestGenerator subrequest; }