package edu.sc.seis.sod.process.waveform;
import org.w3c.dom.Element;
import edu.iris.Fissures.IfSeismogramDC.RequestFilter;
import edu.iris.Fissures.network.ChannelImpl;
import edu.iris.Fissures.seismogramDC.LocalSeismogramImpl;
import edu.sc.seis.fissuresUtil.cache.CacheEvent;
import edu.sc.seis.fissuresUtil.time.CoverageTool;
import edu.sc.seis.sod.ConfigurationException;
import edu.sc.seis.sod.CookieJar;
import edu.sc.seis.sod.status.StringTreeLeaf;
import edu.sc.seis.sod.subsetter.requestGenerator.PhaseRequest;
public class PhaseDataCoverage implements WaveformProcess {
public PhaseDataCoverage(Element config) throws ConfigurationException {
phaseRequest = new PhaseRequest(config);
}
public WaveformResult accept(CacheEvent event,
ChannelImpl channel,
RequestFilter[] original,
RequestFilter[] available,
LocalSeismogramImpl[] seismograms,
CookieJar cookieJar) throws Exception {
RequestFilter req = phaseRequest.generateRequest(event, channel);
RequestFilter[] uncovered = CoverageTool.notCovered(new RequestFilter[] { req },
seismograms);
return new WaveformResult(seismograms,
new StringTreeLeaf(this,
uncovered.length == 0));
}
private PhaseRequest phaseRequest;
}