package edu.sc.seis.sod.process.waveform; import org.w3c.dom.Element; import edu.iris.Fissures.IfSeismogramDC.Property; 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.sod.ConfigurationException; import edu.sc.seis.sod.CookieJar; import edu.sc.seis.sod.SodUtil; import edu.sc.seis.sod.status.StringTreeLeaf; public class SNEPProblem implements WaveformProcess { public SNEPProblem() { this((String)null); } public SNEPProblem(String type) { this.type = type; } public SNEPProblem(Element el) throws ConfigurationException { Element typeEl = SodUtil.getElement(el, "type"); if(typeEl != null) { type = SodUtil.getText(typeEl); } } public WaveformResult accept(CacheEvent event, ChannelImpl channel, RequestFilter[] original, RequestFilter[] available, LocalSeismogramImpl[] seismograms, CookieJar cookieJar) throws Exception { String name = "snep.problem"; for(int i = 0; i < seismograms.length; i++) { Property[] properties = seismograms[i].properties; for(int j = 0; j < properties.length; j++) { if(properties[j].name.equals(name)) { if(type == null || (type != null && properties[j].value.equals(type))) { return new WaveformResult(seismograms, new StringTreeLeaf(this, true)); } } } } return new WaveformResult(seismograms, new StringTreeLeaf(this, false)); } private String type; }