package edu.sc.seis.sod.process.waveform;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import edu.iris.Fissures.IfSeismogramDC.RequestFilter;
import edu.iris.Fissures.network.ChannelImpl;
import edu.iris.Fissures.network.StationImpl;
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.subsetter.eventStation.EventStationSubsetter;
/**
* @author crotwell Created on Mar 18, 2005
*/
public class EmbeddedEventStationProcessor implements WaveformProcess {
public EmbeddedEventStationProcessor(EventStationSubsetter eventStation) {
this.eventStationSubsetter = eventStation;
}
public EmbeddedEventStationProcessor(Element config)
throws ConfigurationException {
NodeList childNodes = config.getChildNodes();
Node node;
for(int counter = 0; counter < childNodes.getLength(); counter++) {
node = childNodes.item(counter);
if(node instanceof Element) {
eventStationSubsetter = (EventStationSubsetter)SodUtil.load((Element)node,
"eventStation");
}
}
}
public WaveformResult accept(CacheEvent event,
ChannelImpl channel,
RequestFilter[] original,
RequestFilter[] available,
LocalSeismogramImpl[] seismograms,
CookieJar cookieJar) throws Exception {
WaveformResult result = new WaveformResult(seismograms,
eventStationSubsetter.accept(event,
(StationImpl)channel.getStation(),
cookieJar));
return result;
}
EventStationSubsetter eventStationSubsetter;
}