package edu.sc.seis.sod.process.waveform;
import java.io.IOException;
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.display.configuration.DOMHelper;
import edu.sc.seis.sod.ConfigurationException;
import edu.sc.seis.sod.CookieJar;
import edu.sc.seis.sod.status.StringTreeLeaf;
import edu.sc.seis.sod.velocity.PrintlineVelocitizer;
public class PrintlineSeismogramProcess implements WaveformProcess {
public PrintlineSeismogramProcess(Element config) throws ConfigurationException {
filename = DOMHelper.extractText(config, "filename", "");
template = DOMHelper.extractText(config, "template", DEFAULT_TEMPLATE);
velocitizer = new PrintlineVelocitizer(new String[] {filename, template});
}
public WaveformResult accept(CacheEvent event,
ChannelImpl channel,
RequestFilter[] original,
RequestFilter[] available,
LocalSeismogramImpl[] seismograms,
CookieJar cookieJar) throws IOException {
velocitizer.evaluate(filename,
template,
event,
channel,
original,
available,
seismograms,
cookieJar);
return new WaveformResult(seismograms, new StringTreeLeaf(this, true));
}
private PrintlineVelocitizer velocitizer;
private String template, filename;
public static final String DEFAULT_TEMPLATE = "Got $seismograms.size() seismograms for $channel.toString() for eq on $event.time";
}// PrintlineWaveformProcessor